mt76: usb: simplify mt76u_tx_build_sg routine
authorLorenzo Bianconi <lorenzo@kernel.org>
Wed, 20 Feb 2019 22:35:18 +0000 (23:35 +0100)
committerFelix Fietkau <nbd@nbd.name>
Tue, 26 Feb 2019 11:25:18 +0000 (12:25 +0100)
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 <nbd@nbd.name>
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/usb.c

index 6801928cadd040c49c4174de3f2d9ec7f8b14f3c..096bc99378f59a085e20f87783b47cba41ed8210 100644 (file)
@@ -714,23 +714,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