summaryrefslogtreecommitdiff
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 16:22:08 -0400
commit8ccd8f21122dcc30a665516d43aa8b4aa8ae51f6 (patch)
tree27c9984baf7f1224ffd09c9070f4b5afcb473944
parent3ee59f8d0dcab2e114546038b2b224776c82b7f7 (diff)
downloadlinux-rpi-8ccd8f21122dcc30a665516d43aa8b4aa8ae51f6.tar.gz
linux-rpi-8ccd8f21122dcc30a665516d43aa8b4aa8ae51f6.tar.bz2
linux-rpi-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>
-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;
/*