diff options
author | Helmut Schaa <helmut.schaa@googlemail.com> | 2011-11-18 11:02:16 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-11-21 14:45:20 -0500 |
commit | 9c8f2c42c93f415771d6d7b87a0881ba0bb72824 (patch) | |
tree | fac292e6b6612aa6a22334ed0c5e017aa0774f04 /net/mac80211/status.c | |
parent | 904603f9b78f94d5a5fe29cf2f9694ef7f6f4420 (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.c | 8 |
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; |