Messages in this thread | | | Date | Thu, 10 Apr 2008 23:13:59 -0700 | From | "Yinghai Lu" <> | Subject | regression caused by: genirq: do not leave interupts enabled on free_irq |
| |
last week found: after latest kernel kexec RHEL 5.1 or other stack kernel, the nvidia forcedeth doesn't work anymore.
I stared at forcedeth.c two days. and revert every patches about that doesn't help.
and figure out 2.6.25-rc2 works.
with git-bisect found
commit 89d694b9dbe769ca1004e01db0ca43964806a611 Author: Thomas Gleixner <tglx@linutronix.de> Date: Mon Feb 18 18:25:17 2008 +0100
genirq: do not leave interupts enabled on free_irq
The default_disable() function was changed in commit:
76d2160147f43f982dfe881404cfde9fd0a9da21 genirq: do not mask interrupts by default
It removed the mask function in favour of the default delayed interrupt disabling. Unfortunately this also broke the shutdown in free_irq() when the last handler is removed from the interrupt for those architectures which rely on the default implementations. Now we can end up with a enabled interrupt line after the last handler was removed, which can result in spurious interrupts.
Fix this by adding a default_shutdown function, which is only installed, when the irqchip implementation does provide neither a shutdown nor a disable function.
[@stable: affected versions: .21 - .24 ]
Pointed-out-by: Michael Hennerich <Michael.Hennerich@analog.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Ingo Molnar <mingo@elte.hu> Cc: stable@kernel.org Tested-by: Michael Hennerich <Michael.Hennerich@analog.com>
caused the regression.
it affected all my servers that are using Nvidia MCP55.
maybe we need to revert that patch.
YH
| |