On Sun, Jun 30, 2024 at 08:55:56PM +0800, Wen Gu wrote: > Hi stable team, > > Could you please backport [1] to linux-5.10.y? > > I noticed a regression caused by [2], which was merged to linux-5.10.y since v5.10.80. > > After sock_map_unhash() helper was removed in [2], sock elems added to the bpf sock map > via sock_hash_update_common() cannot be removed if they are in the icsk_accept_queue > of the listener sock. Since they have not been accept()ed, they cannot be removed via > sock_map_close()->sock_map_remove_links() either. > > It can be reproduced in network test with short-lived connections. If the server is > stopped during the test, there is a probability that some sock elems will remain in > the bpf sock map. > > And with [1], the sock_map_destroy() helper is introduced to invoke sock_map_remove_links() > when inet_csk_listen_stop()->inet_child_forget()->inet_csk_destroy_sock(), to remove the > sock elems from the bpf sock map in such situation. > > [1] d8616ee2affc ("bpf, sockmap: Fix sk->sk_forward_alloc warn_on in sk_stream_kill_queues") > (link: https://lore.kernel.org/all/20220524075311.649153-1-wangyufen@xxxxxxxxxx/) > [2] 8b5c98a67c1b ("bpf, sockmap: Remove unhash handler for BPF sockmap usage") > (link: https://lore.kernel.org/all/20211103204736.248403-3-john.fastabend@xxxxxxxxx/) As there is fuzz with this patch, please send a backported, and tested, version of this patch so we can include it and properly show who it was requested from. thanks, greg k-h