]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
net: tg3: use skb_list_walk_safe helper for gso segments
authorJason A. Donenfeld <Jason@zx2c4.com>
Wed, 8 Jan 2020 21:59:05 +0000 (16:59 -0500)
committerDavid S. Miller <davem@davemloft.net>
Wed, 8 Jan 2020 23:19:55 +0000 (15:19 -0800)
This is a straight-forward conversion case for the new function, and
while we're at it, we can remove a null write to skb->next by replacing
it with skb_mark_not_on_list.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/tg3.c

index 460b4992914a081bf8001ae888c4655e71d6ea32..88466255bf66a2d4be6f6877aaadff5c844199b8 100644 (file)
@@ -7874,8 +7874,8 @@ static netdev_tx_t tg3_start_xmit(struct sk_buff *, struct net_device *);
 static int tg3_tso_bug(struct tg3 *tp, struct tg3_napi *tnapi,
                       struct netdev_queue *txq, struct sk_buff *skb)
 {
-       struct sk_buff *segs, *nskb;
        u32 frag_cnt_est = skb_shinfo(skb)->gso_segs * 3;
+       struct sk_buff *segs, *seg, *next;
 
        /* Estimate the number of fragments in the worst case */
        if (unlikely(tg3_tx_avail(tnapi) <= frag_cnt_est)) {
@@ -7898,12 +7898,10 @@ static int tg3_tso_bug(struct tg3 *tp, struct tg3_napi *tnapi,
        if (IS_ERR(segs) || !segs)
                goto tg3_tso_bug_end;
 
-       do {
-               nskb = segs;
-               segs = segs->next;
-               nskb->next = NULL;
-               tg3_start_xmit(nskb, tp->dev);
-       } while (segs);
+       skb_list_walk_safe(segs, seg, next) {
+               skb_mark_not_on_list(seg);
+               tg3_start_xmit(seg, tp->dev);
+       }
 
 tg3_tso_bug_end:
        dev_consume_skb_any(skb);