On 6/28/2025 12:25 AM, Manali Shukla wrote: > From: Santosh Shukla <santosh.shukla@xxxxxxx> > > Define the new VMCB fields that will beused to save and restore the s/beused/be used/ > satate of the following fetch and op IBS related MSRs. > > * MSRC001_1030 [IBS Fetch Control] > * MSRC001_1031 [IBS Fetch Linear Address] > * MSRC001_1033 [IBS Execution Control] > * MSRC001_1034 [IBS Op Logical Address] > * MSRC001_1035 [IBS Op Data] > * MSRC001_1036 [IBS Op Data 2] > * MSRC001_1037 [IBS Op Data 3] > * MSRC001_1038 [IBS DC Linear Address] > * MSRC001_103B [IBS Branch Target Address] > * MSRC001_103C [IBS Fetch Control Extended] > > Signed-off-by: Santosh Shukla <santosh.shukla@xxxxxxx> > Signed-off-by: Manali Shukla <manali.shukla@xxxxxxx> > --- > arch/x86/include/asm/svm.h | 14 +++++++++++++- > 1 file changed, 13 insertions(+), 1 deletion(-) > > diff --git a/arch/x86/include/asm/svm.h b/arch/x86/include/asm/svm.h > index ad954a1a6656..b62049b51ebb 100644 > --- a/arch/x86/include/asm/svm.h > +++ b/arch/x86/include/asm/svm.h > @@ -356,6 +356,17 @@ struct vmcb_save_area { > u64 last_excp_to; > u8 reserved_0x298[72]; > u64 spec_ctrl; /* Guest version of SPEC_CTRL at 0x2E0 */ > + u8 reserved_0x2e8[1168]; > + u64 ibs_fetch_ctl; > + u64 ibs_fetch_linear_addr; > + u64 ibs_op_ctl; > + u64 ibs_op_rip; > + u64 ibs_op_data; > + u64 ibs_op_data2; > + u64 ibs_op_data3; > + u64 ibs_dc_linear_addr; > + u64 ibs_br_target; > + u64 ibs_fetch_extd_ctl; > } __packed; > > /* Save area definition for SEV-ES and SEV-SNP guests */ > @@ -538,7 +549,7 @@ struct vmcb { > }; > } __packed; > > -#define EXPECTED_VMCB_SAVE_AREA_SIZE 744 > +#define EXPECTED_VMCB_SAVE_AREA_SIZE 1992 > #define EXPECTED_GHCB_SAVE_AREA_SIZE 1032 > #define EXPECTED_SEV_ES_SAVE_AREA_SIZE 1648 > #define EXPECTED_VMCB_CONTROL_AREA_SIZE 1024 > @@ -564,6 +575,7 @@ static inline void __unused_size_checks(void) > BUILD_BUG_RESERVED_OFFSET(vmcb_save_area, 0x180); > BUILD_BUG_RESERVED_OFFSET(vmcb_save_area, 0x248); > BUILD_BUG_RESERVED_OFFSET(vmcb_save_area, 0x298); > + BUILD_BUG_RESERVED_OFFSET(vmcb_save_area, 0x2e8); > > BUILD_BUG_RESERVED_OFFSET(sev_es_save_area, 0xc8); > BUILD_BUG_RESERVED_OFFSET(sev_es_save_area, 0xcc);