aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2022-07-29 10:57:26 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2022-07-29 10:57:26 -0700
commit506e6dfb0f1131f104df66ccae1197bdf8f1b6b0 (patch)
tree78e5dabc912d76bc90dc6545265942ec1dcb0522 /drivers
parentMerge tag 'riscv-for-linus-5.19-rc9' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux (diff)
parentintel_idle: Fix false positive RCU splats due to incorrect hardirqs state (diff)
downloadlinux-dev-506e6dfb0f1131f104df66ccae1197bdf8f1b6b0.tar.xz
linux-dev-506e6dfb0f1131f104df66ccae1197bdf8f1b6b0.zip
Merge tag 'pm-5.19-rc9' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull power management fix from Rafael Wysocki: "Make some false positive RCU splats resulting from a recent intel_idle driver change go away (Waiman Long)" * tag 'pm-5.19-rc9' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: intel_idle: Fix false positive RCU splats due to incorrect hardirqs state
Diffstat (limited to 'drivers')
-rw-r--r--drivers/idle/intel_idle.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c
index f5c6802aa6c3..907700d1e78e 100644
--- a/drivers/idle/intel_idle.c
+++ b/drivers/idle/intel_idle.c
@@ -162,7 +162,13 @@ static __cpuidle int intel_idle_irq(struct cpuidle_device *dev,
raw_local_irq_enable();
ret = __intel_idle(dev, drv, index);
- raw_local_irq_disable();
+
+ /*
+ * The lockdep hardirqs state may be changed to 'on' with timer
+ * tick interrupt followed by __do_softirq(). Use local_irq_disable()
+ * to keep the hardirqs state correct.
+ */
+ local_irq_disable();
return ret;
}