From: Lorenzo Bianconi <lore...@kernel.org>

Use skb_to_sgvec instad of skb_to_sgvec_nomark in mt76u_tx_build_sg.
Remove nsgs check in mt76u_tx_build_sg since it is already performed
by skb_to_sgvec

Suggested-by: Felix Fietkau <n...@nbd.name>
Signed-off-by: Lorenzo Bianconi <lore...@kernel.org>
---
 drivers/net/wireless/mediatek/mt76/usb.c | 17 +++--------------
 1 file changed, 3 insertions(+), 14 deletions(-)

diff --git a/drivers/net/wireless/mediatek/mt76/usb.c 
b/drivers/net/wireless/mediatek/mt76/usb.c
index 211ef7876de2..cbfddf2ebfeb 100644
--- a/drivers/net/wireless/mediatek/mt76/usb.c
+++ b/drivers/net/wireless/mediatek/mt76/usb.c
@@ -719,23 +719,12 @@ static int
 mt76u_tx_build_sg(struct mt76_dev *dev, struct sk_buff *skb,
                  struct urb *urb)
 {
-       struct sk_buff *iter;
-       int nsgs;
-
        if (!dev->usb.sg_en)
                return 0;
 
-       nsgs = 1 + skb_shinfo(skb)->nr_frags;
-       skb_walk_frags(skb, iter)
-               nsgs += 1 + skb_shinfo(iter)->nr_frags;
-
-       memset(urb->sg, 0, sizeof(*urb->sg) * MT_SG_MAX_SIZE);
-
-       nsgs = min_t(int, MT_SG_MAX_SIZE, nsgs);
-       sg_init_marker(urb->sg, nsgs);
-       urb->num_sgs = nsgs;
-
-       return skb_to_sgvec_nomark(skb, urb->sg, 0, skb->len);
+       sg_init_table(urb->sg, MT_SG_MAX_SIZE);
+       urb->num_sgs = skb_to_sgvec(skb, urb->sg, 0, skb->len);
+       return urb->num_sgs;
 }
 
 static int
-- 
2.20.1

Reply via email to