Skip to content

Commit 389a00d

Browse files
jonhunterMarc Zyngier
authored andcommitted
irqchip/gic: Only set the EOImodeNS bit for the root controller
EOImode1 is only used for the root controller and hence only the root controller uses the eoimode1 functions for handling interrupts. However, if the root controller supports EOImode1, then the EOImodeNS bit will be set for all GICs, enabling EOImode1. This is not what we want and this causes interrupts on non-root GICs to only be dropped in priority but never deactivated. Therefore, only set the EOImodeNS bit 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 7bf29d3 commit 389a00d

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

drivers/irqchip/irq-gic.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -437,7 +437,7 @@ static void gic_cpu_if_up(struct gic_chip_data *gic)
437437
u32 bypass = 0;
438438
u32 mode = 0;
439439

440-
if (static_key_true(&supports_deactivate))
440+
if (gic == &gic_data[0] && static_key_true(&supports_deactivate))
441441
mode = GIC_CPU_CTRL_EOImodeNS;
442442

443443
/*

0 commit comments

Comments
 (0)