ath9k: Bail out properly before calculating rate index
Linux-MTD Mailing List
linux-mtd at lists.infradead.org
Sat Sep 29 10:59:33 EDT 2012
Gitweb: http://git.infradead.org/?p=mtd-2.6.git;a=commit;h=c1610117f81ae70b49aaf51ccb9040f2ce5bd358
Commit: c1610117f81ae70b49aaf51ccb9040f2ce5bd358
Parent: 2e546755b947c08cdc1c4f2bdba70130c6ed0736
Author: Sujith Manoharan <c_manoha at qca.qualcomm.com>
AuthorDate: Fri Aug 10 16:47:03 2012 +0530
Committer: John W. Linville <linville at tuxdriver.com>
CommitDate: Fri Aug 10 15:27:16 2012 -0400
ath9k: Bail out properly before calculating rate index
Signed-off-by: Sujith Manoharan <c_manoha at qca.qualcomm.com>
Signed-off-by: John W. Linville <linville at tuxdriver.com>
---
drivers/net/wireless/ath/ath9k/rc.c | 24 +++++++++++-------------
1 files changed, 11 insertions(+), 13 deletions(-)
diff --git a/drivers/net/wireless/ath/ath9k/rc.c b/drivers/net/wireless/ath/ath9k/rc.c
index a94c52b..0e3d20a 100644
--- a/drivers/net/wireless/ath/ath9k/rc.c
+++ b/drivers/net/wireless/ath/ath9k/rc.c
@@ -1264,23 +1264,12 @@ static void ath_tx_status(void *priv, struct ieee80211_supported_band *sband,
struct ath_softc *sc = priv;
struct ath_rate_priv *ath_rc_priv = priv_sta;
struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(skb);
- struct ieee80211_hdr *hdr;
+ struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
int final_ts_idx = 0, tx_status = 0;
int long_retry = 0;
- __le16 fc;
+ __le16 fc = hdr->frame_control;
int i;
- hdr = (struct ieee80211_hdr *)skb->data;
- fc = hdr->frame_control;
- for (i = 0; i < sc->hw->max_rates; i++) {
- struct ieee80211_tx_rate *rate = &tx_info->status.rates[i];
- if (rate->idx < 0 || !rate->count)
- break;
-
- final_ts_idx = i;
- long_retry = rate->count - 1;
- }
-
if (!priv_sta || !ieee80211_is_data(fc))
return;
@@ -1292,6 +1281,15 @@ static void ath_tx_status(void *priv, struct ieee80211_supported_band *sband,
if (tx_info->flags & IEEE80211_TX_STAT_TX_FILTERED)
return;
+ for (i = 0; i < sc->hw->max_rates; i++) {
+ struct ieee80211_tx_rate *rate = &tx_info->status.rates[i];
+ if (rate->idx < 0 || !rate->count)
+ break;
+
+ final_ts_idx = i;
+ long_retry = rate->count - 1;
+ }
+
if (!(tx_info->flags & IEEE80211_TX_STAT_ACK))
tx_status = 1;
More information about the linux-mtd-cvs
mailing list