On Mon, Feb 23, 2026, Tycho Andersen wrote: > From: "Tycho Andersen (AMD)" <[email protected]> > > The kernel allows setting the RAPL_DIS policy bit, but had no way to set
Please actually say what RAPL_DIS is and does, and explain why this is the correct approach. I genuinely have no idea what the impact of this patch is, (beyond disabling something, obviously). > the RAPL_DIS bit during SNP_INIT_EX. Setting the policy bit would always > result in: > > [ 898.840286] ccp 0000:a9:00.5: sev command 0xa0 failed (0x00000007) > > Allow setting the RAPL_DIS bit during SNP_INIT_EX via a module parameter. > If the hardware does not support RAPL_DIS, log and disable the module > parameter. > > Signed-off-by: Tycho Andersen (AMD) <[email protected]> > --- > drivers/crypto/ccp/sev-dev.c | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/drivers/crypto/ccp/sev-dev.c b/drivers/crypto/ccp/sev-dev.c > index 096f993974d1..362126453ef0 100644 > --- a/drivers/crypto/ccp/sev-dev.c > +++ b/drivers/crypto/ccp/sev-dev.c > @@ -75,6 +75,10 @@ static bool psp_init_on_probe = true; > module_param(psp_init_on_probe, bool, 0444); > MODULE_PARM_DESC(psp_init_on_probe, " if true, the PSP will be initialized > on module init. Else the PSP will be initialized on the first command > requiring it"); > > +static bool rapl_disable; > +module_param(rapl_disable, bool, 0444); > +MODULE_PARM_DESC(rapl_disable, " if true, the RAPL_DIS bit will be set > during INIT_EX if supported"); > + > #if IS_ENABLED(CONFIG_PCI_TSM) > static bool sev_tio_enabled = true; > module_param_named(tio, sev_tio_enabled, bool, 0444); > @@ -1428,6 +1432,16 @@ static int __sev_snp_init_locked(int *error, unsigned > int max_snp_asid) > data.max_snp_asid = max_snp_asid; > } > > + if (rapl_disable) { > + if (sev->snp_feat_info_0.ecx & > SNP_RAPL_DISABLE_SUPPORTED) { > + data.rapl_dis = 1; > + } else { > + dev_info(sev->dev, > + "SEV: RAPL_DIS requested, but not > supported"); > + rapl_disable = false; > + } > + } > + > data.init_rmp = 1; > data.list_paddr_en = 1; > data.list_paddr = __psp_pa(snp_range_list); > -- > 2.53.0 >
