diff --git a/drivers/net/wireless/ath/ath9k/hif_usb.c b/drivers/net/wireless/ath/ath9k/hif_usb.c index 860da13bfb6a..ea23d6379b79 100644 --- a/drivers/net/wireless/ath/ath9k/hif_usb.c +++ b/drivers/net/wireless/ath/ath9k/hif_usb.c @@ -551,11 +551,20 @@ static void ath9k_hif_usb_rx_stream(struct hif_device_usb *hif_dev, if (rx_remain_len != 0) { struct sk_buff *remain_skb = hif_dev->remain_skb; + u16 pkt_tag; if (remain_skb) { ptr = (u8 *) remain_skb->data; index = rx_remain_len; + pkt_tag = get_unaligned_le16(ptr + index + 2); + + if (pkt_tag != ATH_USB_RX_STREAM_MODE_TAG) { + spin_unlock(&hif_dev->rx_lock); + RX_STAT_INC(skb_dropped); + return; + } + rx_remain_len -= hif_dev->rx_pad_len; ptr += rx_pkt_len;