]> git.karo-electronics.de Git - karo-tx-linux.git/commit
mac80211: fix rts threshold check
authorShanyu Zhao <shanyu.zhao@intel.com>
Tue, 27 Apr 2010 18:15:12 +0000 (11:15 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 5 Jul 2010 18:22:13 +0000 (11:22 -0700)
commit6f6dcf87b07b45fca26ad170ca9714d2ae09dc3f
tree08d16f0a9c073995ce7d3ddb70d8bf070fc0a8d2
parentc12531f62e8af466bb2e3a0a0fd8b0e6fb12fca2
mac80211: fix rts threshold check

commit a2c40249a36d0b4d76d1caf6bf806e4ae5b06e8a upstream.

Currently whenever rts thresold is set, every packet will use RTS
protection no matter its size exceeds the threshold or not. This is
due to a bug in the rts threshold check.
if (len > tx->local->hw.wiphy->rts_threshold) {
txrc.rts = rts = true;
}
Basically it is comparing an int (len) and a u32 (rts_threshold),
and the variable len is assigned as:
len = min_t(int, tx->skb->len + FCS_LEN,
 tx->local->hw.wiphy->frag_threshold);
However, when frag_threshold is "-1", len is always "-1", which is
0xffffffff therefore rts is always set to true.

Signed-off-by: Shanyu Zhao <shanyu.zhao@intel.com>
Reviewed-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
net/mac80211/tx.c