RE: [patch] __do_IRQ does not check IRQ_DISABLED when IRQ_PER_CPU is set

From: Luck, Tony
Date: Wed Oct 31 2007 - 12:26:53 EST


> One user encountering this behavior is the CPE handler (in
> arch/ia64/kernel/mca.c). When the CPE handler encounters too many
> CPEs (such as a solid single bit error), it sets up a polling timer
> and disables the CPE interrupt (to avoid excessive overhead logging
> the stream of single bit errors). disable_irq_nosync() is called
> which sets IRQ_DISABLED. The IRQ_PER_CPU flag was previously set
> (in ia64_mca_late_init()). The net result is the CPE handler gets
> called even though it is marked disabled.

Presumably we are in this situation because there are still some
pending CPE interrupts on some cpus when we disable CPE? Or is
there a more serious problem that we aren't manage to disable CPE
on all cpus properly?

-Tony
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/