* [PATCH net] netlink: Do not call the unbind callback with the table locked
@ 2026-11-02 12:09 Anil Kaushik
2026-11-02 12:13 ` netdev-bot+sinfo
0 siblings, 1 reply; 4+ messages in thread
From: Anil Kaushik @ 2026-11-02 12:09 UTC (permalink / raw)
To: netdev
Cc: David S . Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Simon Horman, Nicolas Dichtel, linux-kernel, Anil Kaushik
When netlink_bind() fails to insert the socket, it calls
netlink_undo_bind() with the table locked. genl_unbind() then takes
cb_lock, while genl_unregister_family() and genl_register_family() take
cb_lock for writing and then wait in netlink_table_grab() for the table
users to go away:
netlink_bind() genl_unregister_family()
netlink_lock_table() down_write(&cb_lock)
netlink_insert() fails
netlink_undo_bind() netlink_table_grab()
genl_unbind() waits for nl_table_users == 0
down_read(&cb_lock)
An unprivileged user can get here by binding to a port ID that is in
use, with nl_groups set. Lockdep does not see it, as nl_table_users is a
plain counter.
Unlock the table first, as the comment in netlink_release() asks for.
Link: https://netdev-ai.bots.linux.dev/sashiko/#/patchset/20261101101347.3910654-1-anilkaushikwireless@gmail.com
Fixes: 3de21a8990d3 ("genetlink: Add per family bind/unbind callbacks")
Signed-off-by: Anil Kaushik <anilkaushikwireless@gmail.com>
---
net/netlink/af_netlink.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
index fec2879c497d..666a0ba03ca1 100644
--- a/net/netlink/af_netlink.c
+++ b/net/netlink/af_netlink.c
@@ -1047,8 +1047,9 @@ static int netlink_bind(struct socket *sock, struct sockaddr_unsized *addr,
netlink_insert(sk, nladdr->nl_pid) :
netlink_autobind(sock);
if (err) {
+ netlink_unlock_table();
netlink_undo_bind(BITS_PER_TYPE(u32), groups, sk);
- goto unlock;
+ return err;
}
}
--
2.25.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH net] netlink: Do not call the unbind callback with the table locked
2026-11-02 12:09 [PATCH net] netlink: Do not call the unbind callback with the table locked Anil Kaushik
@ 2026-11-02 12:13 ` netdev-bot+sinfo
2026-11-02 12:53 ` Anil Kaushik
0 siblings, 1 reply; 4+ messages in thread
From: netdev-bot+sinfo @ 2026-11-02 12:13 UTC (permalink / raw)
To: Anil Kaushik
Cc: netdev, David S . Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Simon Horman, Nicolas Dichtel, linux-kernel
Hi!
This is an automated message. This series looks like a fix, but its
commit messages seem to be missing some information:
- Whether the issue was actually triggered, or is only theoretical
(e.g. found by code inspection). If it was triggered please include
the symptoms, like the stack trace or error messages.
Please do not repost the series just to address the above. Instead,
reply to this email with the missing information, so that reviewers
can take it into account. If the series needs another revision for
other reasons, please include the information in the commit messages
then.
The evaluation is done by an LLM so it may be wrong, if you think
that is the case please reply and explain.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH net] netlink: Do not call the unbind callback with the table locked
2026-11-02 12:13 ` netdev-bot+sinfo
@ 2026-11-02 12:53 ` Anil Kaushik
2026-11-02 14:35 ` Anil Kaushik
0 siblings, 1 reply; 4+ messages in thread
From: Anil Kaushik @ 2026-11-02 12:53 UTC (permalink / raw)
To: netdev-bot+sinfo
Cc: netdev, David S . Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Simon Horman, Nicolas Dichtel, linux-kernel
On Mon, Nov 2, 2026 at 5:43 PM <netdev-bot+sinfo@kernel.org> wrote:
>
> Hi!
>
> This is an automated message. This series looks like a fix, but its
> commit messages seem to be missing some information:
>
> - Whether the issue was actually triggered, or is only theoretical
> (e.g. found by code inspection). If it was triggered please include
> the symptoms, like the stack trace or error messages.
>
> Please do not repost the series just to address the above. Instead,
> reply to this email with the missing information, so that reviewers
> can take it into account. If the series needs another revision for
> other reasons, please include the information in the commit messages
> then.
>
> The evaluation is done by an LLM so it may be wrong, if you think
> that is the case please reply and explain.
Found by Sashiko, not seen in production. I triggered the hang in a
VM, with a test-only msleep() to widen the window. It does not hang
with this patch.
Regards
Anil
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH net] netlink: Do not call the unbind callback with the table locked
2026-11-02 12:53 ` Anil Kaushik
@ 2026-11-02 14:35 ` Anil Kaushik
0 siblings, 0 replies; 4+ messages in thread
From: Anil Kaushik @ 2026-11-02 14:35 UTC (permalink / raw)
To: netdev-bot+sinfo
Cc: netdev, David S . Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Simon Horman, Nicolas Dichtel, linux-kernel,
stanislaw.gruszka, Jiri Pirko
Sorry , missed adding Stanislaw and Jiri
Anil
On Mon, Nov 2, 2026 at 6:23 PM Anil Kaushik
<anilkaushikwireless@gmail.com> wrote:
>
> On Mon, Nov 2, 2026 at 5:43 PM <netdev-bot+sinfo@kernel.org> wrote:
> >
> > Hi!
> >
> > This is an automated message. This series looks like a fix, but its
> > commit messages seem to be missing some information:
> >
> > - Whether the issue was actually triggered, or is only theoretical
> > (e.g. found by code inspection). If it was triggered please include
> > the symptoms, like the stack trace or error messages.
> >
> > Please do not repost the series just to address the above. Instead,
> > reply to this email with the missing information, so that reviewers
> > can take it into account. If the series needs another revision for
> > other reasons, please include the information in the commit messages
> > then.
> >
> > The evaluation is done by an LLM so it may be wrong, if you think
> > that is the case please reply and explain.
>
> Found by Sashiko, not seen in production. I triggered the hang in a
> VM, with a test-only msleep() to widen the window. It does not hang
> with this patch.
>
> Regards
> Anil
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-11-02 14:36 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-11-02 12:09 [PATCH net] netlink: Do not call the unbind callback with the table locked Anil Kaushik
2026-11-02 12:13 ` netdev-bot+sinfo
2026-11-02 12:53 ` Anil Kaushik
2026-11-02 14:35 ` Anil Kaushik
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®