aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYinghai Lu <yinghai@kernel.org>2012-09-17 22:22:31 -0700
committerYinghai Lu <yinghai@kernel.org>2012-09-17 22:22:31 -0700
commitaeaa2da417ef0440d2930545938cb1deff21cc5c (patch)
tree7f8b030718a3303b2837c9d52f994ca81f592084
parent0283996b7ca609fcb261cdbacda8b04993471f66 (diff)
downloadlinux-yinghai-aeaa2da417ef0440d2930545938cb1deff21cc5c.tar.gz
genirq: bail out early in free_desc()
So we can use irq_free_descs to clear allocated_irqs bits for preserved irqs. Signed-off-by: Yinghai Lu <yinghai@kernel.org>
-rw-r--r--kernel/irq/irqdesc.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/kernel/irq/irqdesc.c b/kernel/irq/irqdesc.c
index 33a4b71e595926..086cfa9e753e94 100644
--- a/kernel/irq/irqdesc.c
+++ b/kernel/irq/irqdesc.c
@@ -170,6 +170,9 @@ static void free_desc(unsigned int irq)
{
struct irq_desc *desc = irq_to_desc(irq);
+ if (!desc)
+ return;
+
unregister_irq_proc(irq, desc);
mutex_lock(&sparse_irq_lock);