Subject: Re: -current nell(5) panics with card in upper slot
To: Olev Hannula <olev.hannula@mail.ee>
From: David Laight <david@l8s.co.uk>
List: port-sparc
Date: 09/29/2003 08:31:05
On Sat, Sep 27, 2003 at 04:49:40PM +0300, Olev Hannula wrote:
> Havn't tested the upper slot, but my console is full of these that are 
> cenerated by the wireless card in the lower slot:
> stray interrupt ipl 0x5 pc=0xf007d238 npc=0xf007d23c psr=904000c6<S,PS>
> stray interrupt ipl 0x5 pc=0xf02143bc npc=0xf02143c0 psr=900000c5<S,PS>
> stray interrupt ipl 0x5 pc=0xf0214634 npc=0xf0214638 psr=900000c1<S,PS>
> stray interrupt ipl 0x5 pc=0x101d59ec npc=0x101d59f0 psr=90100080<S>
> stray interrupt ipl 0x5 pc=0xf00de930 npc=0xf00de934 psr=900000c3<S,PS>
> stray interrupt ipl 0x5 pc=0xf00dd7c4 npc=0xf00dd7c8 psr=900000c0<S,PS>
> etc...

I'd look at the ISR code, specifically the code that should remove
the IRQ.  What is probably happening is that the write cycle to the
device register isn't happening until after the ISR has actually exited.

You need to do a read of the same address as you wrote in order to
flush the write cycle out of the cpu 'store buffer'.
(For some hardware this is easily done by looping in the ISR until
no IRQ requests are active.)

This also forces the cycle through any bus bridges that to 'posted
writes'.

	David

-- 
David Laight: david@l8s.co.uk