genirq: Handle pending irqs in irq_startup()
authorThomas Gleixner <tglx@linutronix.de>
Wed, 8 Feb 2012 10:57:52 +0000 (11:57 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Wed, 15 Feb 2012 10:56:59 +0000 (11:56 +0100)
commitb4bc724e82e80478cba5fe9825b62e71ddf78757
tree81f2ba0bcbb1ac50837c1c0e5ae8b606e22d47da
parentac5637611150281f398bb7a47e3fcb69a09e7803
genirq: Handle pending irqs in irq_startup()

An interrupt might be pending when irq_startup() is called, but the
startup code does not invoke the resend logic. In some cases this
prevents the device from issuing another interrupt which renders the
device non functional.

Call the resend function in irq_startup() to keep things going.

Reported-and-tested-by: Russell King <rmk+kernel@arm.linux.org.uk>
Cc: stable@vger.kernel.org
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
kernel/irq/autoprobe.c
kernel/irq/chip.c
kernel/irq/internals.h
kernel/irq/manage.c