On 3/8/26 5:35 PM, Zhu Yanjun wrote:
> diff --git a/drivers/infiniband/sw/rxe/rxe_ns.c
> b/drivers/infiniband/sw/rxe/rxe_ns.c
> new file mode 100644
> index 000000000000..6fe056c81ef3
> --- /dev/null
> +++ b/drivers/infiniband/sw/rxe/rxe_ns.c
> @@ -0,0 +1,136 @@
> +// SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB
> +/*
> + * Copyright (c) 2016 Mellanox Technologies Ltd. All rights reserved.
> + * Copyright (c) 2015 System Fabric Works, Inc. All rights reserved.
neither of those copyrights are relevant here.
> +static void rxe_ns_exit(struct net *net)
> +{
> + /* called when the network namespace is removed
> + */
> + struct rxe_ns_sock *ns_sk = net_generic(net, rxe_pernet_id);
> + struct sock *sk;
> +
> + sk = rcu_dereference(ns_sk->rxe_sk4);
[ 323.527911] =============================
[ 323.527915] WARNING: suspicious RCU usage
[ 323.527918] 7.0.0-rc1-debug+ #3 Tainted: G W
[ 323.527922] -----------------------------
[ 323.527925] drivers/infiniband/sw/rxe/rxe_ns.c:49 suspicious
rcu_dereference_check() usage!
[ 323.527929]
> + if (sk) {
> + rcu_assign_pointer(ns_sk->rxe_sk4, NULL);
> + udp_tunnel_sock_release(sk->sk_socket);
> + }
> +
> +#if IS_ENABLED(CONFIG_IPV6)
> + sk = rcu_dereference(ns_sk->rxe_sk6);
[ 323.528243] =============================
[ 323.528245] WARNING: suspicious RCU usage
[ 323.528248] 7.0.0-rc1-debug+ #3 Tainted: G W
[ 323.528251] -----------------------------
[ 323.528253] drivers/infiniband/sw/rxe/rxe_ns.c:56 suspicious
rcu_dereference_check() usage!
you should always run tests with a debug kernel that has kmemleak and
lock debugging enabled.
> +#else /* IPV6 */
> +
> +struct sock *rxe_ns_pernet_sk6(struct net *net)
> +{
> + return NULL;
> +}
> +
> +void rxe_ns_pernet_set_sk6(struct net *net, struct sock *sk)
> +{
> +}
This branch is typically done as an inline in the header file.