mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	mptcp: annotate lockless accesses around read-mostly fields
The following MPTCP socket fields: - can_ack - fully_established - rcv_data_fin - snd_data_fin_enable - rcv_fastclose - use_64bit_ack are accessed without any lock, add the appropriate annotation. The schema is safe as each field can change its value at most once in the whole mptcp socket life cycle. Signed-off-by: Paolo Abeni <pabeni@redhat.com> Reviewed-by: Mat Martineau <martineau@kernel.org> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
							parent
							
								
									b9f4554356
								
							
						
					
					
						commit
						28e5c13805
					
				
					 2 changed files with 8 additions and 8 deletions
				
			
		| 
						 | 
				
			
			@ -3149,16 +3149,16 @@ static int mptcp_disconnect(struct sock *sk, int flags)
 | 
			
		|||
	msk->cb_flags = 0;
 | 
			
		||||
	msk->push_pending = 0;
 | 
			
		||||
	msk->recovery = false;
 | 
			
		||||
	msk->can_ack = false;
 | 
			
		||||
	msk->fully_established = false;
 | 
			
		||||
	msk->rcv_data_fin = false;
 | 
			
		||||
	msk->snd_data_fin_enable = false;
 | 
			
		||||
	msk->rcv_fastclose = false;
 | 
			
		||||
	msk->use_64bit_ack = false;
 | 
			
		||||
	msk->bytes_consumed = 0;
 | 
			
		||||
	WRITE_ONCE(msk->can_ack, false);
 | 
			
		||||
	WRITE_ONCE(msk->fully_established, false);
 | 
			
		||||
	WRITE_ONCE(msk->rcv_data_fin, false);
 | 
			
		||||
	WRITE_ONCE(msk->snd_data_fin_enable, false);
 | 
			
		||||
	WRITE_ONCE(msk->rcv_fastclose, false);
 | 
			
		||||
	WRITE_ONCE(msk->use_64bit_ack, false);
 | 
			
		||||
	WRITE_ONCE(msk->csum_enabled, mptcp_is_checksum_enabled(sock_net(sk)));
 | 
			
		||||
	mptcp_pm_data_reset(msk);
 | 
			
		||||
	mptcp_ca_reset(sk);
 | 
			
		||||
	msk->bytes_consumed = 0;
 | 
			
		||||
	msk->bytes_acked = 0;
 | 
			
		||||
	msk->bytes_received = 0;
 | 
			
		||||
	msk->bytes_sent = 0;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -942,7 +942,7 @@ void mptcp_diag_fill_info(struct mptcp_sock *msk, struct mptcp_info *info)
 | 
			
		|||
	mptcp_data_unlock(sk);
 | 
			
		||||
 | 
			
		||||
	slow = lock_sock_fast(sk);
 | 
			
		||||
	info->mptcpi_csum_enabled = msk->csum_enabled;
 | 
			
		||||
	info->mptcpi_csum_enabled = READ_ONCE(msk->csum_enabled);
 | 
			
		||||
	info->mptcpi_token = msk->token;
 | 
			
		||||
	info->mptcpi_write_seq = msk->write_seq;
 | 
			
		||||
	info->mptcpi_retransmits = inet_csk(sk)->icsk_retransmits;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue