]> git.baikalelectronics.ru Git - kernel.git/commit
intel_idle: Fix false positive RCU splats due to incorrect hardirqs state
authorWaiman Long <longman@redhat.com>
Sat, 23 Jul 2022 19:59:32 +0000 (15:59 -0400)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 25 Jul 2022 17:39:07 +0000 (19:39 +0200)
commitd295ad34f236c3518634fb6403d4c0160456e470
treeb51bf57d16a2ba4af9295232ee6fa37f46a79f22
parente0dccc3b76fb35bb257b4118367a883073d7390e
intel_idle: Fix false positive RCU splats due to incorrect hardirqs state

Commit 32d4fd5751ea ("cpuidle,intel_idle: Fix CPUIDLE_FLAG_IRQ_ENABLE")
uses raw_local_irq_enable/local_irq_disable() around call to
__intel_idle() in intel_idle_irq().

With interrupt enabled, timer tick interrupt can happen and a
subsequently call to __do_softirq() may change the lockdep hardirqs state
of a debug kernel back to 'on'. This will result in a mismatch between
the cpu hardirqs state (off) and the lockdep hardirqs state (on) causing
a number of false positive "WARNING: suspicious RCU usage" splats.

Fix that by using local_irq_disable() to disable interrupt in
intel_idle_irq().

Fixes: 32d4fd5751ea ("cpuidle,intel_idle: Fix CPUIDLE_FLAG_IRQ_ENABLE")
Signed-off-by: Waiman Long <longman@redhat.com>
Cc: 5.16+ <stable@vger.kernel.org> # 5.16+
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/idle/intel_idle.c