]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
netfilter: nfnetlink_queue: nfqnl_instance GFP_ATOMIC -> GFP_KERNEL_ACCOUNT allocation
authorScott Mitchell <scott.k.mitch1@gmail.com>
Sat, 17 Jan 2026 17:32:30 +0000 (09:32 -0800)
committerFlorian Westphal <fw@strlen.de>
Tue, 20 Jan 2026 15:23:37 +0000 (16:23 +0100)
commita4400a5b343d1bc4aa8f685608515413238e7ee2
tree97df4ee1d7001df50f98be36cee3bdaf0d88da80
parentd00453b6e3a3d2340b88c5292c3c5b5f9c4ece75
netfilter: nfnetlink_queue: nfqnl_instance GFP_ATOMIC -> GFP_KERNEL_ACCOUNT allocation

Currently, instance_create() uses GFP_ATOMIC because it's called while
holding instances_lock spinlock. This makes allocation more likely to
fail under memory pressure.

Refactor nfqnl_recv_config() to drop RCU lock after instance_lookup()
and peer_portid verification. A socket cannot simultaneously send a
message and close, so the queue owned by the sending socket cannot be
destroyed while processing its CONFIG message. This allows
instance_create() to allocate with GFP_KERNEL_ACCOUNT before taking
the spinlock.

Suggested-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Scott Mitchell <scott.k.mitch1@gmail.com>
Signed-off-by: Florian Westphal <fw@strlen.de>
net/netfilter/nfnetlink_queue.c