summaryrefslogtreecommitdiff
path: root/include/net/tcp.h
diff options
context:
space:
mode:
authorEric Dumazet <eric.dumazet@gmail.com>2012-01-31 18:45:40 (GMT)
committerDavid S. Miller <davem@davemloft.net>2012-02-01 07:11:47 (GMT)
commita8afca032998850ec63e83d555cdcf0eb5680cd6 (patch)
tree012c06f6b3a2bfa6a908954a671b1e36e2198eb6 /include/net/tcp.h
parent41de8d4cff21a2e81e3d9ff66f5f7c903f9c3ab1 (diff)
downloadlinux-a8afca032998850ec63e83d555cdcf0eb5680cd6.tar.xz
tcp: md5: protects md5sig_info with RCU
This patch makes sure we use appropriate memory barriers before publishing tp->md5sig_info, allowing tcp_md5_do_lookup() being used from tcp_v4_send_reset() without holding socket lock (upcoming patch from Shawn Lu) Note we also need to respect rcu grace period before its freeing, since we can free socket without this grace period thanks to SLAB_DESTROY_BY_RCU Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Cc: Shawn Lu <shawn.lu@ericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/tcp.h')
-rw-r--r--include/net/tcp.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/net/tcp.h b/include/net/tcp.h
index 10ae4c7..78880ba 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -1150,6 +1150,7 @@ struct tcp_md5sig_key {
/* - sock block */
struct tcp_md5sig_info {
struct hlist_head head;
+ struct rcu_head rcu;
};
/* - pseudo header */