summaryrefslogtreecommitdiffstats
path: root/sys/dev/re
diff options
context:
space:
mode:
authorkevlo <kevlo@FreeBSD.org>2012-05-11 07:12:18 +0000
committerkevlo <kevlo@FreeBSD.org>2012-05-11 07:12:18 +0000
commit9cc1a8ec50336e683ff9f6c42f1ffb762bcf85b9 (patch)
treed183ba11febba9c206baab1c802658496f9833c3 /sys/dev/re
parent47b655c0b7f69a36694916c6068689db1b4806c7 (diff)
downloadFreeBSD-src-9cc1a8ec50336e683ff9f6c42f1ffb762bcf85b9.zip
FreeBSD-src-9cc1a8ec50336e683ff9f6c42f1ffb762bcf85b9.tar.gz
Make sure we don't dereference a null pointer
Diffstat (limited to 'sys/dev/re')
-rw-r--r--sys/dev/re/if_re.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/dev/re/if_re.c b/sys/dev/re/if_re.c
index 995fa53..0844a885 100644
--- a/sys/dev/re/if_re.c
+++ b/sys/dev/re/if_re.c
@@ -1753,8 +1753,12 @@ re_detach(device_t dev)
bus_teardown_intr(dev, sc->rl_irq[0], sc->rl_intrhand[0]);
sc->rl_intrhand[0] = NULL;
}
- if (ifp != NULL)
+ if (ifp != NULL) {
+#ifdef DEV_NETMAP
+ netmap_detach(ifp);
+#endif /* DEV_NETMAP */
if_free(ifp);
+ }
if ((sc->rl_flags & (RL_FLAG_MSI | RL_FLAG_MSIX)) == 0)
rid = 0;
else
@@ -1843,9 +1847,6 @@ re_detach(device_t dev)
bus_dma_tag_destroy(sc->rl_ldata.rl_stag);
}
-#ifdef DEV_NETMAP
- netmap_detach(ifp);
-#endif /* DEV_NETMAP */
if (sc->rl_parent_tag)
bus_dma_tag_destroy(sc->rl_parent_tag);
OpenPOWER on IntegriCloud