]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - net/ipv4/ip_output.c
Merge tag 'char-misc-5.6-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux.git] / net / ipv4 / ip_output.c
index 14db1e0b8a6e120a9410669dd635c32b77637818..d84819893db96d813f4e91def912a59a87a48a7c 100644 (file)
@@ -240,8 +240,8 @@ static int ip_finish_output2(struct net *net, struct sock *sk, struct sk_buff *s
 static int ip_finish_output_gso(struct net *net, struct sock *sk,
                                struct sk_buff *skb, unsigned int mtu)
 {
+       struct sk_buff *segs, *nskb;
        netdev_features_t features;
-       struct sk_buff *segs;
        int ret = 0;
 
        /* common case: seglen is <= mtu
@@ -272,8 +272,7 @@ static int ip_finish_output_gso(struct net *net, struct sock *sk,
 
        consume_skb(skb);
 
-       do {
-               struct sk_buff *nskb = segs->next;
+       skb_list_walk_safe(segs, segs, nskb) {
                int err;
 
                skb_mark_not_on_list(segs);
@@ -281,8 +280,7 @@ static int ip_finish_output_gso(struct net *net, struct sock *sk,
 
                if (err && ret == 0)
                        ret = err;
-               segs = nskb;
-       } while (segs);
+       }
 
        return ret;
 }