Re: [syzbot] [rdma] general protection fault in kernel_sock_shutdown (4)

From: Edward Adam Davis

Date: Sat May 16 2026 - 08:40:55 EST


#syz test

diff --git a/drivers/infiniband/sw/rxe/rxe_net.c b/drivers/infiniband/sw/rxe/rxe_net.c
index 50a2cb5405e2..92847e955ca2 100644
--- a/drivers/infiniband/sw/rxe/rxe_net.c
+++ b/drivers/infiniband/sw/rxe/rxe_net.c
@@ -642,6 +642,8 @@ static void rxe_sock_put(struct sock *sk,
}
}

+static DEFINE_MUTEX(rxe_net_del_mutex);
+
void rxe_net_del(struct ib_device *dev)
{
struct rxe_dev *rxe = container_of(dev, struct rxe_dev, ib_dev);
@@ -649,9 +651,10 @@ void rxe_net_del(struct ib_device *dev)
struct sock *sk;
struct net *net;

+ mutex_lock(&rxe_net_del_mutex);
ndev = rxe_ib_device_get_netdev(&rxe->ib_dev);
if (!ndev)
- return;
+ goto out;

net = dev_net(ndev);

@@ -664,6 +667,8 @@ void rxe_net_del(struct ib_device *dev)
rxe_sock_put(sk, rxe_ns_pernet_set_sk6, net);

dev_put(ndev);
+out:
+ mutex_unlock(&rxe_net_del_mutex);
}

static void rxe_port_event(struct rxe_dev *rxe,