672f70aa3d
Update to 2.11.1, plus a few other fixes. OBS-URL: https://build.opensuse.org/request/show/579209 OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=392
119 lines
3.0 KiB
Diff
119 lines
3.0 KiB
Diff
From f62e734e8cbb2b31f23b9c0e8cb69ae1500a200b Mon Sep 17 00:00:00 2001
|
|
From: Brijesh Singh <brijesh.singh@amd.com>
|
|
Date: Thu, 15 Feb 2018 09:03:20 -0600
|
|
Subject: [PATCH] kvm: update kvm.h to include memory encryption ioctls
|
|
|
|
Updates kmv.h to include memory encryption ioctls and SEV commands.
|
|
|
|
Cc: Christian Borntraeger <borntraeger@de.ibm.com>
|
|
Cc: Cornelia Huck <cornelia.huck@de.ibm.com>
|
|
Cc: Paolo Bonzini <pbonzini@redhat.com>
|
|
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
|
|
[BR: FATE#322124]
|
|
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
|
---
|
|
linux-headers/linux/kvm.h | 90 +++++++++++++++++++++++++++++++++++++++++++++++
|
|
1 file changed, 90 insertions(+)
|
|
|
|
diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h
|
|
index d92c9b2f0e..aed2230995 100644
|
|
--- a/linux-headers/linux/kvm.h
|
|
+++ b/linux-headers/linux/kvm.h
|
|
@@ -1362,6 +1362,96 @@ struct kvm_s390_ucas_mapping {
|
|
/* Available with KVM_CAP_S390_CMMA_MIGRATION */
|
|
#define KVM_S390_GET_CMMA_BITS _IOWR(KVMIO, 0xb8, struct kvm_s390_cmma_log)
|
|
#define KVM_S390_SET_CMMA_BITS _IOW(KVMIO, 0xb9, struct kvm_s390_cmma_log)
|
|
+/* Memory Encryption Commands */
|
|
+#define KVM_MEMORY_ENCRYPT_OP _IOWR(KVMIO, 0xba, unsigned long)
|
|
+
|
|
+struct kvm_enc_region {
|
|
+ __u64 addr;
|
|
+ __u64 size;
|
|
+};
|
|
+
|
|
+#define KVM_MEMORY_ENCRYPT_REG_REGION _IOR(KVMIO, 0xbb, struct kvm_enc_region)
|
|
+#define KVM_MEMORY_ENCRYPT_UNREG_REGION _IOR(KVMIO, 0xbc, struct kvm_enc_region)
|
|
+
|
|
+/* Secure Encrypted Virtualization command */
|
|
+enum sev_cmd_id {
|
|
+ /* Guest initialization commands */
|
|
+ KVM_SEV_INIT = 0,
|
|
+ KVM_SEV_ES_INIT,
|
|
+ /* Guest launch commands */
|
|
+ KVM_SEV_LAUNCH_START,
|
|
+ KVM_SEV_LAUNCH_UPDATE_DATA,
|
|
+ KVM_SEV_LAUNCH_UPDATE_VMSA,
|
|
+ KVM_SEV_LAUNCH_SECRET,
|
|
+ KVM_SEV_LAUNCH_MEASURE,
|
|
+ KVM_SEV_LAUNCH_FINISH,
|
|
+ /* Guest migration commands (outgoing) */
|
|
+ KVM_SEV_SEND_START,
|
|
+ KVM_SEV_SEND_UPDATE_DATA,
|
|
+ KVM_SEV_SEND_UPDATE_VMSA,
|
|
+ KVM_SEV_SEND_FINISH,
|
|
+ /* Guest migration commands (incoming) */
|
|
+ KVM_SEV_RECEIVE_START,
|
|
+ KVM_SEV_RECEIVE_UPDATE_DATA,
|
|
+ KVM_SEV_RECEIVE_UPDATE_VMSA,
|
|
+ KVM_SEV_RECEIVE_FINISH,
|
|
+ /* Guest status and debug commands */
|
|
+ KVM_SEV_GUEST_STATUS,
|
|
+ KVM_SEV_DBG_DECRYPT,
|
|
+ KVM_SEV_DBG_ENCRYPT,
|
|
+ /* Guest certificates commands */
|
|
+ KVM_SEV_CERT_EXPORT,
|
|
+
|
|
+ KVM_SEV_NR_MAX,
|
|
+};
|
|
+
|
|
+struct kvm_sev_cmd {
|
|
+ __u32 id;
|
|
+ __u64 data;
|
|
+ __u32 error;
|
|
+ __u32 sev_fd;
|
|
+};
|
|
+
|
|
+struct kvm_sev_launch_start {
|
|
+ __u32 handle;
|
|
+ __u32 policy;
|
|
+ __u64 dh_uaddr;
|
|
+ __u32 dh_len;
|
|
+ __u64 session_uaddr;
|
|
+ __u32 session_len;
|
|
+};
|
|
+
|
|
+struct kvm_sev_launch_update_data {
|
|
+ __u64 uaddr;
|
|
+ __u32 len;
|
|
+};
|
|
+
|
|
+
|
|
+struct kvm_sev_launch_secret {
|
|
+ __u64 hdr_uaddr;
|
|
+ __u32 hdr_len;
|
|
+ __u64 guest_uaddr;
|
|
+ __u32 guest_len;
|
|
+ __u64 trans_uaddr;
|
|
+ __u32 trans_len;
|
|
+};
|
|
+
|
|
+struct kvm_sev_launch_measure {
|
|
+ __u64 uaddr;
|
|
+ __u32 len;
|
|
+};
|
|
+
|
|
+struct kvm_sev_guest_status {
|
|
+ __u32 handle;
|
|
+ __u32 policy;
|
|
+ __u32 state;
|
|
+};
|
|
+
|
|
+struct kvm_sev_dbg {
|
|
+ __u64 src_uaddr;
|
|
+ __u64 dst_uaddr;
|
|
+ __u32 len;
|
|
+};
|
|
|
|
#define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0)
|
|
#define KVM_DEV_ASSIGN_PCI_2_3 (1 << 1)
|