diff options
3 files changed, 19 insertions, 69 deletions
| diff --git a/package/mac80211/patches/306-pending-rt2x00-zero-out-rx_status.patch b/package/mac80211/patches/306-pending-rt2x00-zero-out-rx_status.patch index 1580337ad..884b94280 100644 --- a/package/mac80211/patches/306-pending-rt2x00-zero-out-rx_status.patch +++ b/package/mac80211/patches/306-pending-rt2x00-zero-out-rx_status.patch @@ -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 index 3f8723adb..000000000 --- a/package/mac80211/patches/307-pending-ath5k-zero-out-rx_status.patch +++ /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 index 22ff2609f..000000000 --- a/package/mac80211/patches/308-pending-p54-zero-out-rx_status.patch +++ /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) || | 
