summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorRyder Lee <ryder.lee@mediatek.com>2020-12-29 12:15:30 +0800
committerFelix Fietkau <nbd@nbd.name>2021-01-26 20:07:47 +0100
commitb747fa343817fd322b4463dda99d28fc51e19c52 (patch)
treee5ff121063a7f163e0468e758bdae6adbeaa18a6 /drivers
parentb8135057988e57f498e85eeaf133cacac2de3a10 (diff)
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 <bo.jiao@mediatek.com> Signed-off-by: Ryder Lee <ryder.lee@mediatek.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/mediatek/mt76/mt7915/mac.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/mac.c b/drivers/net/wireless/mediatek/mt76/mt7915/mac.c
index dab46bd5d05d..ecabab77a913 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;