From: Jhonata Poma-Hansen <jhonata.poma@gmail.com>
To: "David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@kernel.org>,
Jakub Kicinski <kuba@kernel.org>,
Paolo Abeni <pabeni@redhat.com>, Simon Horman <horms@kernel.org>,
Shuah Khan <shuah@kernel.org>
Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-kselftest@vger.kernel.org,
Kuniyuki Iwashima <kuniyu@google.com>,
Marek Szyprowski <m.szyprowski@samsung.com>,
Jhonata Poma-Hansen <jhonata.poma@gmail.com>
Subject: [PATCH net v2 0/2] netlink: fix a dump livelock with a notification queued
Date: Tue, 27 Oct 2026 15:04:00 +0100 [thread overview]
Message-ID: <20261027-netlink-dump-livelock-v2-0-c4bb05352a33@gmail.com> (raw)
A netlink dump that starts while a notification is still charged to a
socket with a small receive buffer fails with ENOBUFS, and every retry
from recvmsg() fails the same way. A reader that peeks before reading,
as libnl does, never consumes the message at the head of the queue and
spins forever. I hit this with "iw dev wlan0 scan" on an arm64 board.
Patch 1 goes back to checking sk_rcvbuf before charging the dump skb,
as before commit ae8f160e7eb2. Patch 2 adds a selftest; it fails
without patch 1 and is skipped without the privileges to create a
netns.
---
Changes in v2:
- Patch 1: check sk_rcvbuf before charging instead of retrying with
the minimum skb size, which could still be rejected (Sashiko), and
refuse a skb that would take sk_rmem_alloc past INT_MAX.
- Patch 1: say how the bug was found and how the fix was tested.
- Patch 2: use SO_RCVBUF 2048, which also fails with v1, check the
NLMSG_DONE status and that a link was dumped, and skip without
privileges (Sashiko).
- Link to v1: https://patch.msgid.link/20261023-netlink-dump-livelock-v1-0-478214a635d2@gmail.com
To: "David S. Miller" <davem@davemloft.net>
To: Eric Dumazet <edumazet@kernel.org>
To: Jakub Kicinski <kuba@kernel.org>
To: Paolo Abeni <pabeni@redhat.com>
To: Simon Horman <horms@kernel.org>
To: Kuniyuki Iwashima <kuniyu@google.com>
To: Shuah Khan <shuah@kernel.org>
Cc: netdev@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-kselftest@vger.kernel.org
---
Jhonata Poma-Hansen (2):
netlink: check sk_rcvbuf before charging the dump skb
selftests: net: netlink-dumps: start a dump with a notification queued
net/netlink/af_netlink.c | 6 +-
tools/testing/selftests/net/netlink-dumps.c | 102 ++++++++++++++++++++++++++++
2 files changed, 107 insertions(+), 1 deletion(-)
---
base-commit: 734bef548a96e8774d6eef5dfa2026c6edc4e80b
change-id: 20261023-netlink-dump-livelock-e83cf13f977a
Best regards,
--
Jhonata Poma-Hansen <jhonata.poma@gmail.com>
WARNING: multiple messages have this Message-ID (diff)
From: Jhonata Poma-Hansen via B4 Relay <devnull+jhonata.poma.gmail.com@kernel.org>
To: "David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@kernel.org>,
Jakub Kicinski <kuba@kernel.org>,
Paolo Abeni <pabeni@redhat.com>, Simon Horman <horms@kernel.org>,
Shuah Khan <shuah@kernel.org>
Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-kselftest@vger.kernel.org,
Kuniyuki Iwashima <kuniyu@google.com>,
Marek Szyprowski <m.szyprowski@samsung.com>,
Jhonata Poma-Hansen <jhonata.poma@gmail.com>
Subject: [PATCH net v2 0/2] netlink: fix a dump livelock with a notification queued
Date: Tue, 27 Oct 2026 15:04:00 +0100 [thread overview]
Message-ID: <20261027-netlink-dump-livelock-v2-0-c4bb05352a33@gmail.com> (raw)
A netlink dump that starts while a notification is still charged to a
socket with a small receive buffer fails with ENOBUFS, and every retry
from recvmsg() fails the same way. A reader that peeks before reading,
as libnl does, never consumes the message at the head of the queue and
spins forever. I hit this with "iw dev wlan0 scan" on an arm64 board.
Patch 1 goes back to checking sk_rcvbuf before charging the dump skb,
as before commit ae8f160e7eb2. Patch 2 adds a selftest; it fails
without patch 1 and is skipped without the privileges to create a
netns.
---
Changes in v2:
- Patch 1: check sk_rcvbuf before charging instead of retrying with
the minimum skb size, which could still be rejected (Sashiko), and
refuse a skb that would take sk_rmem_alloc past INT_MAX.
- Patch 1: say how the bug was found and how the fix was tested.
- Patch 2: use SO_RCVBUF 2048, which also fails with v1, check the
NLMSG_DONE status and that a link was dumped, and skip without
privileges (Sashiko).
- Link to v1: https://patch.msgid.link/20261023-netlink-dump-livelock-v1-0-478214a635d2@gmail.com
To: "David S. Miller" <davem@davemloft.net>
To: Eric Dumazet <edumazet@kernel.org>
To: Jakub Kicinski <kuba@kernel.org>
To: Paolo Abeni <pabeni@redhat.com>
To: Simon Horman <horms@kernel.org>
To: Kuniyuki Iwashima <kuniyu@google.com>
To: Shuah Khan <shuah@kernel.org>
Cc: netdev@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-kselftest@vger.kernel.org
---
Jhonata Poma-Hansen (2):
netlink: check sk_rcvbuf before charging the dump skb
selftests: net: netlink-dumps: start a dump with a notification queued
net/netlink/af_netlink.c | 6 +-
tools/testing/selftests/net/netlink-dumps.c | 102 ++++++++++++++++++++++++++++
2 files changed, 107 insertions(+), 1 deletion(-)
---
base-commit: 734bef548a96e8774d6eef5dfa2026c6edc4e80b
change-id: 20261023-netlink-dump-livelock-e83cf13f977a
Best regards,
--
Jhonata Poma-Hansen <jhonata.poma@gmail.com>
next reply other threads:[~2026-10-27 14:04 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-27 14:04 Jhonata Poma-Hansen [this message]
2026-10-27 14:04 ` [PATCH net v2 0/2] netlink: fix a dump livelock with a notification queued Jhonata Poma-Hansen via B4 Relay
2026-10-27 14:04 ` [PATCH net v2 1/2] netlink: check sk_rcvbuf before charging the dump skb Jhonata Poma-Hansen
2026-10-27 14:04 ` Jhonata Poma-Hansen via B4 Relay
2026-10-27 16:17 ` Eric Dumazet
2026-10-30 2:05 ` netdev-bot+sashiko
2026-10-27 14:04 ` [PATCH net v2 2/2] selftests: net: netlink-dumps: start a dump with a notification queued Jhonata Poma-Hansen
2026-10-27 14:04 ` Jhonata Poma-Hansen via B4 Relay
2026-10-30 2:05 ` netdev-bot+sashiko
2026-10-29 16:30 ` [PATCH net v2 0/2] netlink: fix a dump livelock " patchwork-bot+netdevbpf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261027-netlink-dump-livelock-v2-0-c4bb05352a33@gmail.com \
--to=jhonata.poma@gmail.com \
--cc=davem@davemloft.net \
--cc=edumazet@kernel.org \
--cc=horms@kernel.org \
--cc=kuba@kernel.org \
--cc=kuniyu@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=m.szyprowski@samsung.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=shuah@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.