diff mbox series

intel_idle: update spec_ctrl register only when necessary

Message ID 20240206071452.42673-1-lirongqing@baidu.com
State New
Headers show
Series intel_idle: update spec_ctrl register only when necessary | expand

Commit Message

Li RongQing Feb. 6, 2024, 7:14 a.m. UTC
spec_ctrl maybe 0 when mitigations is off, and writing spec_ctrl MSR
is expensive operation, so update spec_ctrl only when necessary

Signed-off-by: Li RongQing <lirongqing@baidu.com>
---
 drivers/idle/intel_idle.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c
index bcf1198..8150d5f 100644
--- a/drivers/idle/intel_idle.c
+++ b/drivers/idle/intel_idle.c
@@ -176,12 +176,12 @@  static __cpuidle int intel_idle_ibrs(struct cpuidle_device *dev,
 	u64 spec_ctrl = spec_ctrl_current();
 	int ret;
 
-	if (smt_active)
+	if (smt_active && spec_ctrl)
 		__update_spec_ctrl(0);
 
 	ret = __intel_idle(dev, drv, index, true);
 
-	if (smt_active)
+	if (smt_active && spec_ctrl)
 		__update_spec_ctrl(spec_ctrl);
 
 	return ret;