Search Linux Wireless

Re: [RFC PATCH 0/3] mac80211 dissasociation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2008-09-08 at 11:46 +0300, Tomas Winkler wrote:
> On Mon, Sep 8, 2008 at 11:38 AM, Johannes Berg
> <johannes@xxxxxxxxxxxxxxxx> wrote:
> > On Mon, 2008-09-08 at 02:14 +0300, Tomas Winkler wrote:
> >
> >> Shouldn't carrier_off(stada->dev) stop the queue?  I haven't seen this
> >> before.
> >
> > The other question is whether we should be doing netif_carrier_off() at
> > all since that throws away frames from the queue and attaches a noop
> > qdisc. When we're roaming quickly between two APs, we don't necessarily
> > want that, but we don't actually know whether or not we'll be able to
> > get back to an AP quickly when we disassociate for whatever reason.
> >
> we should stop the wlan0 not the master device. Only data frames
> should be stopped.

That's what we're doing of course, but should we really drop all the
frames that might still be in the queue? If we're just roaming we could
send them out via the next AP, but it's hard to know, and since it's
working let's not touch it for now.

How exactly are you triggering that "unauthorized port" message? I can't
seem to reproduce to see if stopping the queue helps, but I'm fairly
sure, try the patch below that fixes this.

johannes

--- everything.orig/net/mac80211/mlme.c	2008-09-08 10:54:28.000000000 +0200
+++ everything/net/mac80211/mlme.c	2008-09-08 10:57:30.000000000 +0200
@@ -574,6 +574,7 @@ static void ieee80211_set_associated(str
 	sdata->bss_conf.assoc = 1;
 	ieee80211_bss_info_change_notify(sdata, changed);
 
+	netif_tx_start_all_queues(sdata->dev);
 	netif_carrier_on(sdata->dev);
 
 	ieee80211_sta_send_apinfo(sdata, ifsta);
@@ -995,6 +996,7 @@ static void ieee80211_set_disassoc(struc
 	ifsta->assoc_scan_tries = 0;
 	ifsta->assoc_tries = 0;
 
+	netif_tx_stop_all_queues(sdata->dev);
 	netif_carrier_off(sdata->dev);
 
 	ieee80211_sta_tear_down_BA_sessions(sdata, sta->addr);
@@ -3413,6 +3415,7 @@ static void ieee80211_sta_reset_auth(str
 	ifsta->direct_probe_tries = 0;
 	ifsta->auth_tries = 0;
 	ifsta->assoc_tries = 0;
+	netif_tx_stop_all_queues(sdata->dev);
 	netif_carrier_off(sdata->dev);
 }
 


--
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

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux