[PATCH 2/7] KVM: selftests: Fix maxnode argument to migrate_pages() in xapic_ipi_test
From: Sean Christopherson
Date: Wed Sep 02 2026 - 20:17:09 EST
From: Shivank Garg <shivankg@xxxxxxx>
Use MAXNODE_FOR_MASK() to compute the @maxnode argument when migrating
pages in the xAPIC IPI test, as the current code incorrectly passes the
number of bytes, not the number of bits, in the mask, and also fails to
account for the kernel's off-by-one bug. I.e. the test sets maxnode to 8,
and so the kernel only checks node IDs 0-6 even though the nodemask covers
node IDs 0-63.
Fixes: 678e90a349a4 ("KVM: selftests: Test IPI to halted vCPU in xAPIC while backing page moves")
Signed-off-by: Shivank Garg <shivankg@xxxxxxx>
[sean: use MAXNODE_FOR_MASK(), rewrite changelog]
Signed-off-by: Sean Christopherson <seanjc@xxxxxxxxxx>
---
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 1ddcf95d7fe4..6be11c1c725c 100644
--- a/tools/testing/selftests/kvm/x86/xapic_ipi_test.c
+++ b/tools/testing/selftests/kvm/x86/xapic_ipi_test.c
@@ -291,7 +291,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, MAXNODE_FOR_MASK(nodemasks[from]),
&nodemasks[from],
&nodemasks[to]);
if (pages_not_moved < 0)
--
2.55.0.970.g62bdec98f9-goog