]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - releases/5.1.12/kvm-selftests-aarch64-dirty_log_test-fix-unaligned-m.patch
Linux 5.1.12
[thirdparty/kernel/stable-queue.git] / releases / 5.1.12 / kvm-selftests-aarch64-dirty_log_test-fix-unaligned-m.patch
1 From 357d9f15c386a322800efec267109e12b11f20ab Mon Sep 17 00:00:00 2001
2 From: Andrew Jones <drjones@redhat.com>
3 Date: Thu, 23 May 2019 11:34:05 +0200
4 Subject: kvm: selftests: aarch64: dirty_log_test: fix unaligned memslot size
5
6 [ Upstream commit bffed38d4fb536c5d5d6c37846a7fb8fde1452fa ]
7
8 The memory slot size must be aligned to the host's page size. When
9 testing a guest with a 4k page size on a host with a 64k page size,
10 then 3 guest pages are not host page size aligned. Since we just need
11 a nearly arbitrary number of extra pages to ensure the memslot is not
12 aligned to a 64 host-page boundary for this test, then we can use
13 16, as that's 64k aligned, but not 64 * 64k aligned.
14
15 Fixes: 76d58e0f07ec ("KVM: fix KVM_CLEAR_DIRTY_LOG for memory slots of unaligned size", 2019-04-17)
16 Signed-off-by: Andrew Jones <drjones@redhat.com>
17 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
18 Signed-off-by: Sasha Levin <sashal@kernel.org>
19 ---
20 tools/testing/selftests/kvm/dirty_log_test.c | 2 +-
21 1 file changed, 1 insertion(+), 1 deletion(-)
22
23 diff --git a/tools/testing/selftests/kvm/dirty_log_test.c b/tools/testing/selftests/kvm/dirty_log_test.c
24 index 93f99c6b7d79..a2542ed42819 100644
25 --- a/tools/testing/selftests/kvm/dirty_log_test.c
26 +++ b/tools/testing/selftests/kvm/dirty_log_test.c
27 @@ -292,7 +292,7 @@ static void run_test(enum vm_guest_mode mode, unsigned long iterations,
28 * A little more than 1G of guest page sized pages. Cover the
29 * case where the size is not aligned to 64 pages.
30 */
31 - guest_num_pages = (1ul << (30 - guest_page_shift)) + 3;
32 + guest_num_pages = (1ul << (30 - guest_page_shift)) + 16;
33 host_page_size = getpagesize();
34 host_num_pages = (guest_num_pages * guest_page_size) / host_page_size +
35 !!((guest_num_pages * guest_page_size) % host_page_size);
36 --
37 2.20.1
38