|
@@ -267,7 +267,10 @@ static void ath_tx_complete_aggr(struct ath_softc *sc, struct ath_txq *txq,
|
|
|
struct ath_node *an = NULL;
|
|
|
struct sk_buff *skb;
|
|
|
struct ieee80211_sta *sta;
|
|
|
+ struct ieee80211_hw *hw;
|
|
|
struct ieee80211_hdr *hdr;
|
|
|
+ struct ieee80211_tx_info *tx_info;
|
|
|
+ struct ath_tx_info_priv *tx_info_priv;
|
|
|
struct ath_atx_tid *tid = NULL;
|
|
|
struct ath_buf *bf_next, *bf_last = bf->bf_lastbf;
|
|
|
struct ath_desc *ds = bf_last->bf_desc;
|
|
@@ -280,10 +283,14 @@ static void ath_tx_complete_aggr(struct ath_softc *sc, struct ath_txq *txq,
|
|
|
skb = bf->bf_mpdu;
|
|
|
hdr = (struct ieee80211_hdr *)skb->data;
|
|
|
|
|
|
+ tx_info = IEEE80211_SKB_CB(skb);
|
|
|
+ tx_info_priv = (struct ath_tx_info_priv *) tx_info->rate_driver_data[0];
|
|
|
+ hw = tx_info_priv->aphy->hw;
|
|
|
+
|
|
|
rcu_read_lock();
|
|
|
|
|
|
/* XXX: use ieee80211_find_sta! */
|
|
|
- sta = ieee80211_find_sta_by_hw(sc->hw, hdr->addr1);
|
|
|
+ sta = ieee80211_find_sta_by_hw(hw, hdr->addr1);
|
|
|
if (!sta) {
|
|
|
rcu_read_unlock();
|
|
|
return;
|