From: Lorenzo Bianconi <[email protected]>

Use skb_to_sgvec instad of skb_to_sgvec_nomark in mt76u_tx_build_sg.
Moreover remove nsgs check since it is already performed in skb_to_sgvec

Suggested-by: Felix Fietkau <[email protected]>
Signed-off-by: Lorenzo Bianconi <[email protected]>
---
 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 24bf96de9f9d..87b89d5f1d03 100644
--- a/drivers/net/wireless/mediatek/mt76/usb.c
+++ b/drivers/net/wireless/mediatek/mt76/usb.c
@@ -724,23 +724,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