File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -2767,6 +2767,15 @@ static int svm_get_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
27672767 if (guest_cpuid_is_intel_compatible (vcpu ))
27682768 msr_info -> data |= (u64 )svm -> sysenter_esp_hi << 32 ;
27692769 break ;
2770+ case MSR_IA32_S_CET :
2771+ msr_info -> data = svm -> vmcb -> save .s_cet ;
2772+ break ;
2773+ case MSR_IA32_INT_SSP_TAB :
2774+ msr_info -> data = svm -> vmcb -> save .isst_addr ;
2775+ break ;
2776+ case MSR_KVM_INTERNAL_GUEST_SSP :
2777+ msr_info -> data = svm -> vmcb -> save .ssp ;
2778+ break ;
27702779 case MSR_TSC_AUX :
27712780 msr_info -> data = svm -> tsc_aux ;
27722781 break ;
@@ -2999,6 +3008,18 @@ static int svm_set_msr(struct kvm_vcpu *vcpu, struct msr_data *msr)
29993008 svm -> vmcb01 .ptr -> save .sysenter_esp = (u32 )data ;
30003009 svm -> sysenter_esp_hi = guest_cpuid_is_intel_compatible (vcpu ) ? (data >> 32 ) : 0 ;
30013010 break ;
3011+ case MSR_IA32_S_CET :
3012+ svm -> vmcb -> save .s_cet = data ;
3013+ vmcb_mark_dirty (svm -> vmcb01 .ptr , VMCB_CET );
3014+ break ;
3015+ case MSR_IA32_INT_SSP_TAB :
3016+ svm -> vmcb -> save .isst_addr = data ;
3017+ vmcb_mark_dirty (svm -> vmcb01 .ptr , VMCB_CET );
3018+ break ;
3019+ case MSR_KVM_INTERNAL_GUEST_SSP :
3020+ svm -> vmcb -> save .ssp = data ;
3021+ vmcb_mark_dirty (svm -> vmcb01 .ptr , VMCB_CET );
3022+ break ;
30023023 case MSR_TSC_AUX :
30033024 /*
30043025 * TSC_AUX is always virtualized for SEV-ES guests when the
Original file line number Diff line number Diff line change 7474 * AVIC PHYSICAL_TABLE pointer,
7575 * AVIC LOGICAL_TABLE pointer
7676 */
77+ VMCB_CET , /* S_CET, SSP, ISST_ADDR */
7778 VMCB_SW = 31 , /* Reserved for hypervisor/software use */
7879};
7980
8283 (1U << VMCB_ASID) | (1U << VMCB_INTR) | \
8384 (1U << VMCB_NPT) | (1U << VMCB_CR) | (1U << VMCB_DR) | \
8485 (1U << VMCB_DT) | (1U << VMCB_SEG) | (1U << VMCB_CR2) | \
85- (1U << VMCB_LBR) | (1U << VMCB_AVIC) | \
86+ (1U << VMCB_LBR) | (1U << VMCB_AVIC) | (1U << VMCB_CET) | \
8687 (1U << VMCB_SW))
8788
8889/* TPR and CR2 are always written before VMRUN */
You can’t perform that action at this time.
0 commit comments