diff options
-rw-r--r-- | sys/dev/if_ndis/if_ndis.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/sys/dev/if_ndis/if_ndis.c b/sys/dev/if_ndis/if_ndis.c index 692473f..1329965 100644 --- a/sys/dev/if_ndis/if_ndis.c +++ b/sys/dev/if_ndis/if_ndis.c @@ -996,15 +996,18 @@ ndis_detach(dev) sc = device_get_softc(dev); NDIS_LOCK(sc); ifp = sc->ifp; - ifp->if_flags &= ~IFF_UP; + if (ifp != NULL) + ifp->if_flags &= ~IFF_UP; if (device_is_attached(dev)) { NDIS_UNLOCK(sc); ndis_stop(sc); - if (sc->ndis_80211) - ieee80211_ifdetach(ifp->if_l2com); - else - ether_ifdetach(ifp); + if (ifp != NULL) { + if (sc->ndis_80211) + ieee80211_ifdetach(ifp->if_l2com); + else + ether_ifdetach(ifp); + } } else NDIS_UNLOCK(sc); |