Skip to content

Commit

Permalink
mt76: mt7663u: fix dma header initialization
Browse files Browse the repository at this point in the history
[ Upstream commit 8da40d6 ]

Fix length field corruption in usb dma header introduced adding sdio
support

Fixes: 75b10f0 ("mt76: mt76u: add mt76_skb_adjust_pad utility routine")
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Sasha Levin <sashal@kernel.org>
  • Loading branch information
LorenzoBianconi authored and gregkh committed Oct 29, 2020
1 parent 0f39a2f commit 4ec09b9
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 3 deletions.
4 changes: 3 additions & 1 deletion drivers/net/wireless/mediatek/mt76/mt7615/usb_mcu.c
Expand Up @@ -19,6 +19,7 @@ mt7663u_mcu_send_message(struct mt76_dev *mdev, struct sk_buff *skb,
{
struct mt7615_dev *dev = container_of(mdev, struct mt7615_dev, mt76);
int ret, seq, ep;
u32 len;

mutex_lock(&mdev->mcu.mutex);

Expand All @@ -28,7 +29,8 @@ mt7663u_mcu_send_message(struct mt76_dev *mdev, struct sk_buff *skb,
else
ep = MT_EP_OUT_AC_BE;

put_unaligned_le32(skb->len, skb_push(skb, sizeof(skb->len)));
len = skb->len;
put_unaligned_le32(len, skb_push(skb, sizeof(len)));
ret = mt76_skb_adjust_pad(skb);
if (ret < 0)
goto out;
Expand Down
7 changes: 5 additions & 2 deletions drivers/net/wireless/mediatek/mt76/mt7615/usb_sdio.c
Expand Up @@ -259,8 +259,11 @@ int mt7663_usb_sdio_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
}

mt7663_usb_sdio_write_txwi(dev, wcid, qid, sta, skb);
if (mt76_is_usb(mdev))
put_unaligned_le32(skb->len, skb_push(skb, sizeof(skb->len)));
if (mt76_is_usb(mdev)) {
u32 len = skb->len;

put_unaligned_le32(len, skb_push(skb, sizeof(len)));
}

return mt76_skb_adjust_pad(skb);
}
Expand Down

0 comments on commit 4ec09b9

Please sign in to comment.