mac80211: do not pass PS frames out of mac80211 again
authorJohannes Berg <johannes@sipsolutions.net>
Sun, 7 Jun 2009 19:58:37 +0000 (21:58 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 10 Jun 2009 17:28:37 +0000 (13:28 -0400)
commit8f77f3849cc3ae2d6df9301785a3d316ea7d7ee1
tree02143d1e81c85f64900546e3e9c2b820f72745d1
parentfc240e3fc5791c572402b0857948da7b1e68d77f
mac80211: do not pass PS frames out of mac80211 again

In order to handle powersave frames properly we had needed
to pass these out to the device queues again, and introduce
the skb->requeue bit. This, however, also has unnecessary
overhead by needing to 'clean up' already tried frames, and
this clean-up code is also buggy when software encryption
is used.

Instead of sending the frames via the master netdev queue
again, simply put them into the pending queue. This also
fixes a problem where frames for that particular station
could be reordered when some were still on the software
queues and older ones are re-injected into the software
queue after them.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
include/linux/skbuff.h
include/net/mac80211.h
net/core/skbuff.c
net/mac80211/ieee80211_i.h
net/mac80211/main.c
net/mac80211/rx.c
net/mac80211/tx.c
net/mac80211/util.c
net/mac80211/wme.c