From: Sasha Levin <sashal@kernel.org>
Date: Wed, 5 Apr 2023 07:30:26 -0400
Subject: [PATCH] Revert "cpuidle, intel_idle: Fix CPUIDLE_FLAG_IRQ_ENABLE
*again*"
References: bsc#1012628
Patch-mainline: 6.2.10
Git-commit: 6d9c7f51b1d9179bf7c3542267c656a934e8af23
This reverts commit dca64f4bea7669f2056662e1f2776054d62f0153 which was
upstream commit 6d9c7f51b1d9179bf7c3542267c656a934e8af23.
Lockdep warnings on boot that are not seen with Linus's tree.
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
drivers/idle/intel_idle.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c
index f060ac73..cfeb24d4 100644
--- a/drivers/idle/intel_idle.c
+++ b/drivers/idle/intel_idle.c
@@ -168,7 +168,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;
}
--
2.35.3