Skip to content

Commit 1a54336

Browse files
committed
cpuidle, intel_idle: Fix CPUIDLE_FLAG_IBRS
Bugzilla: https://bugzilla.redhat.com/2185872 commit 9b461a6 Author: Peter Zijlstra <peterz@infradead.org> Date: Thu Jan 12 20:43:34 2023 +0100 cpuidle, intel_idle: Fix CPUIDLE_FLAG_IBRS objtool to the rescue: vmlinux.o: warning: objtool: intel_idle_ibrs+0x17: call to spec_ctrl_current() leaves .noinstr.text section vmlinux.o: warning: objtool: intel_idle_ibrs+0x27: call to wrmsrl.constprop.0() leaves .noinstr.text section Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Signed-off-by: Ingo Molnar <mingo@kernel.org> Tested-by: Tony Lindgren <tony@atomide.com> Tested-by: Ulf Hansson <ulf.hansson@linaro.org> Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Acked-by: Frederic Weisbecker <frederic@kernel.org> Link: https://lore.kernel.org/r/20230112195540.556912863@infradead.org Signed-off-by: David Arcari <darcari@redhat.com>
1 parent 48d843d commit 1a54336

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

arch/x86/kernel/cpu/bugs.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ void update_spec_ctrl_cond(u64 val)
8686
wrmsrl(MSR_IA32_SPEC_CTRL, val);
8787
}
8888

89-
u64 spec_ctrl_current(void)
89+
noinstr u64 spec_ctrl_current(void)
9090
{
9191
return this_cpu_read(x86_spec_ctrl_current);
9292
}

drivers/idle/intel_idle.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -181,12 +181,12 @@ static __cpuidle int intel_idle_ibrs(struct cpuidle_device *dev,
181181
int ret;
182182

183183
if (smt_active)
184-
wrmsrl(MSR_IA32_SPEC_CTRL, 0);
184+
native_wrmsrl(MSR_IA32_SPEC_CTRL, 0);
185185

186186
ret = __intel_idle(dev, drv, index);
187187

188188
if (smt_active)
189-
wrmsrl(MSR_IA32_SPEC_CTRL, spec_ctrl);
189+
native_wrmsrl(MSR_IA32_SPEC_CTRL, spec_ctrl);
190190

191191
return ret;
192192
}

0 commit comments

Comments
 (0)