]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - net/ipv6/esp6_offload.c
net: hns3: fix for rss result nonuniform
[linux.git] / net / ipv6 / esp6_offload.c
index 6177e217117189d1b9d422958618443c3e4a0f7f..d46b4eb645c2e81993119b9a37405aa4b5eb82b3 100644 (file)
@@ -68,11 +68,12 @@ static struct sk_buff *esp6_gro_receive(struct list_head *head,
 
        xo = xfrm_offload(skb);
        if (!xo || !(xo->flags & CRYPTO_DONE)) {
-               err = secpath_set(skb);
-               if (err)
+               struct sec_path *sp = secpath_set(skb);
+
+               if (!sp)
                        goto out;
 
-               if (skb->sp->len == XFRM_MAX_DEPTH)
+               if (sp->len == XFRM_MAX_DEPTH)
                        goto out;
 
                x = xfrm_state_lookup(dev_net(skb->dev), skb->mark,
@@ -81,8 +82,8 @@ static struct sk_buff *esp6_gro_receive(struct list_head *head,
                if (!x)
                        goto out;
 
-               skb->sp->xvec[skb->sp->len++] = x;
-               skb->sp->olen++;
+               sp->xvec[sp->len++] = x;
+               sp->olen++;
 
                xo = xfrm_offload(skb);
                if (!xo) {
@@ -141,6 +142,7 @@ static struct sk_buff *esp6_gso_segment(struct sk_buff *skb,
        struct crypto_aead *aead;
        netdev_features_t esp_features = features;
        struct xfrm_offload *xo = xfrm_offload(skb);
+       struct sec_path *sp;
 
        if (!xo)
                return ERR_PTR(-EINVAL);
@@ -148,7 +150,8 @@ static struct sk_buff *esp6_gso_segment(struct sk_buff *skb,
        if (!(skb_shinfo(skb)->gso_type & SKB_GSO_ESP))
                return ERR_PTR(-EINVAL);
 
-       x = skb->sp->xvec[skb->sp->len - 1];
+       sp = skb_sec_path(skb);
+       x = sp->xvec[sp->len - 1];
        aead = x->data;
        esph = ip_esp_hdr(skb);