From 72335b7642cbd14eb0effa0bf1a5c9e0ce836242 Mon Sep 17 00:00:00 2001 From: Ben Gras Date: Sat, 8 May 2010 17:21:37 +0000 Subject: [PATCH] kernel: print spurious interrupt message with increasing interval. --- kernel/interrupt.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/kernel/interrupt.c b/kernel/interrupt.c index d315c19e6..61a4a6c17 100644 --- a/kernel/interrupt.c +++ b/kernel/interrupt.c @@ -126,11 +126,13 @@ PUBLIC void irq_handle(int irq) /* Check for spurious interrupts. */ if(hook == NULL) { - static int nspurious[NR_IRQ_VECTORS]; + static int nspurious[NR_IRQ_VECTORS], report_interval = 100; nspurious[irq]++; - if(nspurious[irq] == 1 || !(nspurious[irq] % 1000)) { + if(nspurious[irq] == 1 || !(nspurious[irq] % report_interval)) { printf("irq_handle: spurious irq %d (count: %d); keeping masked\n", irq, nspurious[irq]); + if(report_interval < INT_MAX/2) + report_interval *= 2; } return; }