All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] genirq: fix error path in __setup_irq
@ 2017-06-10 22:38 Heiner Kallweit
  2017-06-12 22:43 ` [tip:irq/urgent] genirq: Release resources in __setup_irq() error path tip-bot for Heiner Kallweit
  0 siblings, 1 reply; 2+ messages in thread
From: Heiner Kallweit @ 2017-06-10 22:38 UTC (permalink / raw)
  To: Thomas Gleixner; +Cc: Linux Kernel Mailing List

If __irq_set_trigger() fails irq_request_resources() was successfully
called before. Therefore we should release all potentially claimed
resources in the error path.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
 kernel/irq/manage.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index 49c37f1e..4c34696c 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -1318,8 +1318,10 @@ __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new)
 			ret = __irq_set_trigger(desc,
 						new->flags & IRQF_TRIGGER_MASK);
 
-			if (ret)
+			if (ret) {
+				irq_release_resources(desc);
 				goto out_mask;
+			}
 		}
 
 		desc->istate &= ~(IRQS_AUTODETECT | IRQS_SPURIOUS_DISABLED | \
-- 
2.13.1

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [tip:irq/urgent] genirq: Release resources in __setup_irq() error path
  2017-06-10 22:38 [PATCH] genirq: fix error path in __setup_irq Heiner Kallweit
@ 2017-06-12 22:43 ` tip-bot for Heiner Kallweit
  0 siblings, 0 replies; 2+ messages in thread
From: tip-bot for Heiner Kallweit @ 2017-06-12 22:43 UTC (permalink / raw)
  To: linux-tip-commits; +Cc: hpa, linux-kernel, hkallweit1, mingo, tglx

Commit-ID:  fa07ab72cbb0d843429e61bf179308aed6cbe0dd
Gitweb:     http://git.kernel.org/tip/fa07ab72cbb0d843429e61bf179308aed6cbe0dd
Author:     Heiner Kallweit <hkallweit1@gmail.com>
AuthorDate: Sun, 11 Jun 2017 00:38:36 +0200
Committer:  Thomas Gleixner <tglx@linutronix.de>
CommitDate: Tue, 13 Jun 2017 00:40:39 +0200

genirq: Release resources in __setup_irq() error path

In case __irq_set_trigger() fails the resources requested via
irq_request_resources() are not released.

Add the missing release call into the error handling path.

Fixes: c1bacbae8192 ("genirq: Provide irq_request/release_resources chip callbacks")
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: stable@vger.kernel.org
Link: http://lkml.kernel.org/r/655538f5-cb20-a892-ff15-fbd2dd1fa4ec@gmail.com

---
 kernel/irq/manage.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index 070be98..425170d 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -1312,8 +1312,10 @@ __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new)
 			ret = __irq_set_trigger(desc,
 						new->flags & IRQF_TRIGGER_MASK);
 
-			if (ret)
+			if (ret) {
+				irq_release_resources(desc);
 				goto out_mask;
+			}
 		}
 
 		desc->istate &= ~(IRQS_AUTODETECT | IRQS_SPURIOUS_DISABLED | \

^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-06-12 22:45 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-06-10 22:38 [PATCH] genirq: fix error path in __setup_irq Heiner Kallweit
2017-06-12 22:43 ` [tip:irq/urgent] genirq: Release resources in __setup_irq() error path tip-bot for Heiner Kallweit

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.