diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2022-07-29 10:57:26 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2022-07-29 10:57:26 -0700 |
commit | 506e6dfb0f1131f104df66ccae1197bdf8f1b6b0 (patch) | |
tree | 78e5dabc912d76bc90dc6545265942ec1dcb0522 /drivers | |
parent | e4d8b09d671f0ee92d36c48b65d2f34affcdd531 (diff) | |
parent | d295ad34f236c3518634fb6403d4c0160456e470 (diff) |
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.c | 8 |
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; } |