ipv4: Fix a data-race around sysctl_fib_sync_mem.
[ Upstream commit73318c4b7d
] While reading sysctl_fib_sync_mem, it can be changed concurrently. So, we need to add READ_ONCE() to avoid a data-race. Fixes:9ab948a91b
("ipv4: Allow amount of dirty memory from fib resizing to be controllable") Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Родитель
e2828e8c60
Коммит
9be8aac919
|
@ -497,7 +497,7 @@ static void tnode_free(struct key_vector *tn)
|
|||
tn = container_of(head, struct tnode, rcu)->kv;
|
||||
}
|
||||
|
||||
if (tnode_free_size >= sysctl_fib_sync_mem) {
|
||||
if (tnode_free_size >= READ_ONCE(sysctl_fib_sync_mem)) {
|
||||
tnode_free_size = 0;
|
||||
synchronize_rcu();
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче