[PATCH 2/2] x86/sev: Only announce RMPOPT optimizations when SNP is enabled
From: Ashish Kalra
Date: Tue Oct 13 2026 - 16:07:30 EST
From: Ashish Kalra <ashish.kalra@xxxxxxx>
rmpopt_init() prints "RMPOPT optimizations enabled" gated only on
X86_FEATURE_RMPOPT, which is a CPUID bit advertised independently of
whether SNP is active. On a system where SNP is disabled in the BIOS the
message is still printed at boot even though RMPOPT is never actually used
(snp_enable_rmpopt() bails out on !CC_ATTR_HOST_SEV_SNP), which is
misleading.
rmpopt_init() is only the software setup (workqueue and the delayed work);
the capability that matters for the message - an active SNP host - is
checked in snp_enable_rmpopt(). Move the announcement there, as a
pr_info_once(), so it is emitted only when RMPOPT is actually enabled on an
SNP host.
Fixes: c6c6f156d192 ("x86/sev: Perform RMP optimizations asynchronously")
Signed-off-by: Ashish Kalra <ashish.kalra@xxxxxxx>
---
Note: in the posted series the pr_info_once() lived in
snp_enable_rmpopt() (SNP-gated); when applied, c6c6f156d192 moved it to
rmpopt_init() (feature-only-gated) as a plain pr_info(). This restores the
original placement.
arch/x86/virt/svm/sev.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/x86/virt/svm/sev.c b/arch/x86/virt/svm/sev.c
index 43e4945e6cdf..6f5f4ee821d0 100644
--- a/arch/x86/virt/svm/sev.c
+++ b/arch/x86/virt/svm/sev.c
@@ -656,8 +656,6 @@ static int __init rmpopt_init(void)
if ((rmpopt_pa_end - rmpopt_pa_start) > SZ_2T)
rmpopt_pa_end = rmpopt_pa_start + SZ_2T;
- pr_info("RMPOPT optimizations enabled\n");
-
rmpopt_soft_init = true;
return 0;
@@ -690,6 +688,8 @@ void snp_enable_rmpopt(void)
mod_delayed_work(rmpopt_wq, &rmpopt_delayed_work,
msecs_to_jiffies(RMPOPT_WORK_TIMEOUT));
+
+ pr_info_once("RMPOPT optimizations enabled\n");
}
EXPORT_SYMBOL_FOR_MODULES(snp_enable_rmpopt, "ccp,kvm-amd");
--
2.43.0