Date: Fri, 27 Mar 1998 07:38:41 +1100 (EST) From: Peter Jeremy <Peter.Jeremy@alcatel.com.au> To: freebsd-hackers@FreeBSD.ORG Cc: dag-erli@ifi.uio.no, dmlb@ragnet.demon.co.uk, regnauld@deepo.prosa.dk Subject: Interrupt windows in FreeBSD Message-ID: <199803262038.HAA23930@gsms01.alcatel.com.au>
next in thread | raw e-mail | index | archive | help
As I've previously mentioned (see my mail here on 15-Mar-1998 and PR kern/6099) I have been having problems with LPIP (as have a couple of other people - see PRs kern/1271 and i386/5698). I've now tracked down what appears to be at least one cause of the problem. According to the comments in sys/mbuf.h, all mbuf manipulation should be protected by splimp() (or higher). The problem is that the LPIP code never adds the lpt interrupt to net_imask. This means that an LPIP interrupt can break mbuf critical regions. (I haven't had a chance to actually build a new kernel and check this). The other area where LPIP interacts with the non-interrupt code is via ipintrq. Again, according to the comments in net/if.h, the queue manipulation routines should only be called at splimp() or greater. There are a number of cases where it is called at splnet(), although none of these seem to be manipulating ipintrq. Peter To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199803262038.HAA23930>