* [PATCH 0/3] Fix some accidentally dropped IRQ buslocks
@ 2025-10-23 15:48 Charles Keepax
2025-10-23 15:48 ` [PATCH 1/3] genirq/chip: Add buslock back in to irq_set_handler() Charles Keepax
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Charles Keepax @ 2025-10-23 15:48 UTC (permalink / raw)
To: tglx; +Cc: peterz, broonie, linux-kernel
In the conversion to scoped guards several buslocks were changed to
plain lock operations. This causes issues with some regmap IRQ
operations as they rely on the bus unlock to synchronise operations back
to the physical chip and those are no longer called.
Thanks,
Charles
Charles Keepax (3):
genirq/chip: Add buslock back in to irq_set_handler()
genirq/manage: Add buslock back in to __disable_irq_nosync()
genirq/manage: Add buslock back in to enable_irq()
kernel/irq/chip.c | 2 +-
kernel/irq/manage.c | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
--
2.47.3
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/3] genirq/chip: Add buslock back in to irq_set_handler()
2025-10-23 15:48 [PATCH 0/3] Fix some accidentally dropped IRQ buslocks Charles Keepax
@ 2025-10-23 15:48 ` Charles Keepax
2025-10-24 9:44 ` [tip: irq/urgent] " tip-bot2 for Charles Keepax
2025-10-23 15:49 ` [PATCH 2/3] genirq/manage: Add buslock back in to __disable_irq_nosync() Charles Keepax
2025-10-23 15:49 ` [PATCH 3/3] genirq/manage: Add buslock back in to enable_irq() Charles Keepax
2 siblings, 1 reply; 7+ messages in thread
From: Charles Keepax @ 2025-10-23 15:48 UTC (permalink / raw)
To: tglx; +Cc: peterz, broonie, linux-kernel
The locking was changed from a buslock to a plain lock, but the patch
description states there was no functional change. Assuming this was
accidental so reverting to using the buslock.
Fixes: 5cd05f3e2315 ("genirq/chip: Rework irq_set_handler() variants")
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
---
kernel/irq/chip.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c
index 3ffa0d80ddd19..d1917b28761a3 100644
--- a/kernel/irq/chip.c
+++ b/kernel/irq/chip.c
@@ -1030,7 +1030,7 @@ __irq_do_set_handler(struct irq_desc *desc, irq_flow_handler_t handle,
void __irq_set_handler(unsigned int irq, irq_flow_handler_t handle, int is_chained,
const char *name)
{
- scoped_irqdesc_get_and_lock(irq, 0)
+ scoped_irqdesc_get_and_buslock(irq, 0)
__irq_do_set_handler(scoped_irqdesc, handle, is_chained, name);
}
EXPORT_SYMBOL_GPL(__irq_set_handler);
--
2.47.3
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/3] genirq/manage: Add buslock back in to __disable_irq_nosync()
2025-10-23 15:48 [PATCH 0/3] Fix some accidentally dropped IRQ buslocks Charles Keepax
2025-10-23 15:48 ` [PATCH 1/3] genirq/chip: Add buslock back in to irq_set_handler() Charles Keepax
@ 2025-10-23 15:49 ` Charles Keepax
2025-10-24 9:44 ` [tip: irq/urgent] " tip-bot2 for Charles Keepax
2025-10-23 15:49 ` [PATCH 3/3] genirq/manage: Add buslock back in to enable_irq() Charles Keepax
2 siblings, 1 reply; 7+ messages in thread
From: Charles Keepax @ 2025-10-23 15:49 UTC (permalink / raw)
To: tglx; +Cc: peterz, broonie, linux-kernel
The locking was changed from a buslock to a plain lock, but the patch
description states there was no functional change. Assuming this was
accidental so reverting to using the buslock.
Fixes: 1b7444446724 ("genirq/manage: Rework __disable_irq_nosync()")
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
---
kernel/irq/manage.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index c94837382037e..7d68fb5dc2428 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -659,7 +659,7 @@ void __disable_irq(struct irq_desc *desc)
static int __disable_irq_nosync(unsigned int irq)
{
- scoped_irqdesc_get_and_lock(irq, IRQ_GET_DESC_CHECK_GLOBAL) {
+ scoped_irqdesc_get_and_buslock(irq, IRQ_GET_DESC_CHECK_GLOBAL) {
__disable_irq(scoped_irqdesc);
return 0;
}
--
2.47.3
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 3/3] genirq/manage: Add buslock back in to enable_irq()
2025-10-23 15:48 [PATCH 0/3] Fix some accidentally dropped IRQ buslocks Charles Keepax
2025-10-23 15:48 ` [PATCH 1/3] genirq/chip: Add buslock back in to irq_set_handler() Charles Keepax
2025-10-23 15:49 ` [PATCH 2/3] genirq/manage: Add buslock back in to __disable_irq_nosync() Charles Keepax
@ 2025-10-23 15:49 ` Charles Keepax
2025-10-24 9:44 ` [tip: irq/urgent] " tip-bot2 for Charles Keepax
2 siblings, 1 reply; 7+ messages in thread
From: Charles Keepax @ 2025-10-23 15:49 UTC (permalink / raw)
To: tglx; +Cc: peterz, broonie, linux-kernel
The locking was changed from a buslock to a plain lock, but the patch
description states there was no functional change. Assuming this was
accidental so reverting to using the buslock.
Fixes: bddd10c55407 ("genirq/manage: Rework enable_irq()")
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
---
kernel/irq/manage.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index 7d68fb5dc2428..400856abf6721 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -789,7 +789,7 @@ void __enable_irq(struct irq_desc *desc)
*/
void enable_irq(unsigned int irq)
{
- scoped_irqdesc_get_and_lock(irq, IRQ_GET_DESC_CHECK_GLOBAL) {
+ scoped_irqdesc_get_and_buslock(irq, IRQ_GET_DESC_CHECK_GLOBAL) {
struct irq_desc *desc = scoped_irqdesc;
if (WARN(!desc->irq_data.chip, "enable_irq before setup/request_irq: irq %u\n", irq))
--
2.47.3
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [tip: irq/urgent] genirq/manage: Add buslock back in to enable_irq()
2025-10-23 15:49 ` [PATCH 3/3] genirq/manage: Add buslock back in to enable_irq() Charles Keepax
@ 2025-10-24 9:44 ` tip-bot2 for Charles Keepax
0 siblings, 0 replies; 7+ messages in thread
From: tip-bot2 for Charles Keepax @ 2025-10-24 9:44 UTC (permalink / raw)
To: linux-tip-commits; +Cc: Charles Keepax, Thomas Gleixner, x86, linux-kernel, maz
The following commit has been merged into the irq/urgent branch of tip:
Commit-ID: ef3330b99c01bda53f2a189b58bed8f6b7397f28
Gitweb: https://git.kernel.org/tip/ef3330b99c01bda53f2a189b58bed8f6b7397f28
Author: Charles Keepax <ckeepax@opensource.cirrus.com>
AuthorDate: Thu, 23 Oct 2025 16:49:01 +01:00
Committer: Thomas Gleixner <tglx@linutronix.de>
CommitterDate: Fri, 24 Oct 2025 11:38:39 +02:00
genirq/manage: Add buslock back in to enable_irq()
The locking was changed from a buslock to a plain lock, but the patch
description states there was no functional change. Assuming this was
accidental so reverting to using the buslock.
Fixes: bddd10c55407 ("genirq/manage: Rework enable_irq()")
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://patch.msgid.link/20251023154901.1333755-4-ckeepax@opensource.cirrus.com
---
kernel/irq/manage.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index 7d68fb5..400856a 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -789,7 +789,7 @@ void __enable_irq(struct irq_desc *desc)
*/
void enable_irq(unsigned int irq)
{
- scoped_irqdesc_get_and_lock(irq, IRQ_GET_DESC_CHECK_GLOBAL) {
+ scoped_irqdesc_get_and_buslock(irq, IRQ_GET_DESC_CHECK_GLOBAL) {
struct irq_desc *desc = scoped_irqdesc;
if (WARN(!desc->irq_data.chip, "enable_irq before setup/request_irq: irq %u\n", irq))
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [tip: irq/urgent] genirq/manage: Add buslock back in to __disable_irq_nosync()
2025-10-23 15:49 ` [PATCH 2/3] genirq/manage: Add buslock back in to __disable_irq_nosync() Charles Keepax
@ 2025-10-24 9:44 ` tip-bot2 for Charles Keepax
0 siblings, 0 replies; 7+ messages in thread
From: tip-bot2 for Charles Keepax @ 2025-10-24 9:44 UTC (permalink / raw)
To: linux-tip-commits; +Cc: Charles Keepax, Thomas Gleixner, x86, linux-kernel, maz
The following commit has been merged into the irq/urgent branch of tip:
Commit-ID: 56363e25f79fe83e63039c5595b8cd9814173d37
Gitweb: https://git.kernel.org/tip/56363e25f79fe83e63039c5595b8cd9814173d37
Author: Charles Keepax <ckeepax@opensource.cirrus.com>
AuthorDate: Thu, 23 Oct 2025 16:49:00 +01:00
Committer: Thomas Gleixner <tglx@linutronix.de>
CommitterDate: Fri, 24 Oct 2025 11:38:39 +02:00
genirq/manage: Add buslock back in to __disable_irq_nosync()
The locking was changed from a buslock to a plain lock, but the patch
description states there was no functional change. Assuming this was
accidental so reverting to using the buslock.
Fixes: 1b7444446724 ("genirq/manage: Rework __disable_irq_nosync()")
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://patch.msgid.link/20251023154901.1333755-3-ckeepax@opensource.cirrus.com
---
kernel/irq/manage.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index c948373..7d68fb5 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -659,7 +659,7 @@ void __disable_irq(struct irq_desc *desc)
static int __disable_irq_nosync(unsigned int irq)
{
- scoped_irqdesc_get_and_lock(irq, IRQ_GET_DESC_CHECK_GLOBAL) {
+ scoped_irqdesc_get_and_buslock(irq, IRQ_GET_DESC_CHECK_GLOBAL) {
__disable_irq(scoped_irqdesc);
return 0;
}
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [tip: irq/urgent] genirq/chip: Add buslock back in to irq_set_handler()
2025-10-23 15:48 ` [PATCH 1/3] genirq/chip: Add buslock back in to irq_set_handler() Charles Keepax
@ 2025-10-24 9:44 ` tip-bot2 for Charles Keepax
0 siblings, 0 replies; 7+ messages in thread
From: tip-bot2 for Charles Keepax @ 2025-10-24 9:44 UTC (permalink / raw)
To: linux-tip-commits; +Cc: Charles Keepax, Thomas Gleixner, x86, linux-kernel, maz
The following commit has been merged into the irq/urgent branch of tip:
Commit-ID: 5d7e45dd670e42df4836afeaa9baf9d41ca4b434
Gitweb: https://git.kernel.org/tip/5d7e45dd670e42df4836afeaa9baf9d41ca4b434
Author: Charles Keepax <ckeepax@opensource.cirrus.com>
AuthorDate: Thu, 23 Oct 2025 16:48:59 +01:00
Committer: Thomas Gleixner <tglx@linutronix.de>
CommitterDate: Fri, 24 Oct 2025 11:38:39 +02:00
genirq/chip: Add buslock back in to irq_set_handler()
The locking was changed from a buslock to a plain lock, but the patch
description states there was no functional change. Assuming this was
accidental so reverting to using the buslock.
Fixes: 5cd05f3e2315 ("genirq/chip: Rework irq_set_handler() variants")
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://patch.msgid.link/20251023154901.1333755-2-ckeepax@opensource.cirrus.com
---
kernel/irq/chip.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c
index 3ffa0d8..d1917b2 100644
--- a/kernel/irq/chip.c
+++ b/kernel/irq/chip.c
@@ -1030,7 +1030,7 @@ __irq_do_set_handler(struct irq_desc *desc, irq_flow_handler_t handle,
void __irq_set_handler(unsigned int irq, irq_flow_handler_t handle, int is_chained,
const char *name)
{
- scoped_irqdesc_get_and_lock(irq, 0)
+ scoped_irqdesc_get_and_buslock(irq, 0)
__irq_do_set_handler(scoped_irqdesc, handle, is_chained, name);
}
EXPORT_SYMBOL_GPL(__irq_set_handler);
^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2025-10-24 9:44 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-23 15:48 [PATCH 0/3] Fix some accidentally dropped IRQ buslocks Charles Keepax
2025-10-23 15:48 ` [PATCH 1/3] genirq/chip: Add buslock back in to irq_set_handler() Charles Keepax
2025-10-24 9:44 ` [tip: irq/urgent] " tip-bot2 for Charles Keepax
2025-10-23 15:49 ` [PATCH 2/3] genirq/manage: Add buslock back in to __disable_irq_nosync() Charles Keepax
2025-10-24 9:44 ` [tip: irq/urgent] " tip-bot2 for Charles Keepax
2025-10-23 15:49 ` [PATCH 3/3] genirq/manage: Add buslock back in to enable_irq() Charles Keepax
2025-10-24 9:44 ` [tip: irq/urgent] " tip-bot2 for Charles Keepax
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox