]> git.proxmox.com Git - mirror_edk2.git/commit
ArmPkg/TimerDxe: Always perform an EOI, even for spurious interrupts
authorMarc Zyngier <marc.zyngier@arm.com>
Tue, 6 Mar 2018 13:00:35 +0000 (13:00 +0000)
committerArd Biesheuvel <ard.biesheuvel@linaro.org>
Tue, 6 Mar 2018 14:37:39 +0000 (14:37 +0000)
commit5e3719aeaef198f36808a5e53a1f5bb23762e3a5
tree960fd22791df0841f2895151bf31af7747cd5f03
parent339cb0af96f768bfefee81bf7995a608adeb2125
ArmPkg/TimerDxe: Always perform an EOI, even for spurious interrupts

The generic timer driver only EOIs the timer interrupt if
the ISTATUS bit is set. This is completely fine if you pretend
that spurious interrupts do not exist. But as a matter of fact,
they do, and the first one will leave the interrupt activated
at the GIC level, making sure that no other interrupt can make
it anymore.

Making sure that each interrupt Ack is paired with an EOI is the
way to go. Oh, and enabling the interrupt each time it is taken
is completely pointless. We entered this function for a good
reason...

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
ArmPkg/Drivers/TimerDxe/TimerDxe.c