Skip to content

Commit

Permalink
irqchip/gic: Only set the EOImodeNS bit for the root controller
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: Jon Hunter <[email protected]>
Signed-off-by: Marc Zyngier <[email protected]>
  • Loading branch information
jonhunter authored and Marc Zyngier committed Feb 11, 2016
1 parent 7bf29d3 commit 389a00d
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion drivers/irqchip/irq-gic.c
Original file line number Diff line number Diff line change
Expand Up @@ -437,7 +437,7 @@ static void gic_cpu_if_up(struct gic_chip_data *gic)
u32 bypass = 0;
u32 mode = 0;

if (static_key_true(&supports_deactivate))
if (gic == &gic_data[0] && static_key_true(&supports_deactivate))
mode = GIC_CPU_CTRL_EOImodeNS;

/*
Expand Down

0 comments on commit 389a00d

Please sign in to comment.