Update KVM selftest framework to use KVM_SET_MEMORY_ATTRIBUTES2 and the
accompanying struct kvm_memory_attributes2.

Signed-off-by: Ackerley Tng <[email protected]>
---
 tools/testing/selftests/kvm/include/kvm_util.h | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/tools/testing/selftests/kvm/include/kvm_util.h 
b/tools/testing/selftests/kvm/include/kvm_util.h
index a64aae271a6a..872988197a5c 100644
--- a/tools/testing/selftests/kvm/include/kvm_util.h
+++ b/tools/testing/selftests/kvm/include/kvm_util.h
@@ -397,7 +397,7 @@ static inline void vm_enable_cap(struct kvm_vm *vm, 
uint32_t cap, uint64_t arg0)
 static inline void vm_set_memory_attributes(struct kvm_vm *vm, uint64_t gpa,
                                            uint64_t size, uint64_t attributes)
 {
-       struct kvm_memory_attributes attr = {
+       struct kvm_memory_attributes2 attr = {
                .attributes = attributes,
                .address = gpa,
                .size = size,
@@ -405,13 +405,16 @@ static inline void vm_set_memory_attributes(struct kvm_vm 
*vm, uint64_t gpa,
        };
 
        /*
-        * KVM_SET_MEMORY_ATTRIBUTES overwrites _all_ attributes.  These flows
+        * KVM_SET_MEMORY_ATTRIBUTES2 overwrites _all_ attributes.  These flows
         * need significant enhancements to support multiple attributes.
         */
        TEST_ASSERT(!attributes || attributes == KVM_MEMORY_ATTRIBUTE_PRIVATE,
                    "Update me to support multiple attributes!");
 
-       vm_ioctl(vm, KVM_SET_MEMORY_ATTRIBUTES, &attr);
+       __TEST_REQUIRE(kvm_check_cap(KVM_CAP_MEMORY_ATTRIBUTES2) > 0,
+                      "No valid attributes for VM fd ioctl!");
+
+       vm_ioctl(vm, KVM_SET_MEMORY_ATTRIBUTES2, &attr);
 }
 
 
-- 
2.53.0.rc1.225.gd81095ad13-goog


Reply via email to