net: sunvnet: use skb_list_walk_safe helper for gso segments
authorJason A. Donenfeld <Jason@zx2c4.com>
Wed, 8 Jan 2020 21:59:06 +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/sun/sunvnet_common.c

index a601a306f9a56301b306f40265bd0c5e8b98ff1d..c23ce838ff631280e981c9e0ab9d0bfce16c3ea9 100644 (file)
@@ -1223,7 +1223,7 @@ vnet_handle_offloads(struct vnet_port *port, struct sk_buff *skb,
 {
        struct net_device *dev = VNET_PORT_TO_NET_DEVICE(port);
        struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING];
-       struct sk_buff *segs;
+       struct sk_buff *segs, *curr, *next;
        int maclen, datalen;
        int status;
        int gso_size, gso_type, gso_segs;
@@ -1282,11 +1282,8 @@ vnet_handle_offloads(struct vnet_port *port, struct sk_buff *skb,
        skb_reset_mac_header(skb);
 
        status = 0;
-       while (segs) {
-               struct sk_buff *curr = segs;
-
-               segs = segs->next;
-               curr->next = NULL;
+       skb_list_walk_safe(segs, curr, next) {
+               skb_mark_not_on_list(curr);
                if (port->tso && curr->len > dev->mtu) {
                        skb_shinfo(curr)->gso_size = gso_size;
                        skb_shinfo(curr)->gso_type = gso_type;