diff options
Diffstat (limited to 'drivers/net/wireless/ath')
-rw-r--r-- | drivers/net/wireless/ath/ath6kl/txrx.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/drivers/net/wireless/ath/ath6kl/txrx.c b/drivers/net/wireless/ath/ath6kl/txrx.c index aab825152b1..740a488ef50 100644 --- a/drivers/net/wireless/ath/ath6kl/txrx.c +++ b/drivers/net/wireless/ath/ath6kl/txrx.c | |||
@@ -698,21 +698,26 @@ void ath6kl_tx_complete(struct htc_target *target, | |||
698 | list_del(&packet->list); | 698 | list_del(&packet->list); |
699 | 699 | ||
700 | ath6kl_cookie = (struct ath6kl_cookie *)packet->pkt_cntxt; | 700 | ath6kl_cookie = (struct ath6kl_cookie *)packet->pkt_cntxt; |
701 | if (!ath6kl_cookie) | 701 | if (WARN_ON_ONCE(!ath6kl_cookie)) |
702 | goto fatal; | 702 | continue; |
703 | 703 | ||
704 | status = packet->status; | 704 | status = packet->status; |
705 | skb = ath6kl_cookie->skb; | 705 | skb = ath6kl_cookie->skb; |
706 | eid = packet->endpoint; | 706 | eid = packet->endpoint; |
707 | map_no = ath6kl_cookie->map_no; | 707 | map_no = ath6kl_cookie->map_no; |
708 | 708 | ||
709 | if (!skb || !skb->data) | 709 | if (WARN_ON_ONCE(!skb || !skb->data)) { |
710 | goto fatal; | 710 | dev_kfree_skb(skb); |
711 | ath6kl_free_cookie(ar, ath6kl_cookie); | ||
712 | continue; | ||
713 | } | ||
711 | 714 | ||
712 | __skb_queue_tail(&skb_queue, skb); | 715 | __skb_queue_tail(&skb_queue, skb); |
713 | 716 | ||
714 | if (!status && (packet->act_len != skb->len)) | 717 | if (WARN_ON_ONCE(!status && (packet->act_len != skb->len))) { |
715 | goto fatal; | 718 | ath6kl_free_cookie(ar, ath6kl_cookie); |
719 | continue; | ||
720 | } | ||
716 | 721 | ||
717 | ar->tx_pending[eid]--; | 722 | ar->tx_pending[eid]--; |
718 | 723 | ||
@@ -794,11 +799,6 @@ void ath6kl_tx_complete(struct htc_target *target, | |||
794 | wake_up(&ar->event_wq); | 799 | wake_up(&ar->event_wq); |
795 | 800 | ||
796 | return; | 801 | return; |
797 | |||
798 | fatal: | ||
799 | WARN_ON(1); | ||
800 | spin_unlock_bh(&ar->lock); | ||
801 | return; | ||
802 | } | 802 | } |
803 | 803 | ||
804 | void ath6kl_tx_data_cleanup(struct ath6kl *ar) | 804 | void ath6kl_tx_data_cleanup(struct ath6kl *ar) |