Date: Sun, 22 Mar 1998 23:20:02 -0800 (PST) From: Bruce Evans <bde@zeta.org.au> To: freebsd-bugs Subject: Re: kern/6099: LPIP to slow machine causes hang Message-ID: <199803230720.XAA14220@hub.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/6099; it has been noted by GNATS. From: Bruce Evans <bde@zeta.org.au> To: FreeBSD-gnats-submit@FreeBSD.ORG, peter.jeremyp@alcatel.com.au Cc: Subject: Re: kern/6099: LPIP to slow machine causes hang Date: Mon, 23 Mar 1998 18:05:16 +1100 >panic: Allocating used mbuf >... >>How-To-Repeat: > >The problem appears to be related to an interrupt window associated >with the LPIP code. I have not found a short command sequence that is There is one obvious bug that can probably cause the problem. splimp() doesn't always block lpintr(), so critical mbuf code can be reentered. The splhigh() at the beginning of lpintr() helps to hide the problem. There used to be a similar problems for SLIP and PPP. isa.c has an old hack to set `net_imask = tty_imask = net_imask | tty_imask;'. PPP needed this too but only got it when SLIP was configured. (PPP now needs a little more and handles it directly.) LPIP needs it too but only gets it when SLIP or maybe PPP is configured (lpt is (bogusly) in the tty device class, so the tty hack also works for it). The simplest fix is to configure SLIP. Check that net_imask contains the lpt irq bit after everything is initialized. You can also set the masks using gdb to fix a running system (OR them together as above, and put the result in intr_mask[irq_number_of_lpt]). Bruce To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199803230720.XAA14220>