Merge tag 'x86-asm-2024-03-11' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
[linux-2.6-block.git] / tools / testing / selftests / kvm / set_memory_region_test.c
index 40337f566eebb319d07f332d4eab1e0a6d0c287f..06b43ed23580b67c060aeaadea11b06641a629c3 100644 (file)
@@ -367,11 +367,21 @@ static void test_invalid_memory_region_flags(void)
        }
 
        if (supported_flags & KVM_MEM_GUEST_MEMFD) {
+               int guest_memfd = vm_create_guest_memfd(vm, MEM_REGION_SIZE, 0);
+
                r = __vm_set_user_memory_region2(vm, 0,
                                                 KVM_MEM_LOG_DIRTY_PAGES | KVM_MEM_GUEST_MEMFD,
-                                                0, MEM_REGION_SIZE, NULL, 0, 0);
+                                                0, MEM_REGION_SIZE, NULL, guest_memfd, 0);
                TEST_ASSERT(r && errno == EINVAL,
                            "KVM_SET_USER_MEMORY_REGION2 should have failed, dirty logging private memory is unsupported");
+
+               r = __vm_set_user_memory_region2(vm, 0,
+                                                KVM_MEM_READONLY | KVM_MEM_GUEST_MEMFD,
+                                                0, MEM_REGION_SIZE, NULL, guest_memfd, 0);
+               TEST_ASSERT(r && errno == EINVAL,
+                           "KVM_SET_USER_MEMORY_REGION2 should have failed, read-only GUEST_MEMFD memslots are unsupported");
+
+               close(guest_memfd);
        }
 }