cpu_buf_vm_clear static key is only used by the MMIO Stale Data mitigation.
Rename it to avoid mixing it up with X86_FEATURE_CLEAR_CPU_BUF_VM.
Signed-off-by: Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
---
arch/x86/include/asm/nospec-branch.h | 2 +-
arch/x86/kernel/cpu/bugs.c | 8 ++++----
arch/x86/kvm/mmu/spte.c | 2 +-
arch/x86/kvm/vmx/vmx.c | 2 +-
4 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/arch/x86/include/asm/nospec-branch.h b/arch/x86/include/asm/nospec-branch.h
index 08ed5a2e46a5fd790bcb1b73feb6469518809c06..cb46f5d188de47834466474ec8030bb2a2e4fdf3 100644
--- a/arch/x86/include/asm/nospec-branch.h
+++ b/arch/x86/include/asm/nospec-branch.h
@@ -580,7 +580,7 @@ DECLARE_STATIC_KEY_FALSE(cpu_buf_idle_clear);
DECLARE_STATIC_KEY_FALSE(switch_mm_cond_l1d_flush);
-DECLARE_STATIC_KEY_FALSE(cpu_buf_vm_clear);
+DECLARE_STATIC_KEY_FALSE(cpu_buf_vm_clear_mmio_only);
extern u16 x86_verw_sel;
diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c
index 6d00a9ea7b4f28da291114a7a096b26cc129b57e..e7c31c23fbeeb1aba4f538934c1e8a997adff522 100644
--- a/arch/x86/kernel/cpu/bugs.c
+++ b/arch/x86/kernel/cpu/bugs.c
@@ -197,8 +197,8 @@ DEFINE_STATIC_KEY_FALSE(switch_mm_cond_l1d_flush);
* X86_FEATURE_CLEAR_CPU_BUF_VM, and should only be enabled when KVM-only
* mitigation is required.
*/
-DEFINE_STATIC_KEY_FALSE(cpu_buf_vm_clear);
-EXPORT_SYMBOL_GPL(cpu_buf_vm_clear);
+DEFINE_STATIC_KEY_FALSE(cpu_buf_vm_clear_mmio_only);
+EXPORT_SYMBOL_GPL(cpu_buf_vm_clear_mmio_only);
#undef pr_fmt
#define pr_fmt(fmt) "mitigations: " fmt
@@ -750,9 +750,9 @@ static void __init mmio_apply_mitigation(void)
*/
if (verw_clear_cpu_buf_mitigation_selected) {
setup_force_cpu_cap(X86_FEATURE_CLEAR_CPU_BUF);
- static_branch_disable(&cpu_buf_vm_clear);
+ static_branch_disable(&cpu_buf_vm_clear_mmio_only);
} else {
- static_branch_enable(&cpu_buf_vm_clear);
+ static_branch_enable(&cpu_buf_vm_clear_mmio_only);
}
setup_force_cpu_cap(X86_FEATURE_CLEAR_CPU_BUF_VM);
diff --git a/arch/x86/kvm/mmu/spte.c b/arch/x86/kvm/mmu/spte.c
index 37647afde7d3acfa1301a771ac44792eab879495..380d6675027499715e49e5b35ef76e17451fd77b 100644
--- a/arch/x86/kvm/mmu/spte.c
+++ b/arch/x86/kvm/mmu/spte.c
@@ -292,7 +292,7 @@ bool make_spte(struct kvm_vcpu *vcpu, struct kvm_mmu_page *sp,
mark_page_dirty_in_slot(vcpu->kvm, slot, gfn);
}
- if (static_branch_unlikely(&cpu_buf_vm_clear) &&
+ if (static_branch_unlikely(&cpu_buf_vm_clear_mmio_only) &&
!kvm_vcpu_can_access_host_mmio(vcpu) &&
kvm_is_mmio_pfn(pfn, &is_host_mmio))
kvm_track_host_mmio_mapping(vcpu);
diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
index f87c216d976d7d344c924aa4cc18fe1bf8f9b731..451be757b3d1b2fec6b2b79157f26dd43bc368b8 100644
--- a/arch/x86/kvm/vmx/vmx.c
+++ b/arch/x86/kvm/vmx/vmx.c
@@ -903,7 +903,7 @@ unsigned int __vmx_vcpu_run_flags(struct vcpu_vmx *vmx)
if (!msr_write_intercepted(vmx, MSR_IA32_SPEC_CTRL))
flags |= VMX_RUN_SAVE_SPEC_CTRL;
- if (static_branch_unlikely(&cpu_buf_vm_clear) &&
+ if (static_branch_unlikely(&cpu_buf_vm_clear_mmio_only) &&
kvm_vcpu_can_access_host_mmio(&vmx->vcpu))
flags |= VMX_RUN_CLEAR_CPU_BUFFERS_FOR_MMIO;
--
2.34.1
On Wed Oct 29, 2025 at 9:26 PM UTC, Pawan Gupta wrote: > cpu_buf_vm_clear static key is only used by the MMIO Stale Data mitigation. > Rename it to avoid mixing it up with X86_FEATURE_CLEAR_CPU_BUF_VM. > > Signed-off-by: Pawan Gupta <pawan.kumar.gupta@linux.intel.com> (except the build issue) Reviewed-by: Brendan Jackman <jackmanb@google.com>
On Thu, Oct 30, 2025 at 12:29:39PM +0000, Brendan Jackman wrote: > On Wed Oct 29, 2025 at 9:26 PM UTC, Pawan Gupta wrote: > > cpu_buf_vm_clear static key is only used by the MMIO Stale Data mitigation. > > Rename it to avoid mixing it up with X86_FEATURE_CLEAR_CPU_BUF_VM. > > > > Signed-off-by: Pawan Gupta <pawan.kumar.gupta@linux.intel.com> > > (except the build issue) Will fix that. > Reviewed-by: Brendan Jackman <jackmanb@google.com> Thanks.
On Wed, Oct 29, 2025, Pawan Gupta wrote: > cpu_buf_vm_clear static key is only used by the MMIO Stale Data mitigation. > Rename it to avoid mixing it up with X86_FEATURE_CLEAR_CPU_BUF_VM. > > Signed-off-by: Pawan Gupta <pawan.kumar.gupta@linux.intel.com> > --- ... > diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c > index f87c216d976d7d344c924aa4cc18fe1bf8f9b731..451be757b3d1b2fec6b2b79157f26dd43bc368b8 100644 > --- a/arch/x86/kvm/vmx/vmx.c > +++ b/arch/x86/kvm/vmx/vmx.c > @@ -903,7 +903,7 @@ unsigned int __vmx_vcpu_run_flags(struct vcpu_vmx *vmx) > if (!msr_write_intercepted(vmx, MSR_IA32_SPEC_CTRL)) > flags |= VMX_RUN_SAVE_SPEC_CTRL; > > - if (static_branch_unlikely(&cpu_buf_vm_clear) && > + if (static_branch_unlikely(&cpu_buf_vm_clear_mmio_only) && > kvm_vcpu_can_access_host_mmio(&vmx->vcpu)) > flags |= VMX_RUN_CLEAR_CPU_BUFFERS_FOR_MMIO; The use in vmx_vcpu_enter_exit() needs to be renamed as well. The code gets dropped in patch 3, but intermediate builds will fail.
On Wed, Oct 29, 2025 at 05:18:19PM -0700, Sean Christopherson wrote: > On Wed, Oct 29, 2025, Pawan Gupta wrote: > > cpu_buf_vm_clear static key is only used by the MMIO Stale Data mitigation. > > Rename it to avoid mixing it up with X86_FEATURE_CLEAR_CPU_BUF_VM. > > > > Signed-off-by: Pawan Gupta <pawan.kumar.gupta@linux.intel.com> > > --- > > ... > > > diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c > > index f87c216d976d7d344c924aa4cc18fe1bf8f9b731..451be757b3d1b2fec6b2b79157f26dd43bc368b8 100644 > > --- a/arch/x86/kvm/vmx/vmx.c > > +++ b/arch/x86/kvm/vmx/vmx.c > > @@ -903,7 +903,7 @@ unsigned int __vmx_vcpu_run_flags(struct vcpu_vmx *vmx) > > if (!msr_write_intercepted(vmx, MSR_IA32_SPEC_CTRL)) > > flags |= VMX_RUN_SAVE_SPEC_CTRL; > > > > - if (static_branch_unlikely(&cpu_buf_vm_clear) && > > + if (static_branch_unlikely(&cpu_buf_vm_clear_mmio_only) && > > kvm_vcpu_can_access_host_mmio(&vmx->vcpu)) > > flags |= VMX_RUN_CLEAR_CPU_BUFFERS_FOR_MMIO; > > The use in vmx_vcpu_enter_exit() needs to be renamed as well. The code gets > dropped in patch 3, but intermediate builds will fail. Ya, thanks for catching it.
© 2016 - 2025 Red Hat, Inc.