[rds-devel] [External] : Re: [PATCH rdma-next v6] RDMA: Change capability fields in ib_device_attr from int to u32

Bart Van Assche bvanassche at acm.org
Mon Jun 1 15:51:40 UTC 2026


On 6/1/26 2:25 AM, Erni Sri Satya Vennela wrote:
> diff --git a/drivers/infiniband/ulp/srp/ib_srp.c b/drivers/infiniband/ulp/srp/ib_srp.c
> index b58868e1cf11..dc30d069ab3d 100644
> --- a/drivers/infiniband/ulp/srp/ib_srp.c
> +++ b/drivers/infiniband/ulp/srp/ib_srp.c
> @@ -557,7 +557,7 @@ static int srp_create_ch_ib(struct srp_rdma_ch *ch)
>   	init_attr->cap.max_send_wr     = m * target->queue_size;
>   	init_attr->cap.max_recv_wr     = target->queue_size + 1;
>   	init_attr->cap.max_recv_sge    = 1;
> -	init_attr->cap.max_send_sge    = min(SRP_MAX_SGE, attr->max_send_sge);
> +	init_attr->cap.max_send_sge    = min_t(u32, SRP_MAX_SGE, attr->max_send_sge);
>   	init_attr->sq_sig_type         = IB_SIGNAL_REQ_WR;
>   	init_attr->qp_type             = IB_QPT_RC;
>   	init_attr->send_cq             = send_cq;
> diff --git a/drivers/infiniband/ulp/srpt/ib_srpt.c b/drivers/infiniband/ulp/srpt/ib_srpt.c
> index 9aec5d80117f..2ffa4f54cd4e 100644
> --- a/drivers/infiniband/ulp/srpt/ib_srpt.c
> +++ b/drivers/infiniband/ulp/srpt/ib_srpt.c
> @@ -1884,7 +1884,7 @@ static int srpt_create_ch_ib(struct srpt_rdma_ch *ch)
>   	 * both both, as RDMA contexts will also post completions for the
>   	 * RDMA READ case.
>   	 */
> -	qp_init->cap.max_send_wr = min(sq_size / 2, attrs->max_qp_wr);
> +	qp_init->cap.max_send_wr = min_t(u32, sq_size / 2, attrs->max_qp_wr);
>   	qp_init->cap.max_rdma_ctxs = sq_size / 2;
>   	qp_init->cap.max_send_sge = attrs->max_send_sge;
>   	qp_init->cap.max_recv_sge = 1;
> @@ -2298,7 +2298,7 @@ static int srpt_cm_req_recv(struct srpt_device *const sdev,
>   	 * depth to avoid that the initiator driver has to report QUEUE_FULL
>   	 * to the SCSI mid-layer.
>   	 */
> -	ch->rq_size = min(MAX_SRPT_RQ_SIZE, sdev->device->attrs.max_qp_wr);
> +	ch->rq_size = min_t(u32, MAX_SRPT_RQ_SIZE, sdev->device->attrs.max_qp_wr);
>   	spin_lock_init(&ch->spinlock);
>   	ch->state = CH_CONNECTING;
>   	INIT_LIST_HEAD(&ch->cmd_wait_list);
> @@ -3225,7 +3225,7 @@ static int srpt_add_one(struct ib_device *device)
>   
>   	sdev->lkey = sdev->pd->local_dma_lkey;
>   
> -	sdev->srq_size = min(srpt_srq_size, sdev->device->attrs.max_srq_wr);
> +	sdev->srq_size = min_t(u32, srpt_srq_size, sdev->device->attrs.max_srq_wr);
>   
>   	srpt_use_srq(sdev, sdev->port[0].port_attrib.use_srq);

min_t() shouldn't be used if there is an alternative available. For the
SRP drivers, please make sure that both arguments of min() are unsigned
instead of using min_t().

Thanks,

Bart.



More information about the rds-devel mailing list