Re: [PATCH rdma-next v2] RDMA/mlx5: Expose private query port

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 4/13/2021 23:03, Jason Gunthorpe wrote:
> On Thu, Apr 01, 2021 at 11:50:04AM +0300, Leon Romanovsky wrote:
> 
>> +static int UVERBS_HANDLER(MLX5_IB_METHOD_QUERY_PORT)(
>> +	struct uverbs_attr_bundle *attrs)
>> +{
>> +	struct mlx5_ib_uapi_query_port *info;
>> +	struct mlx5_ib_ucontext *c;
>> +	struct mlx5_ib_dev *dev;
>> +	u32 port_num;
>> +	int ret;
>> +
>> +	if (uverbs_copy_from(&port_num, attrs,
>> +			     MLX5_IB_ATTR_QUERY_PORT_PORT_NUM))
>> +		return -EFAULT;
>> +
>> +	c = to_mucontext(ib_uverbs_get_ucontext(attrs));
>> +	if (IS_ERR(c))
>> +		return PTR_ERR(c);
>> +	dev = to_mdev(c->ibucontext.device);
>> +
>> +	if (!rdma_is_port_valid(&dev->ib_dev, port_num))
>> +		return -EINVAL;
>> +
>> +	info = uverbs_zalloc(attrs, sizeof(*info));
>> +	if (IS_ERR(info))
>> +		return PTR_ERR(info);
> 
> This allocation is not needed, info is small enough to be on the stack
> 
>> +
>> +	if (mlx5_eswitch_mode(dev->mdev) == MLX5_ESWITCH_OFFLOADS) {
>> +		ret = fill_switchdev_info(dev, port_num, info);
>> +		if (ret)
>> +			return ret;
>> +	}
>> +
>> +	return uverbs_copy_to(attrs, MLX5_IB_ATTR_QUERY_PORT, info,
>> +			      sizeof(*info));
> 
> This should be 
> 
> uverbs_copy_to_struct_or_zero()

Will address both comments in the v3. thanks.

Mark
> 
> Jason
> 



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux