diff options
author | Andrew Thompson <thompsa@FreeBSD.org> | 2008-09-20 19:38:37 +0000 |
---|---|---|
committer | Andrew Thompson <thompsa@FreeBSD.org> | 2008-09-20 19:38:37 +0000 |
commit | cb959fa205386d63a61d44673befa7c1d5f4d111 (patch) | |
tree | 74b9472edb5958688889f2506f58d4469202a603 /sys | |
parent | b0000a98c40fcdb4283190f55240ed05fabb370d (diff) | |
download | src-cb959fa205386d63a61d44673befa7c1d5f4d111.tar.gz src-cb959fa205386d63a61d44673befa7c1d5f4d111.zip |
Fix clone destruction, can't use the simple api because that does not remove
the ifnet from cloner's list. Expose if_clone_destroyif api to do this.
Submitted by: sam
Notes
Notes:
svn path=/head/; revision=183210
Diffstat (limited to 'sys')
-rw-r--r-- | sys/net/if_clone.c | 3 | ||||
-rw-r--r-- | sys/net/if_clone.h | 1 | ||||
-rw-r--r-- | sys/net80211/ieee80211_freebsd.c | 2 |
3 files changed, 3 insertions, 3 deletions
diff --git a/sys/net/if_clone.c b/sys/net/if_clone.c index cc5212635714..8ffb7584c337 100644 --- a/sys/net/if_clone.c +++ b/sys/net/if_clone.c @@ -53,7 +53,6 @@ static void if_clone_free(struct if_clone *ifc); static int if_clone_createif(struct if_clone *ifc, char *name, size_t len, caddr_t params); -static int if_clone_destroyif(struct if_clone *ifc, struct ifnet *ifp); static struct mtx if_cloners_mtx; static int if_cloners_count; @@ -199,7 +198,7 @@ if_clone_destroy(const char *name) /* * Destroy a clone network interface. */ -static int +int if_clone_destroyif(struct if_clone *ifc, struct ifnet *ifp) { int err; diff --git a/sys/net/if_clone.h b/sys/net/if_clone.h index af3395fe7e6a..280a5455db86 100644 --- a/sys/net/if_clone.h +++ b/sys/net/if_clone.h @@ -75,6 +75,7 @@ void if_clone_detach(struct if_clone *); int if_clone_create(char *, size_t, caddr_t); int if_clone_destroy(const char *); +int if_clone_destroyif(struct if_clone *, struct ifnet *); int if_clone_list(struct if_clonereq *); int ifc_name2unit(const char *name, int *unit); diff --git a/sys/net80211/ieee80211_freebsd.c b/sys/net80211/ieee80211_freebsd.c index ad29931e6332..71174b72edfc 100644 --- a/sys/net80211/ieee80211_freebsd.c +++ b/sys/net80211/ieee80211_freebsd.c @@ -144,7 +144,7 @@ IFC_SIMPLE_DECLARE(wlan, 0); void ieee80211_vap_destroy(struct ieee80211vap *vap) { - ifc_simple_destroy(&wlan_cloner, vap->iv_ifp); + if_clone_destroyif(&wlan_cloner, vap->iv_ifp); } static int |