Commit 2cbd4ab
irqchip/gic-v5: Support range allocation for LPIs
commit eb6f6d523813ead9dc2799194a2839d42c049734 upstream.
The per-IPI parent allocation loop returns immediately on failure and leaks
any parent interrupts allocated by earlier iterations.
The GICv5 LPI domain now owns LPI allocation and teardown internally,
but its irq_domain callbacks still reject requests where nr_irqs is
greater than one. This forces child domains to allocate and free LPIs
one at a time even when the interrupt core requests a contiguous
range.
Handle multi-interrupt allocation and teardown in the LPI domain by
iterating over the requested range and unwinding any partially
allocated state on failure.
Allocate the parent LPIs for the IPI domain with a single range
request as well, which cures the leakage problem.
Fixes: 0f01013 ("irqchip/gic-v5: Add GICv5 LPI/IPI support")
Signed-off-by: Sascha Bischoff <sascha.bischoff@arm.com>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Reviewed-by: Marc Zyngier <maz@kernel.org>
Reviewed-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Cc: stable@vger.kernel.org
Link: https://patch.msgid.link/20260506093634.382062-3-sascha.bischoff@arm.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>1 parent e6550b1 commit 2cbd4ab
1 file changed
Lines changed: 42 additions & 35 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
746 | 746 | | |
747 | 747 | | |
748 | 748 | | |
749 | | - | |
750 | | - | |
751 | | - | |
752 | | - | |
| 749 | + | |
| 750 | + | |
753 | 751 | | |
754 | | - | |
| 752 | + | |
755 | 753 | | |
756 | | - | |
757 | | - | |
| 754 | + | |
| 755 | + | |
| 756 | + | |
758 | 757 | | |
759 | 758 | | |
760 | 759 | | |
761 | 760 | | |
762 | 761 | | |
763 | 762 | | |
764 | 763 | | |
| 764 | + | |
765 | 765 | | |
766 | 766 | | |
767 | | - | |
768 | | - | |
769 | | - | |
770 | | - | |
771 | | - | |
772 | | - | |
773 | | - | |
| 767 | + | |
| 768 | + | |
| 769 | + | |
| 770 | + | |
| 771 | + | |
| 772 | + | |
| 773 | + | |
| 774 | + | |
| 775 | + | |
| 776 | + | |
| 777 | + | |
| 778 | + | |
774 | 779 | | |
775 | | - | |
| 780 | + | |
776 | 781 | | |
777 | | - | |
778 | | - | |
779 | | - | |
| 782 | + | |
| 783 | + | |
| 784 | + | |
780 | 785 | | |
781 | | - | |
782 | | - | |
783 | | - | |
784 | | - | |
| 786 | + | |
| 787 | + | |
785 | 788 | | |
786 | 789 | | |
787 | | - | |
788 | | - | |
789 | | - | |
790 | 790 | | |
| 791 | + | |
| 792 | + | |
| 793 | + | |
| 794 | + | |
| 795 | + | |
| 796 | + | |
791 | 797 | | |
792 | 798 | | |
793 | 799 | | |
| |||
813 | 819 | | |
814 | 820 | | |
815 | 821 | | |
816 | | - | |
| 822 | + | |
817 | 823 | | |
818 | | - | |
819 | | - | |
820 | | - | |
821 | | - | |
| 824 | + | |
| 825 | + | |
| 826 | + | |
822 | 827 | | |
823 | | - | |
| 828 | + | |
| 829 | + | |
824 | 830 | | |
825 | | - | |
826 | | - | |
| 831 | + | |
| 832 | + | |
827 | 833 | | |
828 | 834 | | |
829 | 835 | | |
830 | | - | |
| 836 | + | |
831 | 837 | | |
832 | 838 | | |
833 | 839 | | |
| |||
847 | 853 | | |
848 | 854 | | |
849 | 855 | | |
850 | | - | |
851 | 856 | | |
| 857 | + | |
| 858 | + | |
852 | 859 | | |
853 | 860 | | |
854 | 861 | | |
| |||
0 commit comments