ath10k: don't access tx_info while overwriting it
authorMichal Kazior <michal.kazior@tieto.com>
Tue, 2 Sep 2014 08:00:22 +0000 (11:00 +0300)
committerKalle Valo <kvalo@qca.qualcomm.com>
Tue, 2 Sep 2014 13:19:01 +0000 (16:19 +0300)
Nothing important was being overwritten so it
didn't yield any bugs yet.

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/ath10k/mac.c

index 100ed4f0cabdce0b2e0ad3985c4fdfb02813b2fd..f80eeed16cb6a42bf25954f75640604d55bc3746 100644 (file)
@@ -1857,11 +1857,10 @@ static u8 ath10k_tx_h_get_tid(struct ieee80211_hdr *hdr)
        return ieee80211_get_qos_ctl(hdr)[0] & IEEE80211_QOS_CTL_TID_MASK;
 }
 
-static u8 ath10k_tx_h_get_vdev_id(struct ath10k *ar,
-                                 struct ieee80211_tx_info *info)
+static u8 ath10k_tx_h_get_vdev_id(struct ath10k *ar, struct ieee80211_vif *vif)
 {
-       if (info->control.vif)
-               return ath10k_vif_to_arvif(info->control.vif)->vdev_id;
+       if (vif)
+               return ath10k_vif_to_arvif(vif)->vdev_id;
 
        if (ar->monitor_started)
                return ar->monitor_vdev_id;
@@ -2317,7 +2316,7 @@ static void ath10k_tx(struct ieee80211_hw *hw,
 
        ATH10K_SKB_CB(skb)->htt.is_offchan = false;
        ATH10K_SKB_CB(skb)->htt.tid = ath10k_tx_h_get_tid(hdr);
-       ATH10K_SKB_CB(skb)->vdev_id = ath10k_tx_h_get_vdev_id(ar, info);
+       ATH10K_SKB_CB(skb)->vdev_id = ath10k_tx_h_get_vdev_id(ar, vif);
 
        /* it makes no sense to process injected frames like that */
        if (vif && vif->type != NL80211_IFTYPE_MONITOR) {