sock_map: Add a cond_resched() in sock_hash_free()
[ Upstream commit b1339be951ad31947ae19bc25cb08769bf255100 ]
Several syzbot soft lockup reports all have in common sock_hash_free()
If a map with a large number of buckets is destroyed, we need to yield
the cpu when needed.
Fixes: 75e68e5bf2
("bpf, sockhash: Synchronize delete from bucket list on map free")
Reported-by: syzbot <syzkaller@googlegroups.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Martin KaFai Lau <martin.lau@kernel.org>
Acked-by: John Fastabend <john.fastabend@gmail.com>
Link: https://lore.kernel.org/bpf/20240906154449.3742932-1-edumazet@google.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
557418e170
commit
1a11a1a532
@ -1219,6 +1219,7 @@ static void sock_hash_free(struct bpf_map *map)
|
||||
sock_put(elem->sk);
|
||||
sock_hash_free_elem(htab, elem);
|
||||
}
|
||||
cond_resched();
|
||||
}
|
||||
|
||||
/* wait for psock readers accessing its map link */
|
||||
|
Loading…
Reference in New Issue
Block a user