]> git.baikalelectronics.ru Git - kernel.git/commit
mac80211: move netdev queue enabling to correct spot
authorJohannes Berg <johannes.berg@intel.com>
Mon, 22 Mar 2010 20:42:43 +0000 (13:42 -0700)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 30 Mar 2010 19:37:28 +0000 (15:37 -0400)
commit0e05fa9a11902618c68079794b7d29bff182d72e
tree6afd1fed2871daca52f5a8b3070337ae1b6ada0d
parent71ee36062695e697a6861a2d6758c86a2da1a7ec
mac80211: move netdev queue enabling to correct spot

"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>
Cc: stable@kernel.org
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/tx.c
net/mac80211/util.c