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 --- 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