]> git.baikalelectronics.ru Git - kernel.git/commitdiff
esp4: improve xfrm4_beet_gso_segment() to be more readable
authorXin Long <lucien.xin@gmail.com>
Mon, 18 May 2020 05:35:19 +0000 (13:35 +0800)
committerSteffen Klassert <steffen.klassert@secunet.com>
Mon, 18 May 2020 07:55:19 +0000 (09:55 +0200)
This patch is to improve the code to make xfrm4_beet_gso_segment()
more readable, and keep consistent with xfrm6_beet_gso_segment().

Signed-off-by: Xin Long <lucien.xin@gmail.com>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
net/ipv4/esp4_offload.c

index 9b1d451edae0b25659c66b80ef24e6b068d71e5d..d14133eac4763580b98b5e4d5575403036ced783 100644 (file)
@@ -141,20 +141,23 @@ static struct sk_buff *xfrm4_beet_gso_segment(struct xfrm_state *x,
 
        skb->transport_header += x->props.header_len;
 
-       if (proto == IPPROTO_BEETPH) {
-               struct ip_beet_phdr *ph = (struct ip_beet_phdr *)skb->data;
-
-               skb->transport_header += ph->hdrlen * 8;
-               proto = ph->nexthdr;
-       } else if (x->sel.family == AF_INET6) {
+       if (x->sel.family != AF_INET6) {
+               if (proto == IPPROTO_BEETPH) {
+                       struct ip_beet_phdr *ph =
+                               (struct ip_beet_phdr *)skb->data;
+
+                       skb->transport_header += ph->hdrlen * 8;
+                       proto = ph->nexthdr;
+               } else {
+                       skb->transport_header -= IPV4_BEET_PHMAXLEN;
+               }
+       } else {
                __be16 frag;
 
                skb->transport_header +=
                        ipv6_skip_exthdr(skb, 0, &proto, &frag);
                if (proto == IPPROTO_TCP)
                        skb_shinfo(skb)->gso_type |= SKB_GSO_TCPV4;
-       } else {
-               skb->transport_header -= IPV4_BEET_PHMAXLEN;
        }
 
        __skb_pull(skb, skb_transport_offset(skb));