tcp6: don't move IP6CB before xfrm6_policy_check()
authorNicolas Dichtel <nicolas.dichtel@6wind.com>
Mon, 22 Dec 2014 17:22:48 +0000 (18:22 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 22 Dec 2014 21:48:01 +0000 (16:48 -0500)
commit2dc49d1680b534877fd20cce52557ea542bb06b6
tree888c8e5c7d12add3684c02010d1ef3902a35a4f5
parent5ad24def21b205a8e91925cd276b0a794b5ace82
tcp6: don't move IP6CB before xfrm6_policy_check()

When xfrm6_policy_check() is used, _decode_session6() is called after some
intermediate functions. This function uses IP6CB(), thus TCP_SKB_CB() must be
prepared after the call of xfrm6_policy_check().

Before this patch, scenarii with IPv6 + TCP + IPsec Transport are broken.

Fixes: 971f10eca186 ("tcp: better TCP_SKB_CB layout to reduce cache line misses")
Reported-by: Huaibin Wang <huaibin.wang@6wind.com>
Suggested-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/tcp_ipv6.c