summaryrefslogtreecommitdiff
path: root/virt/kvm/arm/mmio.c
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2019-12-18 17:47:38 +0100
committerPaolo Bonzini <pbonzini@redhat.com>2019-12-18 17:47:38 +0100
commitf5d5f5fae4605b66fd17e3c46feb14c6c3372e5c (patch)
tree04fa761fb1d7adbbecfec06914d6702428c08b3c /virt/kvm/arm/mmio.c
parent8715f05269bfbc6453e25e80825d781a82902f8e (diff)
parent6d674e28f642e3ff676fbae2d8d1b872814d32b6 (diff)
Merge tag 'kvmarm-fixes-5.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into kvm-master
KVM/arm fixes for .5.5, take #1 - Fix uninitialised sysreg accessor - Fix handling of demand-paged device mappings - Stop spamming the console on IMPDEF sysregs - Relax mappings of writable memslots - Assorted cleanups
Diffstat (limited to 'virt/kvm/arm/mmio.c')
-rw-r--r--virt/kvm/arm/mmio.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/virt/kvm/arm/mmio.c b/virt/kvm/arm/mmio.c
index 6af5c91337f2..70d3b449692c 100644
--- a/virt/kvm/arm/mmio.c
+++ b/virt/kvm/arm/mmio.c
@@ -167,7 +167,14 @@ int io_mem_abort(struct kvm_vcpu *vcpu, struct kvm_run *run,
if (ret)
return ret;
} else {
- kvm_err("load/store instruction decoding not implemented\n");
+ if (vcpu->kvm->arch.return_nisv_io_abort_to_user) {
+ run->exit_reason = KVM_EXIT_ARM_NISV;
+ run->arm_nisv.esr_iss = kvm_vcpu_dabt_iss_nisv_sanitized(vcpu);
+ run->arm_nisv.fault_ipa = fault_ipa;
+ return 0;
+ }
+
+ kvm_pr_unimpl("Data abort outside memslots with no valid syndrome info\n");
return -ENOSYS;
}