c7034773d9
Reorganize an_detach() a bit. Make sure ether_ifdetach() and if_free() are called outside of AN_LOCK()/AN_UNLOCK. This fixes the following WITNESS warning (produced when an(4) PCMCIA card is detached). taskqueue_drain with the following non-sleepable locks held: exclusive sleep mutex an0 (network driver) r = 0 (0xc59af168) locked @ /usr/src/ sys/dev/an/if_an.c:2836 Do not lock an to check gone flag. Only need to hold the lock to set the gone flag. Reviewed by: imp Approved by: re (kemsmith)