History

Merge tag 'kvm-x86-ciphertext-6.18' of https://github.com/kvm-x86/linux into HEAD

KVM SEV-SNP CipherText Hiding support for 6.18 Add support for SEV-SNP's CipherText Hiding, an opt-in feature that prevents unauthorized CPU accesses from reading the ciphertext of SNP guest private memory, e.g. to attempt an offline attack. Instead of ciphertext, the CPU will always read back all FFs when CipherText Hiding is enabled. Add new module parameter to the KVM module to enable CipherText Hiding and control the number of ASIDs that can be used for VMs with CipherText Hiding, which is in effect the number of SNP VMs. When CipherText Hiding is enabled, the shared SEV-ES/SEV-SNP ASID space is split into separate ranges for SEV-ES and SEV-SNP guests, i.e. ASIDs that can be used for CipherText Hiding cannot be used to run SEV-ES guests.

Paolo Bonzini committed 1 year ago

Commit 10ef74c2 parents a104e0a 6c7c6206 files · +249 −27Browse files

Showing the changes to include/uapi (1 of 6 files). Show all

Unified · Split

include/uapi/linux/psp-sev.h+9−1
@@ -185,6 +185,10 @@ struct sev_user_data_get_id2 { · 184 unmodified lines
185185 * @mask_chip_id: whether chip id is present in attestation reports or not
186186 * @mask_chip_key: whether attestation reports are signed or not
187187 * @vlek_en: VLEK (Version Loaded Endorsement Key) hashstick is loaded
188+ * @feature_info: whether SNP_FEATURE_INFO command is available
189+ * @rapl_dis: whether RAPL is disabled
190+ * @ciphertext_hiding_cap: whether platform has ciphertext hiding capability
191+ * @ciphertext_hiding_en: whether ciphertext hiding is enabled
188192 * @rsvd1: reserved
189193 * @guest_count: the number of guest currently managed by the firmware
190194 * @current_tcb_version: current TCB version
@@ -200,7 +204,11 @@ struct sev_user_data_snp_status { · 9 unmodified lines
200204 __u32 mask_chip_id:1; /* Out */
201205 __u32 mask_chip_key:1; /* Out */
202206 __u32 vlek_en:1; /* Out */
203− __u32 rsvd1:29;
207+ __u32 feature_info:1; /* Out */
208+ __u32 rapl_dis:1; /* Out */
209+ __u32 ciphertext_hiding_cap:1; /* Out */
210+ __u32 ciphertext_hiding_en:1; /* Out */
211+ __u32 rsvd1:25;
204212 __u32 guest_count; /* Out */
205213 __u64 current_tcb_version; /* Out */
206214 __u64 reported_tcb_version; /* Out */