aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/status.c
diff options
context:
space:
mode:
authorHelmut Schaa <helmut.schaa@googlemail.com>2011-11-18 11:02:16 -0500
committerJohn W. Linville <linville@tuxdriver.com>2011-11-21 14:45:20 -0500
commit9c8f2c42c93f415771d6d7b87a0881ba0bb72824 (patch)
treefac292e6b6612aa6a22334ed0c5e017aa0774f04 /net/mac80211/status.c
parent904603f9b78f94d5a5fe29cf2f9694ef7f6f4420 (diff)
mac80211: Fix endian bug in radiotap header generation
I intoduced this bug in commit a2fe81667410723d941a688e1958a49d67ca3346 "mac80211: Build TX radiotap header dynamically" Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com> Acked-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/status.c')
-rw-r--r--net/mac80211/status.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/net/mac80211/status.c b/net/mac80211/status.c
index df643cedf9b9..5533a74e9bb3 100644
--- a/net/mac80211/status.c
+++ b/net/mac80211/status.c
@@ -259,7 +259,7 @@ static void ieee80211_add_tx_radiotap_header(struct ieee80211_supported_band
259 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data; 259 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data;
260 struct ieee80211_radiotap_header *rthdr; 260 struct ieee80211_radiotap_header *rthdr;
261 unsigned char *pos; 261 unsigned char *pos;
262 __le16 txflags; 262 u16 txflags;
263 263
264 rthdr = (struct ieee80211_radiotap_header *) skb_push(skb, rtap_len); 264 rthdr = (struct ieee80211_radiotap_header *) skb_push(skb, rtap_len);
265 265
@@ -289,13 +289,13 @@ static void ieee80211_add_tx_radiotap_header(struct ieee80211_supported_band
289 txflags = 0; 289 txflags = 0;
290 if (!(info->flags & IEEE80211_TX_STAT_ACK) && 290 if (!(info->flags & IEEE80211_TX_STAT_ACK) &&
291 !is_multicast_ether_addr(hdr->addr1)) 291 !is_multicast_ether_addr(hdr->addr1))
292 txflags |= cpu_to_le16(IEEE80211_RADIOTAP_F_TX_FAIL); 292 txflags |= IEEE80211_RADIOTAP_F_TX_FAIL;
293 293
294 if ((info->status.rates[0].flags & IEEE80211_TX_RC_USE_RTS_CTS) || 294 if ((info->status.rates[0].flags & IEEE80211_TX_RC_USE_RTS_CTS) ||
295 (info->status.rates[0].flags & IEEE80211_TX_RC_USE_CTS_PROTECT)) 295 (info->status.rates[0].flags & IEEE80211_TX_RC_USE_CTS_PROTECT))
296 txflags |= cpu_to_le16(IEEE80211_RADIOTAP_F_TX_CTS); 296 txflags |= IEEE80211_RADIOTAP_F_TX_CTS;
297 else if (info->status.rates[0].flags & IEEE80211_TX_RC_USE_RTS_CTS) 297 else if (info->status.rates[0].flags & IEEE80211_TX_RC_USE_RTS_CTS)
298 txflags |= cpu_to_le16(IEEE80211_RADIOTAP_F_TX_RTS); 298 txflags |= IEEE80211_RADIOTAP_F_TX_RTS;
299 299
300 put_unaligned_le16(txflags, pos); 300 put_unaligned_le16(txflags, pos);
301 pos += 2; 301 pos += 2;