RE: [EXTERNAL] [PATCH] RDMA: initialize return values for empty work request lists
From: Long Li
Date: Wed Jun 17 2026 - 16:10:34 EST
> erdma_post_recv() and mana_ib_post_send() both return their loop status
> variable after walking a work request list. If the caller passes an empty list, the
> loop is skipped and the variable is not assigned. Initialize the return value to 0
> for the empty-list success path.
>
> Signed-off-by: Ruoyu Wang <ruoyuw560@xxxxxxxxx>
The code change for mana looks good to me.
It's better to have two patches, each targeting a different driver. And each should have a "Fixes:" tag for that driver.
> ---
> drivers/infiniband/hw/erdma/erdma_qp.c | 2 +-
> drivers/infiniband/hw/mana/wr.c | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/infiniband/hw/erdma/erdma_qp.c
> b/drivers/infiniband/hw/erdma/erdma_qp.c
> index 25f6c49aec779..e002343832f74 100644
> --- a/drivers/infiniband/hw/erdma/erdma_qp.c
> +++ b/drivers/infiniband/hw/erdma/erdma_qp.c
> @@ -734,7 +734,7 @@ int erdma_post_recv(struct ib_qp *ibqp, const struct
> ib_recv_wr *recv_wr,
> const struct ib_recv_wr *wr = recv_wr;
> struct erdma_qp *qp = to_eqp(ibqp);
> unsigned long flags;
> - int ret;
> + int ret = 0;
>
> spin_lock_irqsave(&qp->lock, flags);
>
> diff --git a/drivers/infiniband/hw/mana/wr.c
> b/drivers/infiniband/hw/mana/wr.c index 1813567d3b16c..36a1d506f08f6
> 100644
> --- a/drivers/infiniband/hw/mana/wr.c
> +++ b/drivers/infiniband/hw/mana/wr.c
> @@ -144,7 +144,7 @@ static int mana_ib_post_send_ud(struct mana_ib_qp
> *qp, const struct ib_ud_wr *wr int mana_ib_post_send(struct ib_qp *ibqp,
> const struct ib_send_wr *wr,
> const struct ib_send_wr **bad_wr) {
> - int err;
> + int err = 0;
> struct mana_ib_qp *qp = container_of(ibqp, struct mana_ib_qp, ibqp);
>
> for (; wr; wr = wr->next) {
> --
> 2.51.0