KVM: SVM: Add missing member in SNP_LAUNCH_START command structure
authorNikunj A Dadhania <nikunj@amd.com>
Tue, 8 Apr 2025 09:32:11 +0000 (15:02 +0530)
committerSean Christopherson <seanjc@google.com>
Wed, 25 Jun 2025 14:27:27 +0000 (07:27 -0700)
The sev_data_snp_launch_start structure should include a 4-byte
desired_tsc_khz field before the gosvw field, which was missed in the
initial implementation. As a result, the structure is 4 bytes shorter than
expected by the firmware, causing the gosvw field to start 4 bytes early.
Fix this by adding the missing 4-byte member for the desired TSC frequency.

Fixes: 3a45dc2b419e ("crypto: ccp: Define the SEV-SNP commands")
Cc: stable@vger.kernel.org
Suggested-by: Tom Lendacky <thomas.lendacky@amd.com>
Reviewed-by: Tom Lendacky <thomas.lendacky@amd.com>
Tested-by: Vaishali Thakkar <vaishali.thakkar@suse.com>
Signed-off-by: Nikunj A Dadhania <nikunj@amd.com>
Link: https://lore.kernel.org/r/20250408093213.57962-3-nikunj@amd.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
include/linux/psp-sev.h

index 0b3a36bdaa90630717c29a707b9fb43d8c838b8d..0f5f94137f6da4bc2d462819007587479d1e9b89 100644 (file)
@@ -594,6 +594,7 @@ struct sev_data_snp_addr {
  * @imi_en: launch flow is launching an IMI (Incoming Migration Image) for the
  *          purpose of guest-assisted migration.
  * @rsvd: reserved
+ * @desired_tsc_khz: hypervisor desired mean TSC freq in kHz of the guest
  * @gosvw: guest OS-visible workarounds, as defined by hypervisor
  */
 struct sev_data_snp_launch_start {
@@ -603,6 +604,7 @@ struct sev_data_snp_launch_start {
        u32 ma_en:1;                            /* In */
        u32 imi_en:1;                           /* In */
        u32 rsvd:30;
+       u32 desired_tsc_khz;                    /* In */
        u8 gosvw[16];                           /* In */
 } __packed;