[PATCH v2] KVM: ARM: vgic: plug irq injection race
Christoffer Dall
christoffer.dall at linaro.org
Thu Mar 20 19:57:06 EDT 2014
On Thu, Mar 20, 2014 at 04:47:15PM +0000, Marc Zyngier wrote:
> As it stands, nothing prevents userspace from injecting an interrupt
> before the guest's GIC is actually initialized.
>
> This goes unnoticed so far (as everything is pretty much statically
> allocated), but ends up exploding in a spectacular way once we switch
> to a more dynamic allocation (the GIC data structure isn't there yet).
>
> The fix is to test for the "ready" flag in the VGIC distributor before
> trying to inject the interrupt. Note that in order to avoid breaking
> userspace, we have to ignore what is essentially an error.
>
> Also, move the setting of the flag out of the critical section,
> which will ensure the visibility of the initialized data-structure
> before the flag is actually set.
>
> Signed-off-by: Marc Zyngier <marc.zyngier at arm.com>
Acked-by: Christoffer Dall <christoffer.dall at linaro.org>
More information about the linux-arm-kernel
mailing list