mac80211: move netdev queue enabling to correct spot
commit6a45694284d21a5f1f322eea978247edd8916410
authorJohannes Berg <johannes.berg@intel.com>
Mon, 22 Mar 2010 20:42:43 +0000 (22 13:42 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 26 Apr 2010 14:41:17 +0000 (26 07:41 -0700)
treecd055646e362a9337ed6638be89961cede58ffb8
parentc7f02946f8a70d815f2c37e88c3dde335d36417c
mac80211: move netdev queue enabling to correct spot

commit 7236fe29fd72d17074574ba312e7f1bb9d10abaa upstream.

"mac80211: fix skb buffering issue" still left a race
between enabling the hardware queues and the virtual
interface queues. In hindsight it's totally obvious
that enabling the netdev queues for a hardware queue
when the hardware queue is enabled is wrong, because
it could well possible that we can fill the hw queue
with packets we already have pending. Thus, we must
only enable the netdev queues once all the pending
packets have been processed and sent off to the device.

In testing, I haven't been able to trigger this race
condition, but it's clearly there, possibly only when
aggregation is being enabled.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
net/mac80211/tx.c
net/mac80211/util.c