aboutsummaryrefslogtreecommitdiff
path: root/lib/mpi/mpiutil.c
diff options
context:
space:
mode:
authorMarc Zyngier <[email protected]>2015-08-26 17:00:44 +0100
committerThomas Gleixner <[email protected]>2015-08-27 17:13:49 +0200
commit0b996fd35957a30568cddbce05b917c1897966e0 (patch)
treeebea5c35ca54370365d9791323a10a43c756e0c4 /lib/mpi/mpiutil.c
parent530bf353e4eb06bcba5078390c949650cd26a7c7 (diff)
irqchip/GIC: Convert to EOImode == 1
So far, GICv2 has been used with EOImode == 0. The effect of this mode is to perform the priority drop and the deactivation of the interrupt at the same time. While this works perfectly for Linux (we only have a single priority), it causes issues when an interrupt is forwarded to a guest, and when we want the guest to perform the EOI itself. For this case, the GIC architecture provides EOImode == 1, where: - A write to the EOI register drops the priority of the interrupt and leaves it active. Other interrupts at the same priority level can now be taken, but the active interrupt cannot be taken again - A write to the DIR marks the interrupt as inactive, meaning it can now be taken again. We only enable this feature when booted in HYP mode and that the device-tree reported a suitable CPU interface. Observable behaviour should remain unchanged. Signed-off-by: Marc Zyngier <[email protected]> Reviewed-and-tested-by: Eric Auger <[email protected]> Cc: Christoffer Dall <[email protected]> Cc: Jiang Liu <[email protected]> Cc: <[email protected]> Cc: [email protected] Cc: Jason Cooper <[email protected]> Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Thomas Gleixner <[email protected]>
Diffstat (limited to 'lib/mpi/mpiutil.c')
0 files changed, 0 insertions, 0 deletions