]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blobdiff - net/ipv6/exthdrs.c
[SK_BUFF]: unions of just one member don't get anything done, kill them
[mirror_ubuntu-jammy-kernel.git] / net / ipv6 / exthdrs.c
index f25ee773f52eb14b0d9cb6b1b3d0bf34660d1a5c..a6a275db88cdd8aa315f2e5a7b14911342ee7345 100644 (file)
@@ -143,7 +143,7 @@ static int ip6_parse_tlv(struct tlvtype_proc *procs, struct sk_buff **skbp)
        struct sk_buff *skb = *skbp;
        struct tlvtype_proc *curr;
        const unsigned char *nh = skb_network_header(skb);
-       int off = skb->h.raw - skb->nh.raw;
+       int off = skb_network_header_len(skb);
        int len = (skb_transport_header(skb)[1] + 1) << 3;
 
        if (skb_transport_offset(skb) + len > skb_headlen(skb))
@@ -297,7 +297,7 @@ static int ipv6_destopt_rcv(struct sk_buff **skbp)
                return -1;
        }
 
-       opt->lastopt = opt->dst1 = skb->h.raw - skb->nh.raw;
+       opt->lastopt = opt->dst1 = skb_network_header_len(skb);
 #ifdef CONFIG_IPV6_MIP6
        dstbuf = opt->dst1;
 #endif
@@ -306,7 +306,7 @@ static int ipv6_destopt_rcv(struct sk_buff **skbp)
        if (ip6_parse_tlv(tlvprocdestopt_lst, skbp)) {
                dst_release(dst);
                skb = *skbp;
-               skb->h.raw += (skb_transport_header(skb)[1] + 1) << 3;
+               skb->transport_header += (skb_transport_header(skb)[1] + 1) << 3;
                opt = IP6CB(skb);
 #ifdef CONFIG_IPV6_MIP6
                opt->nhoff = dstbuf;
@@ -443,8 +443,8 @@ looped_back:
                        break;
                }
 
-               opt->lastopt = opt->srcrt = skb->h.raw - skb->nh.raw;
-               skb->h.raw += (hdr->hdrlen + 1) << 3;
+               opt->lastopt = opt->srcrt = skb_network_header_len(skb);
+               skb->transport_header += (hdr->hdrlen + 1) << 3;
                opt->dst0 = opt->dst1;
                opt->dst1 = 0;
                opt->nhoff = (&hdr->nexthdr) - skb_network_header(skb);
@@ -506,7 +506,7 @@ looped_back:
                kfree_skb(skb);
                *skbp = skb = skb2;
                opt = IP6CB(skb2);
-               hdr = (struct ipv6_rt_hdr *) skb2->h.raw;
+               hdr = (struct ipv6_rt_hdr *)skb_transport_header(skb2);
        }
 
        if (skb->ip_summed == CHECKSUM_COMPLETE)
@@ -738,7 +738,7 @@ int ipv6_parse_hopopts(struct sk_buff **skbp)
 
        /*
         * skb_network_header(skb) is equal to skb->data, and
-        * skb->h.raw - skb->nh.raw is always equal to
+        * skb_network_header_len(skb) is always equal to
         * sizeof(struct ipv6hdr) by definition of
         * hop-by-hop options.
         */
@@ -752,7 +752,7 @@ int ipv6_parse_hopopts(struct sk_buff **skbp)
        opt->hop = sizeof(struct ipv6hdr);
        if (ip6_parse_tlv(tlvprochopopt_lst, skbp)) {
                skb = *skbp;
-               skb->h.raw += (skb_transport_header(skb)[1] + 1) << 3;
+               skb->transport_header += (skb_transport_header(skb)[1] + 1) << 3;
                opt = IP6CB(skb);
                opt->nhoff = sizeof(struct ipv6hdr);
                return 1;