Fix interrupt clearing in kdump shutdown sequence

2 messages, 2 authors, 2006-09-14 · open the first message on its own page

Fix interrupt clearing in kdump shutdown sequence

From: Mohan Kumar M <hidden>
Date: 2006-09-12 12:23:30

Hi,

Some times HVC console on a PPC machine may have pending interrupts and
in this case kdump shutdown sequence created problem by calling
chip->end. This should be chip->eoi(). The attached patch fixes this
issue. Tested on POWER5 box.

Patch generated on 2.6.18-rc6-git4.

It will be helpful if this patch is included in 2.6.18.

Regards,
Mohan.



Call chip->eoi(irq) to clear any pending interrupt in case of kdump shutdown
sequence. chip->end(irq) does not solve this purpose.


Signed-off-by: Mohan Kumar M <redacted>
---

 linux-2.6.18-rc6-git4/arch/powerpc/kernel/crash.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

diff -puN linux-2.6.18-rc6-git4/arch/powerpc/kernel/crash.c~kdump-irq-fix linux-2.6.18-rc6-git4/arch/powerpc/kernel/crash.c
--- kernel/linux-2.6.18-rc6-git4/arch/powerpc/kernel/crash.c~kdump-irq-fix	2006-09-12 17:20:39.000000000 +0530
+++ kernel-mohan/linux-2.6.18-rc6-git4/arch/powerpc/kernel/crash.c	2006-09-12 17:20:51.000000000 +0530
@@ -295,7 +295,7 @@ void default_machine_crash_shutdown(stru
 		struct irq_desc *desc = irq_desc + irq;
 
 		if (desc->status & IRQ_INPROGRESS)
-			desc->chip->end(irq);
+			desc->chip->eoi(irq);
 
 		if (!(desc->status & IRQ_DISABLED))
 			desc->chip->disable(irq);
_

Re: Fix interrupt clearing in kdump shutdown sequence

From: Michael Ellerman <hidden>
Date: 2006-09-14 03:07:29

On Tue, 2006-09-12 at 17:48 +0530, Mohan Kumar M wrote:
Hi,

Some times HVC console on a PPC machine may have pending interrupts and
in this case kdump shutdown sequence created problem by calling
chip->end. This should be chip->eoi(). The attached patch fixes this
issue. Tested on POWER5 box.
Nice catch.

Looks like chip->end() used to == xics_end_irq(), but that vanished and
became xics_eio_(direct|lpar) and got hooked up to chip->eoi(). We
should check there are no other callers of chip->end() which really want
chip->eoi().

cheers

-- 
Michael Ellerman
OzLabs, IBM Australia Development Lab

wwweb: http://michael.ellerman.id.au
phone: +61 2 6212 1183 (tie line 70 21183)

We do not inherit the earth from our ancestors,
we borrow it from our children. - S.M.A.R.T Person
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help