diff options
author | Cong Wang <cwang@twopensource.com> | 2014-10-15 17:33:20 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-10-17 12:02:57 -0400 |
commit | 2077eebf7d8bf20b36524de45851e28111a60c52 (patch) | |
tree | 7724af3900f85889d4f0f4e17fb30db1fb94378b /net | |
parent | b7983e3f89dd960b2a6d156fd2200548c3300428 (diff) |
ipv4: call __ip_options_echo() in cookie_v4_check()
commit 971f10eca186cab238c49da ("tcp: better TCP_SKB_CB layout to reduce cache line misses")
missed that cookie_v4_check() still calls ip_options_echo() which uses
IPCB(). It should use TCPCB() at TCP layer, so call __ip_options_echo()
instead.
Fixes: commit 971f10eca186cab238c49da ("tcp: better TCP_SKB_CB layout to reduce cache line misses")
Cc: Krzysztof Kolasa <kkolasa@winsoft.pl>
Cc: Eric Dumazet <edumazet@google.com>
Reported-by: Krzysztof Kolasa <kkolasa@winsoft.pl>
Tested-by: Krzysztof Kolasa <kkolasa@winsoft.pl>
Signed-off-by: Cong Wang <cwang@twopensource.com>
Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/ipv4/syncookies.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv4/syncookies.c b/net/ipv4/syncookies.c index 0431a8f3c8f4..7e7401cdb9d7 100644 --- a/net/ipv4/syncookies.c +++ b/net/ipv4/syncookies.c | |||
@@ -321,7 +321,7 @@ struct sock *cookie_v4_check(struct sock *sk, struct sk_buff *skb, | |||
321 | int opt_size = sizeof(struct ip_options_rcu) + opt->optlen; | 321 | int opt_size = sizeof(struct ip_options_rcu) + opt->optlen; |
322 | 322 | ||
323 | ireq->opt = kmalloc(opt_size, GFP_ATOMIC); | 323 | ireq->opt = kmalloc(opt_size, GFP_ATOMIC); |
324 | if (ireq->opt != NULL && ip_options_echo(&ireq->opt->opt, skb)) { | 324 | if (ireq->opt != NULL && __ip_options_echo(&ireq->opt->opt, skb, opt)) { |
325 | kfree(ireq->opt); | 325 | kfree(ireq->opt); |
326 | ireq->opt = NULL; | 326 | ireq->opt = NULL; |
327 | } | 327 | } |