|
@@ -5,6 +5,7 @@
|
|
|
/* Invalid interrupt */
|
|
|
static void spurious_irq_handler(unsigned int vector)
|
|
|
{
|
|
|
+ con_printf("spurious interrupt: %u\n", vector);
|
|
|
mask_irq(vector);
|
|
|
}
|
|
|
|
|
@@ -34,14 +35,14 @@ irq_handler_t register_irq(unsigned int vector, irq_handler_t handler,
|
|
|
old_handler = __irq_handler_table[vector];
|
|
|
__irq_handler_table[vector] = handler;
|
|
|
|
|
|
- if (enable && handler)
|
|
|
+ if (enable)
|
|
|
unmask_irq(vector);
|
|
|
|
|
|
if (old_handler == spurious_irq_handler)
|
|
|
- handler = NULL;
|
|
|
+ old_handler = NULL;
|
|
|
|
|
|
- con_printf("irq: register vector %u, mask = %08x\n",
|
|
|
- vector, irqmask());
|
|
|
+ con_printf("irq: register vector %u, handler = %p, mask = %08x\n",
|
|
|
+ vector, handler, irqmask());
|
|
|
|
|
|
return old_handler;
|
|
|
}
|