Date: Mon, 17 May 1999 11:26:35 -0400 From: Christopher Masto <chris@netmonger.net> To: Nate Williams <nate@mt.sri.com> Cc: Assar Westerlund <assar@sics.se>, current@FreeBSD.ORG Subject: Re: zzz crashing in current OR inthand_remove not removing handlers properly Message-ID: <19990517112634.A12004@netmonger.net> In-Reply-To: <199905171500.JAA22502@mt.sri.com>; from Nate Williams on Mon, May 17, 1999 at 09:00:50AM -0600 References: <5lr9ogzaqf.fsf@assaris.sics.se> <19990516235949.A18232@netmonger.net> <199905171500.JAA22502@mt.sri.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, May 17, 1999 at 09:00:50AM -0600, Nate Williams wrote: > > > Hi, on a -current from around a week ago `zzz' always managed to crash > > > my machine. The relevant parts from the panic and the backtrace are > > > included below. > > > > > > It seems that the cause of this was a stray interrupt was arriving > > > after having unloaded the driver. For some reason it wasn't handled > > > by isa_strayintr, and the reason for that was that inthand_remove > > > didn't manage to remove the interrupt (and get it replaced by the > > > stray function) correctly. After applying the patch at the end of > > > this mail I can once again sleep my laptop succesfully. > > > > Wow. I think that's actually done the trick. Not only can I suspend, > > but I can now remove my 3C589 without a panic. > > > > ... well, I just managed to lock up the machine.. but I think that was > > from a missed remove event. I must have lost that polling patch > > somewhere along the way. > > If you're polling, it's *REAL* easy to lockup the machine inside the > card's interrupt handler, with no chance of it every escaping since the > 'poll' can't interrupt the IRQ. Actually, I was not polling, which I thought might have been why pccard didn't notice when I removed my network card. Polling didn't fix that, so I looked elsewhere. It turns out that after a hibernate (but not after a suspend), insert/remove events stop working unless the kernel is compiled with PCIC_RESUME_RESET. With that and Assar's patch, my vaio is reasonably usable. (I hook it up to the ethernet at work, so having to shut down to remove the card or even just suspend is rather tedious.) > The solution is to not poll and to make sure insertion/removal events > generate an interrupt which can inform the card's interrupt handlers > that there is no more card. Fortunately the interrupts do seem to work on this machine. -- Christopher Masto Senior Network Monkey NetMonger Communications chris@netmonger.net info@netmonger.net http://www.netmonger.net Free yourself, free your machine, free the daemon -- http://www.freebsd.org/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19990517112634.A12004>