diff options
| author | Ben Gardon <bgardon@google.com> | 2019-01-16 12:41:15 -0500 |
|---|---|---|
| committer | Paolo Bonzini <pbonzini@redhat.com> | 2019-01-25 13:11:36 -0500 |
| commit | 94a980c39c8e3f8abaff5d3b5bbcd4ccf1c02c4f (patch) | |
| tree | 83eb8ebd0b190eec81d6de52bb16b3342cf3d602 /tools/testing | |
| parent | 8997f657001d1ac5042d368a936987c87251c5ec (diff) | |
kvm: selftests: Fix region overlap check in kvm_util
Fix a call to userspace_mem_region_find to conform to its spec of
taking an inclusive, inclusive range. It was previously being called
with an inclusive, exclusive range. Also remove a redundant region bounds
check in vm_userspace_mem_region_add. Region overlap checking is already
performed by the call to userspace_mem_region_find.
Tested: Compiled tools/testing/selftests/kvm with -static
Ran all resulting test binaries on an Intel Haswell test machine
All tests passed
Signed-off-by: Ben Gardon <bgardon@google.com>
Reviewed-by: Jim Mattson <jmattson@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'tools/testing')
| -rw-r--r-- | tools/testing/selftests/kvm/lib/kvm_util.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/tools/testing/selftests/kvm/lib/kvm_util.c b/tools/testing/selftests/kvm/lib/kvm_util.c index 23022e9d32eb..b52cfdefecbf 100644 --- a/tools/testing/selftests/kvm/lib/kvm_util.c +++ b/tools/testing/selftests/kvm/lib/kvm_util.c | |||
| @@ -571,7 +571,7 @@ void vm_userspace_mem_region_add(struct kvm_vm *vm, | |||
| 571 | * already exist. | 571 | * already exist. |
| 572 | */ | 572 | */ |
| 573 | region = (struct userspace_mem_region *) userspace_mem_region_find( | 573 | region = (struct userspace_mem_region *) userspace_mem_region_find( |
| 574 | vm, guest_paddr, guest_paddr + npages * vm->page_size); | 574 | vm, guest_paddr, (guest_paddr + npages * vm->page_size) - 1); |
| 575 | if (region != NULL) | 575 | if (region != NULL) |
| 576 | TEST_ASSERT(false, "overlapping userspace_mem_region already " | 576 | TEST_ASSERT(false, "overlapping userspace_mem_region already " |
| 577 | "exists\n" | 577 | "exists\n" |
| @@ -587,15 +587,10 @@ void vm_userspace_mem_region_add(struct kvm_vm *vm, | |||
| 587 | region = region->next) { | 587 | region = region->next) { |
| 588 | if (region->region.slot == slot) | 588 | if (region->region.slot == slot) |
| 589 | break; | 589 | break; |
| 590 | if ((guest_paddr <= (region->region.guest_phys_addr | ||
| 591 | + region->region.memory_size)) | ||
| 592 | && ((guest_paddr + npages * vm->page_size) | ||
| 593 | >= region->region.guest_phys_addr)) | ||
| 594 | break; | ||
| 595 | } | 590 | } |
| 596 | if (region != NULL) | 591 | if (region != NULL) |
| 597 | TEST_ASSERT(false, "A mem region with the requested slot " | 592 | TEST_ASSERT(false, "A mem region with the requested slot " |
| 598 | "or overlapping physical memory range already exists.\n" | 593 | "already exists.\n" |
| 599 | " requested slot: %u paddr: 0x%lx npages: 0x%lx\n" | 594 | " requested slot: %u paddr: 0x%lx npages: 0x%lx\n" |
| 600 | " existing slot: %u paddr: 0x%lx size: 0x%lx", | 595 | " existing slot: %u paddr: 0x%lx size: 0x%lx", |
| 601 | slot, guest_paddr, npages, | 596 | slot, guest_paddr, npages, |
