read_attr
ret = uverbs_get_flags32(&read_attr.flags, attrs,
read_attr.ncounters = uattr->ptr_attr.len / sizeof(u64);
read_attr.counters_buff = uverbs_zalloc(
attrs, array_size(read_attr.ncounters, sizeof(u64)));
if (IS_ERR(read_attr.counters_buff))
return PTR_ERR(read_attr.counters_buff);
ret = counters->device->ops.read_counters(counters, &read_attr, attrs);
read_attr.counters_buff,
read_attr.ncounters * sizeof(u64));
struct ib_counters_read_attr read_attr = {};
struct mlx5_read_counters_attr *read_attr)
struct mlx5_fc *fc = read_attr->hw_cntrs_hndl;
&read_attr->out[IB_COUNTER_PACKETS],
&read_attr->out[IB_COUNTER_BYTES]);
struct ib_counters_read_attr *read_attr,
if (mcounters->cntrs_max_index > read_attr->ncounters) {
mread_attr.flags = read_attr->flags;
read_attr->counters_buff[desc[i].index] += mread_attr.out[desc[i].description];
struct mlx5_read_counters_attr *read_attr);
if (read_attr(fd, header, &f_attr) < 0)