Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

net: sock: replace sk_state_load with inet_sk_state_load and remove sk_state_store

sk_state_load is only used by AF_INET/AF_INET6, so rename it to
inet_sk_state_load and move it into inet_sock.h.

sk_state_store is removed as it is not used any more.

Signed-off-by: Yafang Shao <laoar.shao@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Yafang Shao and committed by
David S. Miller
986ffdfd 563e0bb0

+30 -32
+24 -1
include/net/inet_sock.h
··· 290 290 #endif 291 291 292 292 int inet_sk_rebuild_header(struct sock *sk); 293 - void inet_sk_set_state(struct sock *sk, int state); 293 + 294 + /** 295 + * inet_sk_state_load - read sk->sk_state for lockless contexts 296 + * @sk: socket pointer 297 + * 298 + * Paired with inet_sk_state_store(). Used in places we don't hold socket lock: 299 + * tcp_diag_get_info(), tcp_get_info(), tcp_poll(), get_tcp4_sock() ... 300 + */ 301 + static inline int inet_sk_state_load(const struct sock *sk) 302 + { 303 + /* state change might impact lockless readers. */ 304 + return smp_load_acquire(&sk->sk_state); 305 + } 306 + 307 + /** 308 + * inet_sk_state_store - update sk->sk_state 309 + * @sk: socket pointer 310 + * @newstate: new state 311 + * 312 + * Paired with inet_sk_state_load(). Should be used in contexts where 313 + * state change might impact lockless readers. 314 + */ 294 315 void inet_sk_state_store(struct sock *sk, int newstate); 316 + 317 + void inet_sk_set_state(struct sock *sk, int state); 295 318 296 319 static inline unsigned int __inet_ehashfn(const __be32 laddr, 297 320 const __u16 lport,
-25
include/net/sock.h
··· 2333 2333 return (1 << sk->sk_state) & (TCPF_LISTEN | TCPF_NEW_SYN_RECV); 2334 2334 } 2335 2335 2336 - /** 2337 - * sk_state_load - read sk->sk_state for lockless contexts 2338 - * @sk: socket pointer 2339 - * 2340 - * Paired with sk_state_store(). Used in places we do not hold socket lock : 2341 - * tcp_diag_get_info(), tcp_get_info(), tcp_poll(), get_tcp4_sock() ... 2342 - */ 2343 - static inline int sk_state_load(const struct sock *sk) 2344 - { 2345 - return smp_load_acquire(&sk->sk_state); 2346 - } 2347 - 2348 - /** 2349 - * sk_state_store - update sk->sk_state 2350 - * @sk: socket pointer 2351 - * @newstate: new state 2352 - * 2353 - * Paired with sk_state_load(). Should be used in contexts where 2354 - * state change might impact lockless readers. 2355 - */ 2356 - static inline void sk_state_store(struct sock *sk, int newstate) 2357 - { 2358 - smp_store_release(&sk->sk_state, newstate); 2359 - } 2360 - 2361 2336 void sock_enable_timestamp(struct sock *sk, int flag); 2362 2337 int sock_get_timestamp(struct sock *, struct timeval __user *); 2363 2338 int sock_get_timestampns(struct sock *, struct timespec __user *);
+1 -1
net/ipv4/inet_connection_sock.c
··· 685 685 int max_retries, thresh; 686 686 u8 defer_accept; 687 687 688 - if (sk_state_load(sk_listener) != TCP_LISTEN) 688 + if (inet_sk_state_load(sk_listener) != TCP_LISTEN) 689 689 goto drop; 690 690 691 691 max_retries = icsk->icsk_syn_retries ? : net->ipv4.sysctl_tcp_synack_retries;
+2 -2
net/ipv4/tcp.c
··· 502 502 503 503 sock_poll_wait(file, sk_sleep(sk), wait); 504 504 505 - state = sk_state_load(sk); 505 + state = inet_sk_state_load(sk); 506 506 if (state == TCP_LISTEN) 507 507 return inet_csk_listen_poll(sk); 508 508 ··· 2916 2916 if (sk->sk_type != SOCK_STREAM) 2917 2917 return; 2918 2918 2919 - info->tcpi_state = sk_state_load(sk); 2919 + info->tcpi_state = inet_sk_state_load(sk); 2920 2920 2921 2921 /* Report meaningful fields for all TCP states, including listeners */ 2922 2922 rate = READ_ONCE(sk->sk_pacing_rate);
+1 -1
net/ipv4/tcp_diag.c
··· 24 24 { 25 25 struct tcp_info *info = _info; 26 26 27 - if (sk_state_load(sk) == TCP_LISTEN) { 27 + if (inet_sk_state_load(sk) == TCP_LISTEN) { 28 28 r->idiag_rqueue = sk->sk_ack_backlog; 29 29 r->idiag_wqueue = sk->sk_max_ack_backlog; 30 30 } else if (sk->sk_type == SOCK_STREAM) {
+1 -1
net/ipv4/tcp_ipv4.c
··· 2281 2281 timer_expires = jiffies; 2282 2282 } 2283 2283 2284 - state = sk_state_load(sk); 2284 + state = inet_sk_state_load(sk); 2285 2285 if (state == TCP_LISTEN) 2286 2286 rx_queue = sk->sk_ack_backlog; 2287 2287 else
+1 -1
net/ipv6/tcp_ipv6.c
··· 1795 1795 timer_expires = jiffies; 1796 1796 } 1797 1797 1798 - state = sk_state_load(sp); 1798 + state = inet_sk_state_load(sp); 1799 1799 if (state == TCP_LISTEN) 1800 1800 rx_queue = sp->sk_ack_backlog; 1801 1801 else