cvs commit: src/sys/dev/fxp if_fxp.c if_fxpvar.h

M. Warner Losh imp at bsdimp.com
Wed Apr 30 08:17:20 PDT 2003


In message: <20030430093931.V31027 at beagle.fokus.fraunhofer.de>
            Harti Brandt <brandt at fokus.fraunhofer.de> writes:
: On Tue, 29 Apr 2003, M. Warner Losh wrote:
: 
: MWL>In message: <Pine.BSF.4.21.0304291101001.75697-100000 at root.org>
: 
: MWL>: >           4) Return immediately if gone is true in fxp_ioctl
: MWL>: >           5) Return immediately if gone is true in fxp_intr
: MWL>:
: MWL>: Not sure this approach is necessary.
: MWL>
: MWL>I am.  Otherwise ioctl panics with recursive locks when the card is
: MWL>detached.  A simple kld_unload if_fxp would provoke these races,
: MWL>including the recursive lock panic.
: 
: You can replace the pointers to ioctl and start with pointers to dummy
: functions. In fact, an if_dead(ifp) function which does just this would
: be nice to have.

ifdetach calls these ioctl to properly shutdown the network interface
before it goes away.  I don't think we should jump the gun and do a
if_dead and encourage its use until we have the driver level locking
stuff worked out.  Since drivers are leaves, any locking that's done
there now is likely going to have a lot of issues because the other
major kernel systems aren't completely locked yet.  I don't think it
would be time well spent to work out all the races until the rest of
the kernel is locked.  Too bad locking it is so much harder than
locking drivers :-(

Warner


More information about the cvs-src mailing list