]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
af_unix: Don't call skb_get() for OOB skb.
authorKuniyuki Iwashima <kuniyu@amazon.com>
Fri, 16 Aug 2024 23:39:21 +0000 (16:39 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 6 Jul 2025 09:00:11 +0000 (11:00 +0200)
commitaabb458c33d974b4e494b5277a210a90d3ad9439
treeeab6fd865e6c482312e89ab42342ec9b63f9b0bb
parent0919388ac44f8a0d7e448d8f85b075417ce75281
af_unix: Don't call skb_get() for OOB skb.

[ Upstream commit 8594d9b85c07f05e431bd07e895c2a3ad9b85d6f ]

Since introduced, OOB skb holds an additional reference count with no
special reason and caused many issues.

Also, kfree_skb() and consume_skb() are used to decrement the count,
which is confusing.

Let's drop the unnecessary skb_get() in queue_oob() and corresponding
kfree_skb(), consume_skb(), and skb_unref().

Now unix_sk(sk)->oob_skb is just a pointer to skb in the receive queue,
so special handing is no longer needed in GC.

Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Link: https://patch.msgid.link/20240816233921.57800-1-kuniyu@amazon.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Stable-dep-of: 32ca245464e1 ("af_unix: Don't leave consecutive consumed OOB skbs.")
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/unix/af_unix.c
net/unix/garbage.c