summaryrefslogtreecommitdiffstats
path: root/net/mac80211
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2009-04-29 23:35:56 +0200
committerJohn W. Linville <linville@tuxdriver.com>2009-05-04 22:22:08 +0200
commit8ccd8f21122dcc30a665516d43aa8b4aa8ae51f6 (patch)
tree27c9984baf7f1224ffd09c9070f4b5afcb473944 /net/mac80211
parentiwlwifi: remove EXPORT_SYMBOL for static symbol (diff)
downloadlinux-8ccd8f21122dcc30a665516d43aa8b4aa8ae51f6.tar.xz
linux-8ccd8f21122dcc30a665516d43aa8b4aa8ae51f6.zip
mac80211: correct fragmentation threshold check
The fragmentation threshold is defined to be including the FCS, and the code that sets the TX_FRAGMENTED flag correctly accounts for those four bytes. The code that verifies this doesn't though, which could lead to spurious warnings and frames being dropped although everything is ok. Correct the code by accounting for the FCS. (JWL -- The problem is described here: http://article.gmane.org/gmane.linux.kernel.wireless.general/32205 ) Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211')
-rw-r--r--net/mac80211/tx.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index 3fb04a86444d..63656266d567 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -772,7 +772,7 @@ ieee80211_tx_h_fragment(struct ieee80211_tx_data *tx)
hdrlen = ieee80211_hdrlen(hdr->frame_control);
/* internal error, why is TX_FRAGMENTED set? */
- if (WARN_ON(skb->len <= frag_threshold))
+ if (WARN_ON(skb->len + FCS_LEN <= frag_threshold))
return TX_DROP;
/*