Skip to content

Commit 7bf29d3

Browse files
jonhunterMarc Zyngier
authored andcommitted
irqchip/gic: Only populate set_affinity for the root controller
Setting the affinity of an IRQ, it only applicable for the root interrupt controller and so only populate this operator for the root controller. Acked-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Jon Hunter <jonathanh@nvidia.com> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
1 parent 1a485f4 commit 7bf29d3

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

drivers/irqchip/irq-gic.c

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -384,9 +384,6 @@ static struct irq_chip gic_chip = {
384384
.irq_unmask = gic_unmask_irq,
385385
.irq_eoi = gic_eoi_irq,
386386
.irq_set_type = gic_set_type,
387-
#ifdef CONFIG_SMP
388-
.irq_set_affinity = gic_set_affinity,
389-
#endif
390387
.irq_get_irqchip_state = gic_irq_get_irqchip_state,
391388
.irq_set_irqchip_state = gic_irq_set_irqchip_state,
392389
.flags = IRQCHIP_SET_TYPE_MASKED |
@@ -400,9 +397,6 @@ static struct irq_chip gic_eoimode1_chip = {
400397
.irq_unmask = gic_unmask_irq,
401398
.irq_eoi = gic_eoimode1_eoi_irq,
402399
.irq_set_type = gic_set_type,
403-
#ifdef CONFIG_SMP
404-
.irq_set_affinity = gic_set_affinity,
405-
#endif
406400
.irq_get_irqchip_state = gic_irq_get_irqchip_state,
407401
.irq_set_irqchip_state = gic_irq_set_irqchip_state,
408402
.irq_set_vcpu_affinity = gic_irq_set_vcpu_affinity,
@@ -1039,6 +1033,11 @@ static void __init __gic_init_bases(unsigned int gic_nr, int irq_start,
10391033
gic->chip.name = kasprintf(GFP_KERNEL, "GIC-%d", gic_nr);
10401034
}
10411035

1036+
#ifdef CONFIG_SMP
1037+
if (gic_nr == 0)
1038+
gic->chip.irq_set_affinity = gic_set_affinity;
1039+
#endif
1040+
10421041
#ifdef CONFIG_GIC_NON_BANKED
10431042
if (percpu_offset) { /* Frankein-GIC without banked registers... */
10441043
unsigned int cpu;

0 commit comments

Comments
 (0)