OSDN Git Service

KVM: arm64: Save/Restore guest DISR_EL1
authorJames Morse <james.morse@arm.com>
Mon, 15 Jan 2018 19:39:02 +0000 (19:39 +0000)
committerCatalin Marinas <catalin.marinas@arm.com>
Tue, 16 Jan 2018 15:08:52 +0000 (15:08 +0000)
commitc773ae2b34760a1ae409614aa31cdded81a645a5
tree8dd3df341b5378d23b75be9f47a4ac461d443509
parent4715c14bc136687bb79d12e24aafdc0f38786eb7
KVM: arm64: Save/Restore guest DISR_EL1

If we deliver a virtual SError to the guest, the guest may defer it
with an ESB instruction. The guest reads the deferred value via DISR_EL1,
but the guests view of DISR_EL1 is re-mapped to VDISR_EL2 when HCR_EL2.AMO
is set.

Add the KVM code to save/restore VDISR_EL2, and make it accessible to
userspace as DISR_EL1.

Signed-off-by: James Morse <james.morse@arm.com>
Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/include/asm/kvm_host.h
arch/arm64/include/asm/sysreg.h
arch/arm64/kvm/hyp/sysreg-sr.c
arch/arm64/kvm/sys_regs.c