Page MenuHomeFreeBSD

D24925.id72069.diff
No OneTemporary

D24925.id72069.diff

Index: sys/net80211/ieee80211_freebsd.c
===================================================================
--- sys/net80211/ieee80211_freebsd.c
+++ sys/net80211/ieee80211_freebsd.c
@@ -963,6 +963,19 @@
}
void
+ieee80211_notify_ifnet_change(struct ieee80211vap *vap)
+{
+ struct ifnet *ifp = vap->iv_ifp;
+
+ IEEE80211_DPRINTF(vap, IEEE80211_MSG_DEBUG, "%s\n",
+ "interface state change");
+
+ CURVNET_SET(ifp->if_vnet);
+ rt_ifmsg(ifp);
+ CURVNET_RESTORE();
+}
+
+void
ieee80211_load_module(const char *modname)
{
Index: sys/net80211/ieee80211_proto.h
===================================================================
--- sys/net80211/ieee80211_proto.h
+++ sys/net80211/ieee80211_proto.h
@@ -455,4 +455,5 @@
void ieee80211_notify_country(struct ieee80211vap *, const uint8_t [],
const uint8_t cc[2]);
void ieee80211_notify_radio(struct ieee80211com *, int);
+void ieee80211_notify_ifnet_change(struct ieee80211vap *);
#endif /* _NET80211_IEEE80211_PROTO_H_ */
Index: sys/net80211/ieee80211_proto.c
===================================================================
--- sys/net80211/ieee80211_proto.c
+++ sys/net80211/ieee80211_proto.c
@@ -1511,6 +1511,8 @@
* back in here and complete the work.
*/
ifp->if_drv_flags |= IFF_DRV_RUNNING;
+ ieee80211_notify_ifnet_change(vap);
+
/*
* We are not running; if this we are the first vap
* to be brought up auto-up the parent if necessary.
@@ -1624,6 +1626,7 @@
ieee80211_new_state_locked(vap, IEEE80211_S_INIT, -1);
if (ifp->if_drv_flags & IFF_DRV_RUNNING) {
ifp->if_drv_flags &= ~IFF_DRV_RUNNING; /* mark us stopped */
+ ieee80211_notify_ifnet_change(vap);
if (--ic->ic_nrunning == 0) {
IEEE80211_DPRINTF(vap,
IEEE80211_MSG_STATE | IEEE80211_MSG_DEBUG,

File Metadata

Mime Type
text/plain
Expires
Thu, Mar 19, 7:00 AM (40 m, 2 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29953295
Default Alt Text
D24925.id72069.diff (1 KB)

Event Timeline