diff options
Diffstat (limited to 'recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0025-ath9k-fix-a-tx-rate-duration-calculation-bug.patch')
-rw-r--r-- | recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0025-ath9k-fix-a-tx-rate-duration-calculation-bug.patch | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0025-ath9k-fix-a-tx-rate-duration-calculation-bug.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0025-ath9k-fix-a-tx-rate-duration-calculation-bug.patch new file mode 100644 index 00000000..82df3fbc --- /dev/null +++ b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0025-ath9k-fix-a-tx-rate-duration-calculation-bug.patch | |||
@@ -0,0 +1,41 @@ | |||
1 | From aabb8d6daa5fecfc6086a480865312860e6a1080 Mon Sep 17 00:00:00 2001 | ||
2 | From: Felix Fietkau <nbd@openwrt.org> | ||
3 | Date: Fri, 15 Jun 2012 03:04:52 +0200 | ||
4 | Subject: [PATCH 25/46] ath9k: fix a tx rate duration calculation bug | ||
5 | |||
6 | commit 76591bea9714a58d8924154068c78d702eb2cb17 upstream. | ||
7 | |||
8 | The rate pointer variable for a rate series is used in a loop before it is | ||
9 | initialized. This went unnoticed because it was used earlier for the RTS/CTS | ||
10 | rate. This bug can lead to the wrong PHY type being passed to the | ||
11 | duration calculation function. | ||
12 | |||
13 | Signed-off-by: Felix Fietkau <nbd@openwrt.org> | ||
14 | Signed-off-by: John W. Linville <linville@tuxdriver.com> | ||
15 | Signed-off-by: Ben Hutchings <ben@decadent.org.uk> | ||
16 | --- | ||
17 | drivers/net/wireless/ath/ath9k/xmit.c | 2 +- | ||
18 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
19 | |||
20 | diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c | ||
21 | index 76fd277..c59c592 100644 | ||
22 | --- a/drivers/net/wireless/ath/ath9k/xmit.c | ||
23 | +++ b/drivers/net/wireless/ath/ath9k/xmit.c | ||
24 | @@ -936,13 +936,13 @@ static void ath_buf_set_rate(struct ath_softc *sc, struct ath_buf *bf, | ||
25 | } | ||
26 | |||
27 | /* legacy rates */ | ||
28 | + rate = &sc->sbands[tx_info->band].bitrates[rates[i].idx]; | ||
29 | if ((tx_info->band == IEEE80211_BAND_2GHZ) && | ||
30 | !(rate->flags & IEEE80211_RATE_ERP_G)) | ||
31 | phy = WLAN_RC_PHY_CCK; | ||
32 | else | ||
33 | phy = WLAN_RC_PHY_OFDM; | ||
34 | |||
35 | - rate = &sc->sbands[tx_info->band].bitrates[rates[i].idx]; | ||
36 | info->rates[i].Rate = rate->hw_value; | ||
37 | if (rate->hw_value_short) { | ||
38 | if (rates[i].flags & IEEE80211_TX_RC_USE_SHORT_PREAMBLE) | ||
39 | -- | ||
40 | 1.7.10 | ||
41 | |||