]> git.baikalelectronics.ru Git - kernel.git/commit
mac80211: move packet flags into packet
authorJohannes Berg <johannes.berg@intel.com>
Fri, 24 Sep 2010 10:38:25 +0000 (12:38 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 27 Sep 2010 19:57:54 +0000 (15:57 -0400)
commit5d383b75fee5a699dc6216ac3f85be35b1f837a1
tree2fdabf08455ea34697a853b3616cb92d9ef5b173
parentac35fe090f608c07f1037662f0cfd3f3d29a1ff3
mac80211: move packet flags into packet

commit e68a81225903165d1eaaa5c61466a2c13768b7e9
Author: Johannes Berg <johannes@sipsolutions.net>
Date:   Wed Nov 25 17:46:15 2009 +0100

    mac80211: move cmntr flag out of rx flags

moved the CMNTR flag into the skb RX flags for
some aggregation cleanups, but this was wrong
since the optimisation this flag tried to make
requires that it is kept across the processing
of multiple interfaces -- which isn't true for
flags in the skb. The patch not only broke the
optimisation, it also introduced a bug: under
some (common!) circumstances the flag will be
set on an already freed skb!

However, investigating this in more detail, I
found that most of the flags that we set should
be per packet, _except_ for this one, due to
a-MPDU processing. Additionally, the flags used
for processing (currently just this one) need
to be reset before processing a new packet.

Since we haven't actually seen bugs reported as
a result of the wrong flags handling (which is
not too surprising -- the only real bug case I
can come up with is an a-MSDU contained in an
a-MPDU), I'll make a different fix for rc.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
include/net/mac80211.h
net/mac80211/ieee80211_i.h
net/mac80211/rx.c
net/mac80211/wpa.c