diff options
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/main.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c index 20c70ba45753..1447b55a8d0a 100644 --- a/drivers/net/wireless/ath/ath9k/main.c +++ b/drivers/net/wireless/ath/ath9k/main.c | |||
@@ -331,6 +331,8 @@ static bool ath_paprd_send_frame(struct ath_softc *sc, struct sk_buff *skb, int | |||
331 | { | 331 | { |
332 | struct ieee80211_hw *hw = sc->hw; | 332 | struct ieee80211_hw *hw = sc->hw; |
333 | struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(skb); | 333 | struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(skb); |
334 | struct ath_hw *ah = sc->sc_ah; | ||
335 | struct ath_common *common = ath9k_hw_common(ah); | ||
334 | struct ath_tx_control txctl; | 336 | struct ath_tx_control txctl; |
335 | int time_left; | 337 | int time_left; |
336 | 338 | ||
@@ -348,8 +350,12 @@ static bool ath_paprd_send_frame(struct ath_softc *sc, struct sk_buff *skb, int | |||
348 | init_completion(&sc->paprd_complete); | 350 | init_completion(&sc->paprd_complete); |
349 | sc->paprd_pending = true; | 351 | sc->paprd_pending = true; |
350 | txctl.paprd = BIT(chain); | 352 | txctl.paprd = BIT(chain); |
351 | if (ath_tx_start(hw, skb, &txctl) != 0) | 353 | |
354 | if (ath_tx_start(hw, skb, &txctl) != 0) { | ||
355 | ath_dbg(common, ATH_DBG_XMIT, "PAPRD TX failed\n"); | ||
356 | dev_kfree_skb_any(skb); | ||
352 | return false; | 357 | return false; |
358 | } | ||
353 | 359 | ||
354 | time_left = wait_for_completion_timeout(&sc->paprd_complete, | 360 | time_left = wait_for_completion_timeout(&sc->paprd_complete, |
355 | msecs_to_jiffies(ATH_PAPRD_TIMEOUT)); | 361 | msecs_to_jiffies(ATH_PAPRD_TIMEOUT)); |