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

Andy Shevchenko andriy.shevchenko at linux.intel.com
Tue Jun 2 09:20:24 UTC 2026


On Mon, Jun 01, 2026 at 02:14:44AM -0700, Erni Sri Satya Vennela wrote:
> The capability counter fields in struct ib_device_attr are declared
> as signed int, but these values are inherently non-negative. Drivers
> maintain their cached caps as u32 and assign them directly into these
> int fields; if a cap exceeds INT_MAX the implicit narrowing yields a
> negative value visible to the IB core.
> 
> Change the signed int capability fields to u32 to match the
> underlying nature of the data. Also update consumers across the IB
> core, ULPs, NVMe-oF target, RDS, and NFS/RDMA so the new u32 values
> are not forced back through signed int or u8 via min()/min_t() or
> narrowing local variables.

...

>  	attr->max_qp_rd_atom =
> -	    min(1 << (fls(qattr->max_qp_resp_rd_atomic_resc) - 1),
> -		attr->max_qp_init_rd_atom);
> +	    min_t(u32, 1 << (fls(qattr->max_qp_resp_rd_atomic_resc) - 1),
> +		  attr->max_qp_init_rd_atom);

Just no. min_t() usage has to be very well justified. It's a beast which may
stub one in the back. As Linus said in most of the cases one wants clamp()
rather than min().

Please, redo this and similar pieces.

-- 
With Best Regards,
Andy Shevchenko





More information about the rds-devel mailing list