Patch "lib: alloc_tag_module_unload must wait for pending kfree_rcu calls" has been added to the 6.11-stable tree
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 11 lines · Sasha Levin
This is a note to let you know that I've just added the patch titled
lib:
alloc_tag_module_unloadmust wait for pendingkfree_rcucallsto the 6.11-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summaryThe filename of the patch is:
lib-alloc_tag_module_unload-must-wait-for-pending-kf.patch
and it can be found in the queue-6.11 subdirectory.
Thanks Sasha! Could you please double-check that the prerequisite patch https://lore.kernel.org/all/[email protected]/
was also picked up? I don't see it in the queue-6.11 directory. Without that patch this one will cause build errors, that's why I sent them as a patchset.
Thanks,
Suren.
Quoted 65 lines
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
commit
536dfe685ebd28b27ebfbc3d4b9168207b7e28a3Author: Florian Westphal <[email protected]> Date: Mon Oct 7 22:52:24 2024 +0200lib:
alloc_tag_module_unloadmust wait for pendingkfree_rcucalls[ Upstream commit
dc783ba4b9df3fb3e76e968b2cbeb9960069263c]Ben Greear reports following splat:
------------[ cut here ]------------
net/netfilter/nf_nat_core.c:1114modulenf_natfunc:nf_nat_register_fn has 256 allocated at module unload
WARNING: CPU: 1 PID: 10421 atlib/alloc_tag.c:168alloc_tag_module_unload+0x22b/0x3f0Modules linked in:nf_nat(-)btrfs ufs qnx4 hfsplus hfs minix vfat msdos fat
...
Hardware name: Default string Default string/SKYBAY, BIOS 5.12 08/04/2020
RIP: 0010:alloc_tag_module_unload+0x22b/0x3f0
codetag_unload_module+0x19b/0x2a0
?codetag_load_module+0x80/0x80
nf_natmodule exit callskfree_rcuon those addresses, but the free operation is likely still pending by the timealloc_tagchecks for leaks.Wait for outstanding
kfree_rcuoperations to complete before checking resolves this warning.Reproducer:
unshare -n iptables-nft -t nat -A PREROUTING -p tcp grepnf_nat/proc/allocinfo# will list 4 allocations rmmodnft_chain_nat
rmmodnf_nat# will WARN.[[email protected]: add comment]Fixes a473573964e5 ("lib: code tagging module support")Signed-off-by Florian Westphal <[email protected]>Reported-by Ben Greear <[email protected]>Cc Uladzislau Rezki <[email protected]>Cc Vlastimil Babka <[email protected]>Cc Suren Baghdasaryan <[email protected]>Cc Kent Overstreet <[email protected]>Cc <[email protected]>Signed-off-by Andrew Morton <[email protected]>Signed-off-by Sasha Levin <[email protected]>lib/codetag.c +3
-0@@ -228,6 +228,9 @@ bool codetag_unload_module(struct module *mod)if (!mod)return true; +/* await any module's kfree_rcu() operations to complete */ +kvfree_rcu_barrier (); +mutex_lock (&codetag_lock);list_for_each_entry (cttype, &codetag_types, link) {struct codetag_module *found =NULL ;