diff options
author | Marc Zyngier <marc.zyngier@arm.com> | 2016-09-06 14:02:09 +0100 |
---|---|---|
committer | Christoffer Dall <christoffer.dall@linaro.org> | 2016-09-08 12:53:00 +0200 |
commit | bfb78b5c98d0e6b6dbd9af9cd71e853670a34044 (patch) | |
tree | 01fec0fb15ec6452c279b513fa585345c7dfaacb /arch/arm/kvm | |
parent | 1f7e378d1235a3cb5c9cdd8c62fe13cb6c3cf157 (diff) | |
download | op-kernel-dev-bfb78b5c98d0e6b6dbd9af9cd71e853670a34044.zip op-kernel-dev-bfb78b5c98d0e6b6dbd9af9cd71e853670a34044.tar.gz |
arm: KVM: Add Virtual Abort injection helper
Now that we're able to context switch the HCR.VA bit, let's
introduce a helper that injects an Abort into a vcpu.
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
Diffstat (limited to 'arch/arm/kvm')
-rw-r--r-- | arch/arm/kvm/emulate.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/arm/kvm/emulate.c b/arch/arm/kvm/emulate.c index ff9acd1..0064b86 100644 --- a/arch/arm/kvm/emulate.c +++ b/arch/arm/kvm/emulate.c @@ -303,3 +303,15 @@ void kvm_inject_pabt(struct kvm_vcpu *vcpu, unsigned long addr) { inject_abt(vcpu, true, addr); } + +/** + * kvm_inject_vabt - inject an async abort / SError into the guest + * @vcpu: The VCPU to receive the exception + * + * It is assumed that this code is called from the VCPU thread and that the + * VCPU therefore is not currently executing guest code. + */ +void kvm_inject_vabt(struct kvm_vcpu *vcpu) +{ + vcpu_set_hcr(vcpu, vcpu_get_hcr(vcpu) | HCR_VA); +} |