diff options
author | Tom Zanussi <zanussi@kernel.org> | 2019-09-23 15:00:45 -0500 |
---|---|---|
committer | Tom Zanussi <zanussi@kernel.org> | 2019-09-23 15:00:45 -0500 |
commit | 23eb538dca72ec85fb5e4e257aff0a4fdd6750b2 (patch) | |
tree | ed569cde01c02463607edaf4394831cc93e76584 /virt | |
parent | 9466315c55b1f0396f574ec8fb7ab34305ab95a0 (diff) | |
parent | e2cd24b629389b52a31d96d226ed150dacab9cdd (diff) | |
download | linux-rt-23eb538dca72ec85fb5e4e257aff0a4fdd6750b2.tar.gz |
Merge tag 'v4.14.143' into v4.14-rt-work
This is the 4.14.143 stable release
Diffstat (limited to 'virt')
-rw-r--r-- | virt/kvm/arm/mmio.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/virt/kvm/arm/mmio.c b/virt/kvm/arm/mmio.c index 08443a15e6be..3caee91bca08 100644 --- a/virt/kvm/arm/mmio.c +++ b/virt/kvm/arm/mmio.c @@ -98,6 +98,12 @@ int kvm_handle_mmio_return(struct kvm_vcpu *vcpu, struct kvm_run *run) unsigned int len; int mask; + /* Detect an already handled MMIO return */ + if (unlikely(!vcpu->mmio_needed)) + return 0; + + vcpu->mmio_needed = 0; + if (!run->mmio.is_write) { len = run->mmio.len; if (len > sizeof(unsigned long)) @@ -200,6 +206,7 @@ int io_mem_abort(struct kvm_vcpu *vcpu, struct kvm_run *run, run->mmio.is_write = is_write; run->mmio.phys_addr = fault_ipa; run->mmio.len = len; + vcpu->mmio_needed = 1; if (!ret) { /* We handled the access successfully in the kernel. */ |