Module Name: src Committed By: christos Date: Thu Dec 2 17:38:05 UTC 2010
Modified Files: src/sys/dev/usb: if_otus.c Log Message: just ignore things that refer to the interface while detaching. To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 src/sys/dev/usb/if_otus.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/usb/if_otus.c diff -u src/sys/dev/usb/if_otus.c:1.8 src/sys/dev/usb/if_otus.c:1.9 --- src/sys/dev/usb/if_otus.c:1.8 Thu Dec 2 11:56:21 2010 +++ src/sys/dev/usb/if_otus.c Thu Dec 2 12:38:05 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: if_otus.c,v 1.8 2010/12/02 16:56:21 christos Exp $ */ +/* $NetBSD: if_otus.c,v 1.9 2010/12/02 17:38:05 christos Exp $ */ /* $OpenBSD: if_otus.c,v 1.18 2010/08/27 17:08:00 jsg Exp $ */ /*- @@ -645,22 +645,22 @@ DPRINTF("otus_detach\n"); - if (ifp == NULL) /* Failed to attach properly */ - return 0; - - otus_stop(ifp); + if (ifp != NULL) /* Failed to attach properly */ + otus_stop(ifp); s = splnet(); /* Wait for all queued asynchronous commands to complete. */ - while (sc->sc_cmdq.queued > 0) - tsleep(&sc->sc_cmdq, 0, "sc_cmdq", 0); + if (ifp != NULL) { + while (sc->sc_cmdq.queued > 0) + tsleep(&sc->sc_cmdq, 0, "sc_cmdq", 0); + } usb_rem_task(sc->sc_udev, &sc->sc_task); callout_destroy(&sc->sc_scan_to); callout_destroy(&sc->sc_calib_to); - if (ifp->if_flags != 0) { /* if_attach() has been called. */ + if (ifp && ifp->if_flags != 0) { /* if_attach() has been called. */ ifp->if_flags &= ~(IFF_RUNNING | IFF_OACTIVE); bpf_detach(ifp); ieee80211_ifdetach(&sc->sc_ic);