From: Stefan Metzmacher Date: Fri, 22 Aug 2025 12:49:18 +0000 (+0200) Subject: smb: server: pass struct smbdirect_socket to smb_direct_qpair_handler() X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f75c226db0d29ee422f9b3ffd0a4730e6c552fbe;p=thirdparty%2Fkernel%2Fstable.git smb: server: pass struct smbdirect_socket to smb_direct_qpair_handler() This will make it easier to move function to the common code in future. Cc: Namjae Jeon Cc: Steve French Cc: Tom Talpey Cc: linux-cifs@vger.kernel.org Cc: samba-technical@lists.samba.org Signed-off-by: Stefan Metzmacher Acked-by: Namjae Jeon Signed-off-by: Steve French --- diff --git a/fs/smb/server/transport_rdma.c b/fs/smb/server/transport_rdma.c index 8ca75afe082c9..9ccc0930e99e5 100644 --- a/fs/smb/server/transport_rdma.c +++ b/fs/smb/server/transport_rdma.c @@ -1639,8 +1639,7 @@ static int smb_direct_cm_handler(struct rdma_cm_id *cm_id, static void smb_direct_qpair_handler(struct ib_event *event, void *context) { - struct smb_direct_transport *t = context; - struct smbdirect_socket *sc = &t->socket; + struct smbdirect_socket *sc = context; ksmbd_debug(RDMA, "Received QP event. cm_id=%p, event=%s (%d)\n", sc->rdma.cm_id, ib_event_msg(event->event), event->event); @@ -1980,7 +1979,7 @@ static int smb_direct_create_qpair(struct smb_direct_transport *t, return ret; } - sc->ib.send_cq = ib_alloc_cq(sc->ib.dev, t, + sc->ib.send_cq = ib_alloc_cq(sc->ib.dev, sc, sp->send_credit_target + cap->max_rdma_ctxs, 0, IB_POLL_WORKQUEUE); if (IS_ERR(sc->ib.send_cq)) { @@ -1990,7 +1989,7 @@ static int smb_direct_create_qpair(struct smb_direct_transport *t, goto err; } - sc->ib.recv_cq = ib_alloc_cq(sc->ib.dev, t, + sc->ib.recv_cq = ib_alloc_cq(sc->ib.dev, sc, sp->recv_credit_max, 0, IB_POLL_WORKQUEUE); if (IS_ERR(sc->ib.recv_cq)) { pr_err("Can't create RDMA recv CQ\n"); @@ -2001,7 +2000,7 @@ static int smb_direct_create_qpair(struct smb_direct_transport *t, memset(&qp_attr, 0, sizeof(qp_attr)); qp_attr.event_handler = smb_direct_qpair_handler; - qp_attr.qp_context = t; + qp_attr.qp_context = sc; qp_attr.cap = *cap; qp_attr.sq_sig_type = IB_SIGNAL_REQ_WR; qp_attr.qp_type = IB_QPT_RC;