Messages in this thread | | | Subject | Re: [PATCH V4 3/4] kvm: fix zero length mmio searching | From | Paolo Bonzini <> | Date | Fri, 11 Sep 2015 10:26:41 +0200 |
| |
On 11/09/2015 05:17, Jason Wang wrote: > + int len = r2->len ? r1->len : 0; > + > if (r1->addr < r2->addr) > return -1; > - if (r1->addr + r1->len > r2->addr + r2->len) > + if (r1->addr + len > r2->addr + r2->len) > return 1;
Perhaps better:
gpa_t addr1 = r1->addr; gpa_t addr2 = r2->addr;
if (addr1 < addr2) return -1;
/* If r2->len == 0, match the exact address. If r2->len != 0, * accept any overlapping write. Any order is acceptable for * overlapping ranges, because kvm_io_bus_get_first_dev ensures * we process all of them. */ if (r2->len) { addr1 += r1->len; addr2 += r2->len; }
if (addr1 > addr2) return 1;
return 0;
| |