forked from mirrors/linux
		
	net: Fix data-races around sysctl_mem.
While reading .sysctl_mem, it can be changed concurrently.
So, we need to add READ_ONCE() to avoid data-races.
Fixes: 1da177e4c3 ("Linux-2.6.12-rc2")
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
			
			
This commit is contained in:
		
							parent
							
								
									3d32edf1f3
								
							
						
					
					
						commit
						310731e2f1
					
				
					 1 changed files with 1 additions and 1 deletions
				
			
		|  | @ -1529,7 +1529,7 @@ void __sk_mem_reclaim(struct sock *sk, int amount); | ||||||
| /* sysctl_mem values are in pages, we convert them in SK_MEM_QUANTUM units */ | /* sysctl_mem values are in pages, we convert them in SK_MEM_QUANTUM units */ | ||||||
| static inline long sk_prot_mem_limits(const struct sock *sk, int index) | static inline long sk_prot_mem_limits(const struct sock *sk, int index) | ||||||
| { | { | ||||||
| 	long val = sk->sk_prot->sysctl_mem[index]; | 	long val = READ_ONCE(sk->sk_prot->sysctl_mem[index]); | ||||||
| 
 | 
 | ||||||
| #if PAGE_SIZE > SK_MEM_QUANTUM | #if PAGE_SIZE > SK_MEM_QUANTUM | ||||||
| 	val <<= PAGE_SHIFT - SK_MEM_QUANTUM_SHIFT; | 	val <<= PAGE_SHIFT - SK_MEM_QUANTUM_SHIFT; | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Kuniyuki Iwashima
						Kuniyuki Iwashima