]>
Commit | Line | Data |
---|---|---|
9d599b98 SL |
1 | From 2ee52999f528b076ed1294602c572cbce6ef5e9d Mon Sep 17 00:00:00 2001 |
2 | From: Ben Gardon <bgardon@google.com> | |
3 | Date: Wed, 16 Jan 2019 09:41:15 -0800 | |
4 | Subject: kvm: selftests: Fix region overlap check in kvm_util | |
5 | ||
6 | [ Upstream commit 94a980c39c8e3f8abaff5d3b5bbcd4ccf1c02c4f ] | |
7 | ||
8 | Fix a call to userspace_mem_region_find to conform to its spec of | |
9 | taking an inclusive, inclusive range. It was previously being called | |
10 | with an inclusive, exclusive range. Also remove a redundant region bounds | |
11 | check in vm_userspace_mem_region_add. Region overlap checking is already | |
12 | performed by the call to userspace_mem_region_find. | |
13 | ||
14 | Tested: Compiled tools/testing/selftests/kvm with -static | |
15 | Ran all resulting test binaries on an Intel Haswell test machine | |
16 | All tests passed | |
17 | ||
18 | Signed-off-by: Ben Gardon <bgardon@google.com> | |
19 | Reviewed-by: Jim Mattson <jmattson@google.com> | |
20 | Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> | |
21 | Signed-off-by: Sasha Levin <sashal@kernel.org> | |
22 | --- | |
23 | tools/testing/selftests/kvm/lib/kvm_util.c | 9 ++------- | |
24 | 1 file changed, 2 insertions(+), 7 deletions(-) | |
25 | ||
26 | diff --git a/tools/testing/selftests/kvm/lib/kvm_util.c b/tools/testing/selftests/kvm/lib/kvm_util.c | |
27 | index 6fd8c089cafcd..fb5d2d1e0c048 100644 | |
28 | --- a/tools/testing/selftests/kvm/lib/kvm_util.c | |
29 | +++ b/tools/testing/selftests/kvm/lib/kvm_util.c | |
30 | @@ -590,7 +590,7 @@ void vm_userspace_mem_region_add(struct kvm_vm *vm, | |
31 | * already exist. | |
32 | */ | |
33 | region = (struct userspace_mem_region *) userspace_mem_region_find( | |
34 | - vm, guest_paddr, guest_paddr + npages * vm->page_size); | |
35 | + vm, guest_paddr, (guest_paddr + npages * vm->page_size) - 1); | |
36 | if (region != NULL) | |
37 | TEST_ASSERT(false, "overlapping userspace_mem_region already " | |
38 | "exists\n" | |
39 | @@ -606,15 +606,10 @@ void vm_userspace_mem_region_add(struct kvm_vm *vm, | |
40 | region = region->next) { | |
41 | if (region->region.slot == slot) | |
42 | break; | |
43 | - if ((guest_paddr <= (region->region.guest_phys_addr | |
44 | - + region->region.memory_size)) | |
45 | - && ((guest_paddr + npages * vm->page_size) | |
46 | - >= region->region.guest_phys_addr)) | |
47 | - break; | |
48 | } | |
49 | if (region != NULL) | |
50 | TEST_ASSERT(false, "A mem region with the requested slot " | |
51 | - "or overlapping physical memory range already exists.\n" | |
52 | + "already exists.\n" | |
53 | " requested slot: %u paddr: 0x%lx npages: 0x%lx\n" | |
54 | " existing slot: %u paddr: 0x%lx size: 0x%lx", | |
55 | slot, guest_paddr, npages, | |
56 | -- | |
57 | 2.19.1 | |
58 |