2017-08-18 09:57+0200, David Hildenbrand: > > > +++ b/arch/x86/kvm/x86.c > > @@ -4657,25 +4657,18 @@ static int emulator_read_write_onepage(unsigned long addr, void *val, > > */ > > if (vcpu->arch.gpa_available && > > emulator_can_use_gpa(ctxt) && > > - vcpu_is_mmio_gpa(vcpu, addr, exception->address, write) && > > - (addr & ~PAGE_MASK) == (exception->address & ~PAGE_MASK)) { > > - gpa = exception->address; > > - goto mmio; > > + (addr & ~PAGE_MASK) == (vcpu->arch.gpa_val & ~PAGE_MASK)) { > > + gpa = vcpu->arch.gpa_val; > > + ret = vcpu_is_mmio_gpa(vcpu, addr, gpa, write); > > + } else { > > + ret = vcpu_mmio_gva_to_gpa(vcpu, addr, &gpa, exception, write); > > } > > > > - ret = vcpu_mmio_gva_to_gpa(vcpu, addr, &gpa, exception, write); > > - > > if (ret < 0) > > return X86EMUL_PROPAGATE_FAULT; > > just wondering if it makes sense to move this into the else branch (as > it logically only belongs to vcpu_mmio_gva_to_gpa) It does, I took the liberty to change that. > Reviewed-by: David Hildenbrand <david@xxxxxxxxxx> Thanks.