In message: <20090201175021.ga32...@citylink.fud.org.nz>
            Andrew Thompson <thom...@freebsd.org> writes:
: > 3)
: > In general avoid more than a few synchronous USB transfer inside 
: > attach/detach. Always defer! Else there are corner cases where the device 
can 
: > hang waiting for the transfer timeout 1-5 seconds for every USB transfer, 
and 
: > that is unacceptable.
: 
: I disagree. It hugely simplifies drivers to know all the resources are
: allocated after attach, you dont need to check for null pointers
: throughout the code. If programming commands fail/timeout in the attach 
routine
: then the driver needs to check this and abort the attach. You will wait
: one or two timeouts max.

The only way that a 'deferred attach' makes sense is if the ifnet and
other external resources are setup as part of that deferred attach.
That way, you don't have the NULL pointer issue.

However, doing that introduces races with devd, which are a pita to
cope with...  Even without deferring the setting up if ifnet, you have
races with devd if you defer things in attach that can be hard to cope
with in the code.

Warner
_______________________________________________
freebsd-usb@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"

Reply via email to