This sequence of events causes loss of connectivity: <plug in> <associate as normal in managed mode> ifconfig eth7 down iwconfig eth7 mode monitor ifconfig eth7 up ifconfig eth7 down iwconfig eth7 mode managed <associate as normal> At this point you are associated but TX does not work. This is because the eth7 hard_start_xmit is still ieee80211_monitor_start_xmit. Fix this by unsetting the hard_start_xmit handler in ieee80211_if_reinit. It will then be reinitialised to the default (ieee80211_subif_start_xmit) in ieee80211_if_set_type. Signed-off-by: Daniel Drake <dsd@xxxxxxxxxx> --- net/mac80211/ieee80211_iface.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/net/mac80211/ieee80211_iface.c b/net/mac80211/ieee80211_iface.c index 08c1e18..40d4b63 100644 --- a/net/mac80211/ieee80211_iface.c +++ b/net/mac80211/ieee80211_iface.c @@ -242,6 +242,9 @@ void ieee80211_if_reinit(struct net_device *dev) ieee80211_if_sdata_deinit(sdata); + BUG_ON(netif_running(dev)); + dev->hard_start_xmit = NULL; + switch (sdata->type) { case IEEE80211_IF_TYPE_MGMT: /* nothing to do */ -- 1.5.3.3 - To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html