diff options
author | Jakub Kicinski <jakub.kicinski@netronome.com> | 2019-08-30 13:25:47 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-09-01 09:44:28 +0300 |
commit | 15a7dea750e0162f273c6e61a94f96944b75b31e (patch) | |
tree | 3d5d9bed6fd3f7e42183e803c1540895d89c4b71 /include/net/inet_connection_sock.h | |
parent | ed6e8103ba72af6921989cf0cf2ccde5efa7af22 (diff) | |
download | linux-15a7dea750e0162f273c6e61a94f96944b75b31e.tar.xz |
net/tls: use RCU protection on icsk->icsk_ulp_data
We need to make sure context does not get freed while diag
code is interrogating it. Free struct tls_context with
kfree_rcu().
We add the __rcu annotation directly in icsk, and cast it
away in the datapath accessor. Presumably all ULPs will
do a similar thing.
Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/inet_connection_sock.h')
-rw-r--r-- | include/net/inet_connection_sock.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/net/inet_connection_sock.h b/include/net/inet_connection_sock.h index c57d53e7e02c..895546058a20 100644 --- a/include/net/inet_connection_sock.h +++ b/include/net/inet_connection_sock.h @@ -97,7 +97,7 @@ struct inet_connection_sock { const struct tcp_congestion_ops *icsk_ca_ops; const struct inet_connection_sock_af_ops *icsk_af_ops; const struct tcp_ulp_ops *icsk_ulp_ops; - void *icsk_ulp_data; + void __rcu *icsk_ulp_data; void (*icsk_clean_acked)(struct sock *sk, u32 acked_seq); struct hlist_node icsk_listen_portaddr_node; unsigned int (*icsk_sync_mss)(struct sock *sk, u32 pmtu); |