On Mon, 6 Jan 2003, Maxime Henrion wrote:
> Nate Lawson wrote:
> > Attached is a diff that fixes a "could sleep" problem where
> > ether_ifattach() does a malloc and dc(4) is holding a lock in its softc.  
> > It uses a cleaner exit strategy with only one call to DC_UNLOCK and no
> > multiple return statements as well as fixing one place where "error"
> > wasn't set.  If people are ok with it, I'll sweep other drivers that have
> > a similar problem.
> 
> Doing this would maybe be a bit premature.  A lot of drivers have
> FOO_LOCK and FOO_UNLOCK macros set to nothing, because of similar
> problems you're trying to fix.  Interface locking probably needs to be
> rethought.

I appreciate the insight but this seems pretty straightforward -- if a
driver needs to muck with registers, it should use a per-device lock.  If
it needs to change global state (i.e. ether_ifattach), it's up to the
called subsystem to do its own locking.  The two are orthogonal.

-Nate


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to