diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2010-01-17 01:47:56 +0100 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-01-19 16:25:16 -0500 |
commit | 697e6a0fb0c8783695d4b4a5d7131476b296d623 (patch) | |
tree | fb64bc9a92a200405736683843a58209230b4056 /net | |
parent | edc6ccb7b992bd9ea5db4555c8f0bf74c656f964 (diff) |
mac80211: clear TX control on filtered frames
When an skb survived a round-trip through the driver
and needs to be re-used, its control information is
definitely not valid any more, the driver will have
overwritten it.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net')
-rw-r--r-- | net/mac80211/status.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/net/mac80211/status.c b/net/mac80211/status.c index 0ebcdda2420..9e171b17827 100644 --- a/net/mac80211/status.c +++ b/net/mac80211/status.c @@ -69,6 +69,14 @@ static void ieee80211_handle_filtered_frame(struct ieee80211_local *local, */ goto drop; + /* + * This skb 'survived' a round-trip through the driver, and + * hopefully the driver didn't mangle it too badly. However, + * we can definitely not rely on the the control information + * being correct. Clear it so we don't get junk there. + */ + memset(&info->control, 0, sizeof(info->control)); + sta->tx_filtered_count++; /* |