summaryrefslogtreecommitdiffstats
path: root/sys/dev
diff options
context:
space:
mode:
authorthompsa <thompsa@FreeBSD.org>2012-05-08 21:09:03 +0000
committerthompsa <thompsa@FreeBSD.org>2012-05-08 21:09:03 +0000
commit6bb78e3c4c18338cf03772d09f134bd29772dc09 (patch)
treee13bd7576ecc220eb8d3f5ca3722224c2e7ed28b /sys/dev
parent27d9e6e27d8c85edaec9ab801a47cc7634349435 (diff)
downloadFreeBSD-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.c14
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;
OpenPOWER on IntegriCloud