Thread (164 messages) 164 messages, 20 authors, 2023-05-25

Re: [PATCH v7 11/14] KVM: Register/unregister the guest private memory regions

From: Chao Peng <hidden>
Date: 2022-08-29 15:26:03
Also in: kvm, linux-doc, linux-fsdevel, linux-kselftest, linux-mm, lkml, qemu-devel

On Fri, Aug 26, 2022 at 04:19:43PM +0100, Fuad Tabba wrote:
quoted
+bool __weak kvm_arch_private_mem_supported(struct kvm *kvm)
+{
+       return false;
+}
+
 static int check_memory_region_flags(const struct kvm_user_mem_region *mem)
 {
        u32 valid_flags = KVM_MEM_LOG_DIRTY_PAGES;
@@ -4689,6 +4729,22 @@ static long kvm_vm_ioctl(struct file *filp,
                r = kvm_vm_ioctl_set_memory_region(kvm, &mem);
                break;
        }
+#ifdef CONFIG_HAVE_KVM_PRIVATE_MEM
+       case KVM_MEMORY_ENCRYPT_REG_REGION:
+       case KVM_MEMORY_ENCRYPT_UNREG_REGION: {
+               struct kvm_enc_region region;
+
+               if (!kvm_arch_private_mem_supported(kvm))
+                       goto arch_vm_ioctl;
+
+               r = -EFAULT;
+               if (copy_from_user(&region, argp, sizeof(region)))
+                       goto out;
+
+               r = kvm_vm_ioctl_set_encrypted_region(kvm, ioctl, &region);
+               break;
+       }
+#endif
        case KVM_GET_DIRTY_LOG: {
                struct kvm_dirty_log log;
@@ -4842,6 +4898,7 @@ static long kvm_vm_ioctl(struct file *filp,
                r = kvm_vm_ioctl_get_stats_fd(kvm);
                break;
        default:
+arch_vm_ioctl:
It might be good to make this label conditional on
CONFIG_HAVE_KVM_PRIVATE_MEM, otherwise you get a warning if
CONFIG_HAVE_KVM_PRIVATE_MEM isn't defined.

+#ifdef CONFIG_HAVE_KVM_PRIVATE_MEM
 arch_vm_ioctl:
+#endif
Right, as the bot already complains.

Chao
Cheers,
/fuad




quoted
                r = kvm_arch_vm_ioctl(filp, ioctl, arg);
        }
 out:
--
2.25.1
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help