From: Ryder Lee Date: Tue, 29 Dec 2020 04:15:30 +0000 (+0800) Subject: mt76: mt7915: drop zero-length packet to avoid Tx hang X-Git-Tag: v5.12-rc1~200^2~62^2~16^2~66 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b747fa343817fd322b4463dda99d28fc51e19c52;p=thirdparty%2Fkernel%2Flinux.git mt76: mt7915: drop zero-length packet to avoid Tx hang Hardware wouldn't add LLC-SNAP when skb->data_len is 0, which causes Tx hang, so add a check to drop this kind of packet. Tested-by: Bo Jiao Signed-off-by: Ryder Lee Signed-off-by: Felix Fietkau --- diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/mac.c b/drivers/net/wireless/mediatek/mt76/mt7915/mac.c index dab46bd5d05dc..ecabab77a9136 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7915/mac.c +++ b/drivers/net/wireless/mediatek/mt76/mt7915/mac.c @@ -942,6 +942,9 @@ int mt7915_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr, int id, i, nbuf = tx_info->nbuf - 1; u8 *txwi = (u8 *)txwi_ptr; + if (unlikely(tx_info->skb->len <= ETH_HLEN)) + return -EINVAL; + if (!wcid) wcid = &dev->mt76.global_wcid;