mac80211: update rt2x00 rx_status patch
authorGabor Juhos <juhosg@openwrt.org>
Tue, 11 Dec 2012 17:49:11 +0000 (17:49 +0000)
committerGabor Juhos <juhosg@openwrt.org>
Tue, 11 Dec 2012 17:49:11 +0000 (17:49 +0000)
Also remove the superfluous ones for ath5k, p54.

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 34637

package/mac80211/patches/306-pending-rt2x00-zero-out-rx_status.patch
package/mac80211/patches/307-pending-ath5k-zero-out-rx_status.patch [deleted file]
package/mac80211/patches/308-pending-p54-zero-out-rx_status.patch [deleted file]

index 1580337adcdd67f8b2986c7bacda93d34331ac38..884b9428020b3fa176b4609f1fa5bb1f3f8d0169 100644 (file)
@@ -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>
 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'
-new fields were added to 'struct ieee80211_rx_status'.
-The rt2x00 driver does not initializes those fields and
-this can cause unexpected behaviour.
+new fields were added to 'struct ieee80211_rx_status' and those
+fileds must be zeroed. However the rt2x00 driver stores driver
+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
 tarball caused the following warning:
@@ -38,15 +39,25 @@ zeroes.
 Cc: <users@rt2x00.serialmonkey.com>
 Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 ---
- drivers/net/wireless/rt2x00/rt2x00dev.c |    2 ++
- 1 file changed, 2 insertions(+)
+v2:
+  - 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
 +++ 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.
         */
        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));
 +
        rx_status->mactime = rxdesc.timestamp;
diff --git a/package/mac80211/patches/307-pending-ath5k-zero-out-rx_status.patch b/package/mac80211/patches/307-pending-ath5k-zero-out-rx_status.patch
deleted file mode 100644 (file)
index 3f8723a..0000000
+++ /dev/null
@@ -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;
diff --git a/package/mac80211/patches/308-pending-p54-zero-out-rx_status.patch b/package/mac80211/patches/308-pending-p54-zero-out-rx_status.patch
deleted file mode 100644 (file)
index 22ff260..0000000
+++ /dev/null
@@ -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) ||