On 2021/2/10 3:44, Jason Gunthorpe wrote:
On Sun, Feb 07, 2021 at 11:12:51AM +0800, Weihang Li wrote:
+static int register_dca_mem(struct hns_roce_context *ctx, uint64_t key,
void *addr, uint32_t size, uint32_t *handle)
+{
- struct ib_uverbs_attr *attr;
- int ret;
- DECLARE_COMMAND_BUFFER(cmd, HNS_IB_OBJECT_DCA_MEM,
HNS_IB_METHOD_DCA_MEM_REG, 4);
- fill_attr_in_uint32(cmd, HNS_IB_ATTR_DCA_MEM_REG_LEN, size);
- fill_attr_in_uint64(cmd, HNS_IB_ATTR_DCA_MEM_REG_ADDR, (intptr_t)addr);
This should use ioctl_ptr_to_u64(), the place this was copied from should also be fixed
OK, I will fix it. The kernel part has been defined as u64, so it doesn't need to be modified.
- fill_attr_in_uint64(cmd, HNS_IB_ATTR_DCA_MEM_REG_KEY, key);
- attr = fill_attr_out_obj(cmd, HNS_IB_ATTR_DCA_MEM_REG_HANDLE);
- ret = execute_ioctl(&ctx->ibv_ctx.context, cmd);
- if (!ret)
*handle = read_attr_obj(HNS_IB_ATTR_DCA_MEM_REG_HANDLE, attr);
Success oriented flow everywhere please
Jason
OK, thank you.
Weihang