mac80211: backport an upstream fix for queue start/stop handling
Fixes issues with 802.11s Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
		| @@ -0,0 +1,29 @@ | |||||||
|  | From: Johannes Berg <johannes.berg@intel.com> | ||||||
|  | Date: Wed, 29 Mar 2017 14:15:24 +0200 | ||||||
|  | Subject: [PATCH] mac80211: unconditionally start new netdev queues with iTXQ | ||||||
|  |  support | ||||||
|  |  | ||||||
|  | When internal mac80211 TXQs aren't supported, netdev queues must | ||||||
|  | always started out started even when driver queues are stopped | ||||||
|  | while the interface is added. This is necessary because with the | ||||||
|  | internal TXQ support netdev queues are never stopped and packet | ||||||
|  | scheduling/dropping is done in mac80211. | ||||||
|  |  | ||||||
|  | Cc: stable@vger.kernel.org # 4.9+ | ||||||
|  | Fixes: 80a83cfc434b1 ("mac80211: skip netdev queue control with software queuing") | ||||||
|  | Reported-and-tested-by: Sven Eckelmann <sven.eckelmann@openmesh.com> | ||||||
|  | Signed-off-by: Johannes Berg <johannes.berg@intel.com> | ||||||
|  | --- | ||||||
|  |  | ||||||
|  | --- a/net/mac80211/iface.c | ||||||
|  | +++ b/net/mac80211/iface.c | ||||||
|  | @@ -727,7 +727,8 @@ int ieee80211_do_open(struct wireless_de | ||||||
|  |  	ieee80211_recalc_ps(local); | ||||||
|  |   | ||||||
|  |  	if (sdata->vif.type == NL80211_IFTYPE_MONITOR || | ||||||
|  | -	    sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { | ||||||
|  | +	    sdata->vif.type == NL80211_IFTYPE_AP_VLAN || | ||||||
|  | +	    local->ops->wake_tx_queue) { | ||||||
|  |  		/* XXX: for AP_VLAN, actually track AP queues */ | ||||||
|  |  		netif_tx_start_all_queues(dev); | ||||||
|  |  	} else if (dev) { | ||||||
		Reference in New Issue
	
	Block a user
	 Felix Fietkau
					Felix Fietkau