From 5c087ae0e15ece1b58c09b4aea7a4d7b36ae03ae Mon Sep 17 00:00:00 2001 From: Xin LI Date: Sun, 9 Oct 2005 04:15:12 +0000 Subject: MFC (by ru) | Fix "struct ifnet" leaks when attach() fails in the middle. | | Revision Changes Path | 1.28 +4 -5 src/sys/dev/bfe/if_bfe.c | 1.95 +3 -2 src/sys/dev/bge/if_bge.c | 1.21 +2 -0 src/sys/dev/cnw/if_cnw.c | 1.261 +2 -1 src/sys/dev/ed/if_ed.c | 1.38 +9 -2 src/sys/dev/en/if_en_pci.c | 1.59 +3 -1 src/sys/dev/ex/if_ex.c | 1.26 +4 -3 src/sys/dev/hatm/if_hatm.c | 1.105 +2 -1 src/sys/dev/ie/if_ie.c | 1.17 +2 -1 src/sys/dev/vge/if_vge.c Approved by: re (scottl) --- sys/dev/ie/if_ie.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'sys/dev/ie') diff --git a/sys/dev/ie/if_ie.c b/sys/dev/ie/if_ie.c index 4326f98e75b0..c3dcdee09cc9 100644 --- a/sys/dev/ie/if_ie.c +++ b/sys/dev/ie/if_ie.c @@ -1777,6 +1777,8 @@ ie_release_resources (device_t dev) if (sc->mem_res) bus_release_resource(dev, SYS_RES_MEMORY, sc->mem_rid, sc->mem_res); + if (sc->ifp) + if_free(sc->ifp); return; } @@ -1796,7 +1798,6 @@ ie_detach (device_t dev) ie_stop(sc); ifp->if_drv_flags &= ~IFF_DRV_RUNNING; ether_ifdetach(ifp); - if_free(ifp); ie_release_resources(dev); return (0); -- cgit v1.3