| From: Felix Fietkau <nbd@openwrt.org> |
| Date: Fri, 15 Jun 2012 03:04:52 +0200 |
| Subject: ath9k: fix a tx rate duration calculation bug |
| |
| commit 76591bea9714a58d8924154068c78d702eb2cb17 upstream. |
| |
| The rate pointer variable for a rate series is used in a loop before it is |
| initialized. This went unnoticed because it was used earlier for the RTS/CTS |
| rate. This bug can lead to the wrong PHY type being passed to the |
| duration calculation function. |
| |
| Signed-off-by: Felix Fietkau <nbd@openwrt.org> |
| Signed-off-by: John W. Linville <linville@tuxdriver.com> |
| Signed-off-by: Ben Hutchings <ben@decadent.org.uk> |
| --- |
| drivers/net/wireless/ath/ath9k/xmit.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c |
| index d59dd01..efb7f00 100644 |
| --- a/drivers/net/wireless/ath/ath9k/xmit.c |
| +++ b/drivers/net/wireless/ath/ath9k/xmit.c |
| @@ -1001,13 +1001,13 @@ static void ath_buf_set_rate(struct ath_softc *sc, struct ath_buf *bf, |
| } |
| |
| /* legacy rates */ |
| + rate = &sc->sbands[tx_info->band].bitrates[rates[i].idx]; |
| if ((tx_info->band == IEEE80211_BAND_2GHZ) && |
| !(rate->flags & IEEE80211_RATE_ERP_G)) |
| phy = WLAN_RC_PHY_CCK; |
| else |
| phy = WLAN_RC_PHY_OFDM; |
| |
| - rate = &sc->sbands[tx_info->band].bitrates[rates[i].idx]; |
| info->rates[i].Rate = rate->hw_value; |
| if (rate->hw_value_short) { |
| if (rates[i].flags & IEEE80211_TX_RC_USE_SHORT_PREAMBLE) |