[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <1357833301.21958.10.camel@cliu38-desktop-build>
Date: Thu, 10 Jan 2013 23:55:01 +0800
From: Chuansheng Liu <chuansheng.liu@...el.com>
To: tglx@...utronix.de
Cc: linux-kernel@...r.kernel.org, chuansheng.liu@...el.com
Subject: [PATCH] genirq: Give warning when setup an already-setup
non-shared irq
Meet the case when the request_threaded_irq() with the same irq
is called twice continually, get the below mismatch info:
"IRQ handler type mismatch for IRQ 323"
Here give a right warning that like below:
"Trying to setup already-setup non-shared IRQ 323"
Signed-off-by: liu chuansheng <chuansheng.liu@...el.com>
---
kernel/irq/manage.c | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index e49a288..6802ce1 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -999,6 +999,16 @@ __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new)
old_ptr = &desc->action;
old = *old_ptr;
if (old) {
+ /* Give warning when setup an irq which has been setup
+ * already.
+ */
+ if (!(old->flags & IRQF_SHARED)) {
+ ret = -EINVAL;
+ WARN(1, "Trying to setup already-setup non-shared IRQ %d\n",
+ irq);
+ goto out_mask;
+ }
+
/*
* Can't share interrupts unless both agree to and are
* the same type (level, edge, polarity). So both flag
--
1.7.0.4
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists