]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
xfrm: prefer family stored in xfrm_mode struct
authorFlorian Westphal <fw@strlen.de>
Fri, 29 Mar 2019 20:16:23 +0000 (21:16 +0100)
committerSteffen Klassert <steffen.klassert@secunet.com>
Mon, 8 Apr 2019 07:14:12 +0000 (09:14 +0200)
Now that we have the family available directly in the
xfrm_mode struct, we can use that and avoid one extra dereference.

Signed-off-by: Florian Westphal <fw@strlen.de>
Reviewed-by: Sabrina Dubroca <sd@queasysnail.net>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
net/ipv4/ip_vti.c
net/ipv6/ip6_vti.c
net/xfrm/xfrm_input.c
net/xfrm/xfrm_interface.c

index a8474799fb7983393a96a3c0620575e6f13f6b77..3f3f6d6be318eddf016e8b7028207624b8a50e0c 100644 (file)
@@ -137,7 +137,7 @@ static int vti_rcv_cb(struct sk_buff *skb, int err)
                }
        }
 
-       family = inner_mode->afinfo->family;
+       family = inner_mode->family;
 
        skb->mark = be32_to_cpu(tunnel->parms.i_key);
        ret = xfrm_policy_check(NULL, XFRM_POLICY_IN, skb, family);
index 8b6eefff2f7eaf624d854064b5f4b31121ba5079..369803c581b76a9e243698d608c1276cb140ab90 100644 (file)
@@ -372,7 +372,7 @@ static int vti6_rcv_cb(struct sk_buff *skb, int err)
                }
        }
 
-       family = inner_mode->afinfo->family;
+       family = inner_mode->family;
 
        skb->mark = be32_to_cpu(t->parms.i_key);
        ret = xfrm_policy_check(NULL, XFRM_POLICY_IN, skb, family);
index b3b613660d441605a8c8383cf05119db82af1ea0..ea5ac053c15dfa217ede083b1cf97aa5a7639472 100644 (file)
@@ -216,7 +216,7 @@ int xfrm_input(struct sk_buff *skb, int nexthdr, __be32 spi, int encap_type)
                        goto drop;
                }
 
-               family = x->outer_mode->afinfo->family;
+               family = x->outer_mode->family;
 
                /* An encap_type of -1 indicates async resumption. */
                if (encap_type == -1) {
@@ -425,7 +425,7 @@ int xfrm_input(struct sk_buff *skb, int nexthdr, __be32 spi, int encap_type)
                 * transport mode so the outer address is identical.
                 */
                daddr = &x->id.daddr;
-               family = x->outer_mode->afinfo->family;
+               family = x->outer_mode->family;
 
                err = xfrm_parse_spi(skb, nexthdr, &spi, &seq);
                if (err < 0) {
index dbb3c1945b5c911b5933f60b284015a91524c832..93efb0965e7d4a1e1b93ce15c1cd7d99bdf18ed6 100644 (file)
@@ -285,7 +285,7 @@ static int xfrmi_rcv_cb(struct sk_buff *skb, int err)
                }
 
                if (!xfrm_policy_check(NULL, XFRM_POLICY_IN, skb,
-                                      inner_mode->afinfo->family))
+                                      inner_mode->family))
                        return -EPERM;
        }