linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] IRQ: Add a check for uninitialized irqs.
@ 2012-09-09 19:25 raghu.prabhu13
  2012-09-10 13:41 ` Paul Gortmaker
  0 siblings, 1 reply; 3+ messages in thread
From: raghu.prabhu13 @ 2012-09-09 19:25 UTC (permalink / raw)
  To: jeremy, mingo, x86
  Cc: Raghavendra D Prabhu, Thomas Gleixner, H. Peter Anvin,
	liu chuansheng, Fernando Luis Vazquez Cao, Paul Gortmaker,
	open list

From: Raghavendra D Prabhu <rprabhu@wnohang.net>

Errors like "do_IRQ: 0.84 No Irq handler for vector (irq -1)" have been reported
earlier filling up the console/logs. So this adds a condition to check for
uninitialized irqs so that it exits early and doesn't proceed further. Also, irq
is made a signed integer, since if it is not mapped to a vector, it will be
assigned -1 which will be UINT_MAX otherwise.

Signed-off-by: Raghavendra D Prabhu <rprabhu@wnohang.net>
---
 arch/x86/kernel/irq.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/arch/x86/kernel/irq.c b/arch/x86/kernel/irq.c
index d44f782..ddba63a 100644
--- a/arch/x86/kernel/irq.c
+++ b/arch/x86/kernel/irq.c
@@ -184,21 +184,24 @@ unsigned int __irq_entry do_IRQ(struct pt_regs *regs)
 
 	/* high bit used in ret_from_ code  */
 	unsigned vector = ~regs->orig_ax;
-	unsigned irq;
+	int irq;
 
 	irq_enter();
 	exit_idle();
 
-	irq = __this_cpu_read(vector_irq[vector]);
+	if (unlikely((irq = __this_cpu_read(vector_irq[vector])) == -1)) {
+		pr_emerg_ratelimited("IRQ handler not setup for vector %u", vector);
+		goto err_exit;
+	}
 
 	if (!handle_irq(irq, regs)) {
 		ack_APIC_irq();
 
-		if (printk_ratelimit())
-			pr_emerg("%s: %d.%d No irq handler for vector (irq %d)\n",
-				__func__, smp_processor_id(), vector, irq);
+		pr_emerg_ratelimited("%s: %d.%d No irq handler for vector (irq %u)\n",
+			__func__, smp_processor_id(), vector, irq);
 	}
 
+err_exit:
 	irq_exit();
 
 	set_irq_regs(old_regs);
-- 
1.7.12


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

end of thread, other threads:[~2012-09-15  2:55 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-09-09 19:25 [PATCH] IRQ: Add a check for uninitialized irqs raghu.prabhu13
2012-09-10 13:41 ` Paul Gortmaker
2012-09-15  2:55   ` Raghavendra D Prabhu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).