Skip site navigation (1)Skip section navigation (2)
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>