Date: Tue, 04 Jul 1995 19:52:07 -0700 From: David Greenman <davidg@Root.COM> To: "Jonathan M. Bresler" <jmb@kryten.atinc.com> Cc: hackers@freebsd.org Subject: Re: splnet and if_ep.c Message-ID: <199507050252.TAA10682@corbin.Root.COM> In-Reply-To: Your message of "Tue, 04 Jul 95 20:07:43 EDT." <Pine.3.89.9507041940.B28859-0100000@kryten.atinc.com>
next in thread | previous in thread | raw e-mail | index | archive | help
>the 3c509 is reported to be buggy. though i have not had any problems >with it. however, if writing smcioctl() for the smc91c92 chip, i see >that if_ze.c:ze_ioctl() calls splnet() at entry. if_ep.c:ep_ioctl() does >not. anybody seen any problems with the ix or zp drivers? from grep's >it appears that splnet is a higher priority than splimp. In general, the ioctl routines of the drivers should be protected with splimp(). This is because they often write to device registers or modify the board state in some other way that must not be interrupted. >if_ep.c -- The 'ep' driver appears to be safe in all cases except one. The case of it setting the interface down (via ep_stop) [when IFF_UP is cleared], is not protected yet it modifies several important device registers. This means that if a packet interrupt arrives while you are doing this, you'll likely lose. In all the other cases, the routines that each of the ioctl's call are themselves protected with splimp(). I haven't looked at the other drivers (yet?). Someone definately should. -DG
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199507050252.TAA10682>