Revert "xfrm: Use actual socket sk instead of skb socket for xfrm_output_resume"

The reverted CL makes CtsnetTestCases fails on
  CtsNetTestCases:android.net.cts.IpSecManagerTest#testAesGcm128Tcp6

Bug: 186608065
Bug: 197517655
Test: CtsNetTestCases
Change-Id: I65eb4e45623af5d6ff8ec634ac11aa039f5cceef
Signed-off-by: Howard Chen <howardsoc@google.com>
Signed-off-by: Alistair Delva <adelva@google.com>
This commit is contained in:
Howard Chen
2021-05-13 11:16:04 +08:00
committed by Alistair Delva
parent fc6ab4da31
commit a5e266c7e8
6 changed files with 10 additions and 10 deletions

View File

@@ -1579,7 +1579,7 @@ int xfrm_trans_queue_net(struct net *net, struct sk_buff *skb,
int xfrm_trans_queue(struct sk_buff *skb,
int (*finish)(struct net *, struct sock *,
struct sk_buff *));
int xfrm_output_resume(struct sock *sk, struct sk_buff *skb, int err);
int xfrm_output_resume(struct sk_buff *skb, int err);
int xfrm_output(struct sock *sk, struct sk_buff *skb);
int pktgen_xfrm_outer_mode_output(struct xfrm_state *x, struct sk_buff *skb);

View File

@@ -141,7 +141,7 @@ static void ah_output_done(struct crypto_async_request *base, int err)
}
kfree(AH_SKB_CB(skb)->tmp);
xfrm_output_resume(skb->sk, skb, err);
xfrm_output_resume(skb, err);
}
static int ah_output(struct xfrm_state *x, struct sk_buff *skb)

View File

@@ -277,7 +277,7 @@ static void esp_output_done(struct crypto_async_request *base, int err)
x->encap && x->encap->encap_type == TCP_ENCAP_ESPINTCP)
esp_output_tail_tcp(x, skb);
else
xfrm_output_resume(skb->sk, skb, err);
xfrm_output_resume(skb, err);
}
}

View File

@@ -316,7 +316,7 @@ static void ah6_output_done(struct crypto_async_request *base, int err)
}
kfree(AH_SKB_CB(skb)->tmp);
xfrm_output_resume(skb->sk, skb, err);
xfrm_output_resume(skb, err);
}
static int ah6_output(struct xfrm_state *x, struct sk_buff *skb)

View File

@@ -314,7 +314,7 @@ static void esp_output_done(struct crypto_async_request *base, int err)
x->encap && x->encap->encap_type == TCP_ENCAP_ESPINTCP)
esp_output_tail_tcp(x, skb);
else
xfrm_output_resume(skb->sk, skb, err);
xfrm_output_resume(skb, err);
}
}

View File

@@ -578,22 +578,22 @@ out:
return err;
}
int xfrm_output_resume(struct sock *sk, struct sk_buff *skb, int err)
int xfrm_output_resume(struct sk_buff *skb, int err)
{
struct net *net = xs_net(skb_dst(skb)->xfrm);
while (likely((err = xfrm_output_one(skb, err)) == 0)) {
nf_reset_ct(skb);
err = skb_dst(skb)->ops->local_out(net, sk, skb);
err = skb_dst(skb)->ops->local_out(net, skb->sk, skb);
if (unlikely(err != 1))
goto out;
if (!skb_dst(skb)->xfrm)
return dst_output(net, sk, skb);
return dst_output(net, skb->sk, skb);
err = nf_hook(skb_dst(skb)->ops->family,
NF_INET_POST_ROUTING, net, sk, skb,
NF_INET_POST_ROUTING, net, skb->sk, skb,
NULL, skb_dst(skb)->dev, xfrm_output2);
if (unlikely(err != 1))
goto out;
@@ -609,7 +609,7 @@ EXPORT_SYMBOL_GPL(xfrm_output_resume);
static int xfrm_output2(struct net *net, struct sock *sk, struct sk_buff *skb)
{
return xfrm_output_resume(sk, skb, 1);
return xfrm_output_resume(skb, 1);
}
static int xfrm_output_gso(struct net *net, struct sock *sk, struct sk_buff *skb)