mac80211: update rt2x00 rx_status patch
Also remove the superfluous ones for ath5k, p54. Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 34637
This commit is contained in:
parent
8d9564af1b
commit
a6112c3e8a
|
@ -1,12 +1,13 @@
|
||||||
From 84b435b38a84c9a7e8ba33e8d02d2f967f847ce1 Mon Sep 17 00:00:00 2001
|
From e922d683ca8001ce9a6272d6ab12d74e72c36521 Mon Sep 17 00:00:00 2001
|
||||||
From: Gabor Juhos <juhosg@openwrt.org>
|
From: Gabor Juhos <juhosg@openwrt.org>
|
||||||
Date: Tue, 11 Dec 2012 14:15:53 +0100
|
Date: Tue, 11 Dec 2012 14:15:53 +0100
|
||||||
Subject: [PATCH 1/3] rt2x00: zero-out rx_status
|
Subject: [PATCH v2] rt2x00: zero-out rx_status
|
||||||
|
|
||||||
In commit 'mac80211: support radiotap vendor namespace RX data'
|
In commit 'mac80211: support radiotap vendor namespace RX data'
|
||||||
new fields were added to 'struct ieee80211_rx_status'.
|
new fields were added to 'struct ieee80211_rx_status' and those
|
||||||
The rt2x00 driver does not initializes those fields and
|
fileds must be zeroed. However the rt2x00 driver stores driver
|
||||||
this can cause unexpected behaviour.
|
specific data in the cb array of the rx skbs, so the fields
|
||||||
|
might contain garbage and this can cause unexpected behaviour.
|
||||||
|
|
||||||
The rt2x00 driver from the compat-wireless-2012-12-01
|
The rt2x00 driver from the compat-wireless-2012-12-01
|
||||||
tarball caused the following warning:
|
tarball caused the following warning:
|
||||||
|
@ -38,15 +39,25 @@ zeroes.
|
||||||
Cc: <users@rt2x00.serialmonkey.com>
|
Cc: <users@rt2x00.serialmonkey.com>
|
||||||
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||||
---
|
---
|
||||||
drivers/net/wireless/rt2x00/rt2x00dev.c | 2 ++
|
v2:
|
||||||
1 file changed, 2 insertions(+)
|
- update the commit message and add a comment to the code
|
||||||
|
- drop the ath5k and p54 patches
|
||||||
|
---
|
||||||
|
drivers/net/wireless/rt2x00/rt2x00dev.c | 8 ++++++++
|
||||||
|
1 file changed, 8 insertions(+)
|
||||||
|
|
||||||
--- a/drivers/net/wireless/rt2x00/rt2x00dev.c
|
--- a/drivers/net/wireless/rt2x00/rt2x00dev.c
|
||||||
+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
|
+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
|
||||||
@@ -685,6 +685,8 @@ void rt2x00lib_rxdone(struct queue_entry
|
@@ -685,6 +685,14 @@ void rt2x00lib_rxdone(struct queue_entry
|
||||||
* to mac80211.
|
* to mac80211.
|
||||||
*/
|
*/
|
||||||
rx_status = IEEE80211_SKB_RXCB(entry->skb);
|
rx_status = IEEE80211_SKB_RXCB(entry->skb);
|
||||||
|
+
|
||||||
|
+ /* Ensure that all fields of rx_status are initialized
|
||||||
|
+ * properly. The skb->cb array was used for driver
|
||||||
|
+ * specific informations, so rx_status might contain
|
||||||
|
+ * garbage.
|
||||||
|
+ */
|
||||||
+ memset(rx_status, 0, sizeof(*rx_status));
|
+ memset(rx_status, 0, sizeof(*rx_status));
|
||||||
+
|
+
|
||||||
rx_status->mactime = rxdesc.timestamp;
|
rx_status->mactime = rxdesc.timestamp;
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
From 4c0faf816beeb5d4175cff09c96e668a49ad032f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Gabor Juhos <juhosg@openwrt.org>
|
|
||||||
Date: Tue, 11 Dec 2012 14:16:15 +0100
|
|
||||||
Subject: [PATCH 2/3] ath5k: zero-out rx_status
|
|
||||||
|
|
||||||
In commit 'mac80211: support radiotap vendor namespace RX data'
|
|
||||||
new fields were added to 'struct ieee80211_rx_status'.
|
|
||||||
The ath5k driver does not initializes those fields and
|
|
||||||
this can cause unexpected behaviour. The patch ensures
|
|
||||||
that each field gets initialized with zeroes.
|
|
||||||
|
|
||||||
Cc: <ath5k-devel@lists.ath5k.org>
|
|
||||||
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
|
||||||
---
|
|
||||||
Compile tested only.
|
|
||||||
---
|
|
||||||
drivers/net/wireless/ath/ath5k/base.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
--- a/drivers/net/wireless/ath/ath5k/base.c
|
|
||||||
+++ b/drivers/net/wireless/ath/ath5k/base.c
|
|
||||||
@@ -1325,8 +1325,8 @@ ath5k_receive_frame(struct ath5k_hw *ah,
|
|
||||||
ath5k_remove_padding(skb);
|
|
||||||
|
|
||||||
rxs = IEEE80211_SKB_RXCB(skb);
|
|
||||||
+ memset(rxs, 0, sizeof(*rxs));
|
|
||||||
|
|
||||||
- rxs->flag = 0;
|
|
||||||
if (unlikely(rs->rs_status & AR5K_RXERR_MIC))
|
|
||||||
rxs->flag |= RX_FLAG_MMIC_ERROR;
|
|
||||||
|
|
|
@ -1,30 +0,0 @@
|
||||||
From 6e73611e574ea3c8fe5afc67ee29d2c5ff777f4b Mon Sep 17 00:00:00 2001
|
|
||||||
From: Gabor Juhos <juhosg@openwrt.org>
|
|
||||||
Date: Tue, 11 Dec 2012 14:16:29 +0100
|
|
||||||
Subject: [PATCH 3/3] p54: zero-out rx_status
|
|
||||||
|
|
||||||
In commit 'mac80211: support radiotap vendor namespace RX data'
|
|
||||||
new fields were added to 'struct ieee80211_rx_status'.
|
|
||||||
The ath5k driver does not initializes those fields and
|
|
||||||
this can cause unexpected behaviour. The patch ensures
|
|
||||||
that each field gets initialized with zeroes.
|
|
||||||
|
|
||||||
Cc: Christian Lamparter <chunkeey@googlemail.com>
|
|
||||||
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
|
||||||
---
|
|
||||||
Compile tested only.
|
|
||||||
---
|
|
||||||
drivers/net/wireless/p54/txrx.c | 2 ++
|
|
||||||
1 file changed, 2 insertions(+)
|
|
||||||
|
|
||||||
--- a/drivers/net/wireless/p54/txrx.c
|
|
||||||
+++ b/drivers/net/wireless/p54/txrx.c
|
|
||||||
@@ -345,6 +345,8 @@ static int p54_rx_data(struct p54_common
|
|
||||||
if (!(hdr->flags & cpu_to_le16(P54_HDR_FLAG_DATA_IN_FCS_GOOD)))
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
+ memset(rx_status, 0, sizeof(*rx_status));
|
|
||||||
+
|
|
||||||
if (hdr->decrypt_status == P54_DECRYPT_OK)
|
|
||||||
rx_status->flag |= RX_FLAG_DECRYPTED;
|
|
||||||
if ((hdr->decrypt_status == P54_DECRYPT_FAIL_MICHAEL) ||
|
|
Loading…
Reference in New Issue