[PATCH net, 1/2] net: core: Fix missing init of llist_node in setup_net()

Haiyang Zhang posted 2 patches 2 months, 2 weeks ago
[PATCH net, 1/2] net: core: Fix missing init of llist_node in setup_net()
Posted by Haiyang Zhang 2 months, 2 weeks ago
From: Haiyang Zhang <haiyangz@microsoft.com>

Add init_llist_node for lock-less list nodes in struct net in
setup_net(), so we can test if a node is on a list or not.

Cc: stable@vger.kernel.org
Fixes: d6b3358a2813 ("llist: add interface to check if a node is on a list.")
Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
---
 net/core/net_namespace.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c
index ae54f26709ca..2a821849558f 100644
--- a/net/core/net_namespace.c
+++ b/net/core/net_namespace.c
@@ -434,6 +434,9 @@ static __net_init int setup_net(struct net *net)
 	LIST_HEAD(net_exit_list);
 	int error = 0;
 
+	init_llist_node(&net->defer_free_list);
+	init_llist_node(&net->cleanup_list);
+
 	preempt_disable();
 	net->net_cookie = gen_cookie_next(&net_cookie);
 	preempt_enable();
-- 
2.34.1
Re: [PATCH net, 1/2] net: core: Fix missing init of llist_node in setup_net()
Posted by Kuniyuki Iwashima 2 months, 2 weeks ago
On Tue, Jul 22, 2025 at 4:51 PM Haiyang Zhang
<haiyangz@linux.microsoft.com> wrote:
>
> From: Haiyang Zhang <haiyangz@microsoft.com>
>
> Add init_llist_node for lock-less list nodes in struct net in
> setup_net(), so we can test if a node is on a list or not.
>
> Cc: stable@vger.kernel.org
> Fixes: d6b3358a2813 ("llist: add interface to check if a node is on a list.")

No Fixes tag is needed because we didn't have a need to
test if net is queued for destruction.


> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
> ---
>  net/core/net_namespace.c | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c
> index ae54f26709ca..2a821849558f 100644
> --- a/net/core/net_namespace.c
> +++ b/net/core/net_namespace.c
> @@ -434,6 +434,9 @@ static __net_init int setup_net(struct net *net)
>         LIST_HEAD(net_exit_list);
>         int error = 0;
>
> +       init_llist_node(&net->defer_free_list);
> +       init_llist_node(&net->cleanup_list);
> +
>         preempt_disable();
>         net->net_cookie = gen_cookie_next(&net_cookie);
>         preempt_enable();
> --
> 2.34.1
>