diff options
author | thompsa <thompsa@FreeBSD.org> | 2012-05-08 21:09:03 +0000 |
---|---|---|
committer | thompsa <thompsa@FreeBSD.org> | 2012-05-08 21:09:03 +0000 |
commit | 6bb78e3c4c18338cf03772d09f134bd29772dc09 (patch) | |
tree | e13bd7576ecc220eb8d3f5ca3722224c2e7ed28b /sys/dev | |
parent | 27d9e6e27d8c85edaec9ab801a47cc7634349435 (diff) | |
download | FreeBSD-src-6bb78e3c4c18338cf03772d09f134bd29772dc09.zip FreeBSD-src-6bb78e3c4c18338cf03772d09f134bd29772dc09.tar.gz |
The DEVICE_POLLING dereference of sc->tsec_ifp needs to be checked for null
first or this will panic. Condense three blocks that check sc->tsec_ifp into
one while I am here.
Diffstat (limited to 'sys/dev')
-rw-r--r-- | sys/dev/tsec/if_tsec.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/sys/dev/tsec/if_tsec.c b/sys/dev/tsec/if_tsec.c index 2e54129..e0a9c7e 100644 --- a/sys/dev/tsec/if_tsec.c +++ b/sys/dev/tsec/if_tsec.c @@ -289,17 +289,17 @@ int tsec_detach(struct tsec_softc *sc) { + if (sc->tsec_ifp != NULL) { #ifdef DEVICE_POLLING - if (sc->tsec_ifp->if_capenable & IFCAP_POLLING) - ether_poll_deregister(sc->tsec_ifp); + if (sc->tsec_ifp->if_capenable & IFCAP_POLLING) + ether_poll_deregister(sc->tsec_ifp); #endif - /* Stop TSEC controller and free TX queue */ - if (sc->sc_rres && sc->tsec_ifp) - tsec_shutdown(sc->dev); + /* Stop TSEC controller and free TX queue */ + if (sc->sc_rres) + tsec_shutdown(sc->dev); - /* Detach network interface */ - if (sc->tsec_ifp) { + /* Detach network interface */ ether_ifdetach(sc->tsec_ifp); if_free(sc->tsec_ifp); sc->tsec_ifp = NULL; |