migrate_pages() syscall expect maxnode to be one greater than the
number of bits in the nodemask. do_migrations() passes the size of
nodemask in bytes to migrate_pages(). This sets the maxnode to 8,
so kernel only checks node IDs 0-6 even though the nodemask covers
node IDs 0-63.

Pass the nodemask size in bits plus one.

Fixes: 678e90a349a4 ("KVM: selftests: Test IPI to halted vCPU in xAPIC while 
backing page moves")
Signed-off-by: Shivank Garg <[email protected]>
---
 tools/testing/selftests/kvm/x86/xapic_ipi_test.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/testing/selftests/kvm/x86/xapic_ipi_test.c 
b/tools/testing/selftests/kvm/x86/xapic_ipi_test.c
index 39ce9a9369f5..761e47e4cae2 100644
--- a/tools/testing/selftests/kvm/x86/xapic_ipi_test.c
+++ b/tools/testing/selftests/kvm/x86/xapic_ipi_test.c
@@ -310,7 +310,7 @@ void do_migrations(struct test_data_page *data, int 
run_secs, int delay_usecs,
                 * KVM_CREATE_VCPU ioctl. If that assumption ever changes this
                 * test may break or give a false positive signal.
                 */
-               pages_not_moved = migrate_pages(0, sizeof(nodemasks[from]),
+               pages_not_moved = migrate_pages(0, sizeof(nodemasks[from]) * 8 
+ 1,
                                                &nodemasks[from],
                                                &nodemasks[to]);
                if (pages_not_moved < 0)

-- 
2.43.0


Reply via email to