arm64: KVM: Preserve pending vSError in world switch
authorMarc Zyngier <marc.zyngier@arm.com>
Tue, 6 Sep 2016 13:02:00 +0000 (14:02 +0100)
committerChristoffer Dall <christoffer.dall@linaro.org>
Thu, 8 Sep 2016 10:53:00 +0000 (12:53 +0200)
commit44636f976f5bb92631f0dd5fd26547d64c2c6a80
treea23a01759d0f2a237ee119c5747080cd82c5fe4d
parent7b17145ec7de9267e24038c0621c9ed47853ae4f
arm64: KVM: Preserve pending vSError in world switch

The HCR_EL2.VSE bit is used to signal an SError to a guest, and has
the peculiar feature of getting cleared when the guest has taken
the abort (this is the only bit that behaves as such in this register).

This means that if we signal such an abort, we must leave it
in the guest context until it disappears from HCR_EL2, and at which
point it must be cleared from the context. This is achieved by
reading back from HCR_EL2 until the guest takes the fault.

Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
arch/arm64/kvm/hyp/switch.c