Re: [PATCH v3 3/7] x86/snp: create snp_x86_shutdown()
From: Borislav Petkov
Date: Sat Mar 21 2026 - 13:06:24 EST
On Tue, Mar 17, 2026 at 10:21:53AM -0600, Tycho Andersen wrote:
> Subject: Re: [PATCH v3 3/7] x86/snp: create snp_x86_shutdown()
"x86/sev: ..."
The tip tree preferred format for patch subject prefixes is
'subsys/component:', e.g. 'x86/apic:', 'x86/mm/fault:', 'sched/fair:',
'genirq/core:'. Please do not use file names or complete file paths as
prefix. 'git log path/to/file' should give you a reasonable hint in most
cases.
The condensed patch description in the subject line should start with a
uppercase letter and should be written in imperative tone.
Check your whole set pls.
> From: "Tycho Andersen (AMD)" <tycho@xxxxxxxxxx>
>
> After SNP_SHUTDOWN, two architecture-level things should be done:
"architecture-level things"?
> 1. clear the RMP table
> 2. disable MFDM to prevent the FW_WARN in k8_check_syscfg_dram_mod_en() in
> the event of a kexec
>
> Create and export to the CCP driver a function that does them.
>
> Also change the MFDM helper to allow for disabling the bit, since the SNP
> x86 shutdown path needs to disable MFDM. The comment for
> k8_check_syscfg_dram_mod_en() notes, the "BIOS" is supposed clear it, or
> the kernel in the case of module unload and shutdown followed by kexec.
>
> Signed-off-by: Tycho Andersen (AMD) <tycho@xxxxxxxxxx>
> Reviewed-by: Tom Lendacky <thomas.lendacky@xxxxxxx>
> ---
> arch/x86/include/asm/sev.h | 2 ++
> arch/x86/virt/svm/sev.c | 23 ++++++++++++++++++++---
> 2 files changed, 22 insertions(+), 3 deletions(-)
...
> @@ -521,12 +524,26 @@ void snp_prepare_for_snp_init(void)
> * MtrrFixDramModEn is not shared between threads on a core,
> * therefore it must be set on all CPUs prior to enabling SNP.
> */
> - on_each_cpu(mfd_enable, NULL, 1);
> + on_each_cpu(mfd_reconfigure, (void *)1, 1);
^^^^^^^^^
ew.
> on_each_cpu(snp_enable, NULL, 1);
> }
> EXPORT_SYMBOL_FOR_MODULES(snp_prepare_for_snp_init, "ccp");
>
> +void snp_x86_shutdown(void)
"snp" and "x86" prefixes?
> +{
> + u64 syscfg;
> +
> + rdmsrq(MSR_AMD64_SYSCFG, syscfg);
> +
^ Superfluous newline.
> + if (syscfg & MSR_AMD64_SYSCFG_SNP_EN)
> + return;
> +
> + clear_rmp();
> + on_each_cpu(mfd_reconfigure, 0, 1);
s/0/NULL/
> +}
> +EXPORT_SYMBOL_FOR_MODULES(snp_x86_shutdown, "ccp");
> +
> /*
> * Do the necessary preparations which are verified by the firmware as
> * described in the SNP_INIT_EX firmware command description in the SNP
> --
> 2.53.0
>
--
Regards/Gruss,
Boris.
https://people.kernel.org/tglx/notes-about-netiquette