> +++ 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)

Reviewed-by: David Hildenbrand <da...@redhat.com>

-- 

Thanks,

David

Reply via email to