/linux-master/drivers/infiniband/hw/mana/ |
H A D | wq.c | 14 struct mana_ib_create_wq ucmd = {}; local 19 if (udata->inlen < sizeof(ucmd)) 22 err = ib_copy_from_udata(&ucmd, udata, min(sizeof(ucmd), udata->inlen)); 33 ibdev_dbg(&mdev->ib_dev, "ucmd wq_buf_addr 0x%llx\n", ucmd.wq_buf_addr); 35 umem = ib_umem_get(pd->device, ucmd.wq_buf_addr, ucmd.wq_buf_size, 46 wq->wq_buf_size = ucmd.wq_buf_size;
|
H A D | qp.c | 103 struct mana_ib_create_qp_rss ucmd = {}; local 118 if (!udata || udata->inlen < sizeof(ucmd)) 121 ret = ib_copy_from_udata(&ucmd, udata, min(sizeof(ucmd), udata->inlen)); 151 if (ucmd.rx_hash_function != MANA_IB_RX_HASH_FUNC_TOEPLITZ) { 154 ucmd.rx_hash_function); 159 port = ucmd.port; 169 ucmd.rx_hash_function, port); 242 ucmd.rx_hash_key_len, 243 ucmd 294 struct mana_ib_create_qp ucmd = {}; local [all...] |
H A D | cq.c | 13 struct mana_ib_create_cq ucmd = {}; local 21 if (udata->inlen < sizeof(ucmd)) 29 err = ib_copy_from_udata(&ucmd, udata, min(sizeof(ucmd), udata->inlen)); 42 cq->umem = ib_umem_get(ibdev, ucmd.buf_addr, cq->cqe * COMP_ENTRY_SIZE,
|
/linux-master/drivers/iommu/iommufd/ |
H A D | ioas.c | 37 int iommufd_ioas_alloc_ioctl(struct iommufd_ucmd *ucmd) argument 39 struct iommu_ioas_alloc *cmd = ucmd->cmd; 46 ioas = iommufd_ioas_alloc(ucmd->ictx); 51 rc = iommufd_ucmd_respond(ucmd, sizeof(*cmd)); 54 iommufd_object_finalize(ucmd->ictx, &ioas->obj); 58 iommufd_object_abort_and_destroy(ucmd->ictx, &ioas->obj); 62 int iommufd_ioas_iova_ranges(struct iommufd_ucmd *ucmd) argument 65 struct iommu_ioas_iova_ranges *cmd = ucmd->cmd; 74 ioas = iommufd_get_ioas(ucmd->ictx, cmd->ioas_id); 101 rc = iommufd_ucmd_respond(ucmd, sizeo 142 iommufd_ioas_allow_iovas(struct iommufd_ucmd *ucmd) argument 200 iommufd_ioas_map(struct iommufd_ucmd *ucmd) argument 235 iommufd_ioas_copy(struct iommufd_ucmd *ucmd) argument 288 iommufd_ioas_unmap(struct iommufd_ucmd *ucmd) argument 375 iommufd_ioas_option(struct iommufd_ucmd *ucmd) argument [all...] |
H A D | iommufd_private.h | 113 /* Copy the response in ucmd->cmd back to userspace. */ 114 static inline int iommufd_ucmd_respond(struct iommufd_ucmd *ucmd, argument 117 if (copy_to_user(ucmd->ubuffer, ucmd->cmd, 118 min_t(size_t, ucmd->user_size, cmd_len))) 271 int iommufd_ioas_alloc_ioctl(struct iommufd_ucmd *ucmd); 273 int iommufd_ioas_iova_ranges(struct iommufd_ucmd *ucmd); 274 int iommufd_ioas_allow_iovas(struct iommufd_ucmd *ucmd); 275 int iommufd_ioas_map(struct iommufd_ucmd *ucmd); 276 int iommufd_ioas_copy(struct iommufd_ucmd *ucmd); 325 iommufd_get_hwpt_paging(struct iommufd_ucmd *ucmd, u32 id) argument 333 iommufd_get_hwpt_nested(struct iommufd_ucmd *ucmd, u32 id) argument 401 iommufd_get_device(struct iommufd_ucmd *ucmd, u32 id) argument 440 iommufd_test_syz_conv_iova_id(struct iommufd_ucmd *ucmd, unsigned int ioas_id, u64 *iova, u32 *flags) argument [all...] |
H A D | hw_pagetable.c | 250 int iommufd_hwpt_alloc(struct iommufd_ucmd *ucmd) argument 252 struct iommu_hwpt_alloc *cmd = ucmd->cmd; 270 idev = iommufd_get_device(ucmd, cmd->dev_id); 274 pt_obj = iommufd_get_object(ucmd->ictx, cmd->pt_id, IOMMUFD_OBJ_ANY); 286 ucmd->ictx, ioas, idev, cmd->flags, false, 297 ucmd->ictx, 312 rc = iommufd_ucmd_respond(ucmd, sizeof(*cmd)); 315 iommufd_object_finalize(ucmd->ictx, &hwpt->obj); 319 iommufd_object_abort_and_destroy(ucmd->ictx, &hwpt->obj); 324 iommufd_put_object(ucmd 330 iommufd_hwpt_set_dirty_tracking(struct iommufd_ucmd *ucmd) argument 355 iommufd_hwpt_get_dirty_bitmap(struct iommufd_ucmd *ucmd) argument 378 iommufd_hwpt_invalidate(struct iommufd_ucmd *ucmd) argument [all...] |
H A D | selftest.c | 106 void iommufd_test_syz_conv_iova_id(struct iommufd_ucmd *ucmd, argument 115 ioas = iommufd_get_ioas(ucmd->ictx, ioas_id); 119 iommufd_put_object(ucmd->ictx, &ioas->obj); 606 __get_md_pagetable(struct iommufd_ucmd *ucmd, u32 mockpt_id, u32 hwpt_type) argument 610 obj = iommufd_get_object(ucmd->ictx, mockpt_id, hwpt_type); 617 get_md_pagetable(struct iommufd_ucmd *ucmd, u32 mockpt_id, argument 622 hwpt = __get_md_pagetable(ucmd, mockpt_id, IOMMUFD_OBJ_HWPT_PAGING); 627 iommufd_put_object(ucmd->ictx, &hwpt->obj); 635 get_md_pagetable_nested(struct iommufd_ucmd *ucmd, u32 mockpt_id, argument 640 hwpt = __get_md_pagetable(ucmd, mockpt_i 709 iommufd_test_mock_domain(struct iommufd_ucmd *ucmd, struct iommu_test_cmd *cmd) argument 769 iommufd_test_mock_domain_replace(struct iommufd_ucmd *ucmd, unsigned int device_id, u32 pt_id, struct iommu_test_cmd *cmd) argument 805 iommufd_test_add_reserved(struct iommufd_ucmd *ucmd, unsigned int mockpt_id, unsigned long start, size_t length) argument 823 iommufd_test_md_check_pa(struct iommufd_ucmd *ucmd, unsigned int mockpt_id, unsigned long iova, size_t length, void __user *uptr) argument 878 iommufd_test_md_check_refs(struct iommufd_ucmd *ucmd, void __user *uptr, size_t length, unsigned int refs) argument 912 iommufd_test_md_check_iotlb(struct iommufd_ucmd *ucmd, u32 mockpt_id, unsigned int iotlb_id, u32 iotlb) argument 988 iommufd_test_access_item_destroy(struct iommufd_ucmd *ucmd, unsigned int access_id, unsigned int item_id) argument 1065 iommufd_test_create_access(struct iommufd_ucmd *ucmd, unsigned int ioas_id, unsigned int flags) argument 1119 iommufd_test_access_replace_ioas(struct iommufd_ucmd *ucmd, unsigned int access_id, unsigned int ioas_id) argument 1157 iommufd_test_access_pages(struct iommufd_ucmd *ucmd, unsigned int access_id, unsigned long iova, size_t length, void __user *uptr, u32 flags) argument 1252 iommufd_test_access_rw(struct iommufd_ucmd *ucmd, unsigned int access_id, unsigned long iova, size_t length, void __user *ubuf, unsigned int flags) argument 1311 iommufd_test_dirty(struct iommufd_ucmd *ucmd, unsigned int mockpt_id, unsigned long iova, size_t length, unsigned long page_size, void __user *uptr, u32 flags) argument 1391 iommufd_test(struct iommufd_ucmd *ucmd) argument [all...] |
H A D | main.c | 226 static int iommufd_destroy(struct iommufd_ucmd *ucmd) argument 228 struct iommu_destroy *cmd = ucmd->cmd; 230 return iommufd_object_remove(ucmd->ictx, NULL, cmd->id, 0); 294 static int iommufd_option(struct iommufd_ucmd *ucmd) argument 296 struct iommu_option *cmd = ucmd->cmd; 304 rc = iommufd_option_rlimit_mode(cmd, ucmd->ictx); 307 rc = iommufd_ioas_option(ucmd); 314 if (copy_to_user(&((struct iommu_option __user *)ucmd->ubuffer)->val64, 344 int (*execute)(struct iommufd_ucmd *ucmd); 394 struct iommufd_ucmd ucmd local [all...] |
H A D | vfio_compat.c | 123 int iommufd_vfio_ioas(struct iommufd_ucmd *ucmd) argument 125 struct iommu_vfio_ioas *cmd = ucmd->cmd; 132 ioas = get_compat_ioas(ucmd->ictx); 136 iommufd_put_object(ucmd->ictx, &ioas->obj); 137 return iommufd_ucmd_respond(ucmd, sizeof(*cmd)); 140 ioas = iommufd_get_ioas(ucmd->ictx, cmd->ioas_id); 143 xa_lock(&ucmd->ictx->objects); 144 ucmd->ictx->vfio_ioas = ioas; 145 xa_unlock(&ucmd->ictx->objects); 146 iommufd_put_object(ucmd [all...] |
/linux-master/drivers/infiniband/hw/mlx5/ |
H A D | counters.h | 15 struct mlx5_ib_create_flow *ucmd);
|
H A D | qp.c | 434 int has_rq, struct mlx5_ib_qp *qp, struct mlx5_ib_create_qp *ucmd) 452 if (ucmd) { 453 qp->rq.wqe_cnt = ucmd->rq_wqe_count; 454 if (ucmd->rq_wqe_shift > BITS_PER_BYTE * sizeof(ucmd->rq_wqe_shift)) 456 qp->rq.wqe_shift = ucmd->rq_wqe_shift; 638 struct mlx5_ib_create_qp *ucmd, 650 if (ucmd->sq_wqe_count && !is_power_of_2(ucmd->sq_wqe_count)) { 652 ucmd 433 set_rq_size(struct mlx5_ib_dev *dev, struct ib_qp_cap *cap, int has_rq, struct mlx5_ib_qp *qp, struct mlx5_ib_create_qp *ucmd) argument 636 set_user_buf_size(struct mlx5_ib_dev *dev, struct mlx5_ib_qp *qp, struct mlx5_ib_create_qp *ucmd, struct mlx5_ib_qp_base *base, struct ib_qp_init_attr *attr) argument 880 create_user_rq(struct mlx5_ib_dev *dev, struct ib_pd *pd, struct ib_udata *udata, struct mlx5_ib_rwq *rwq, struct mlx5_ib_create_wq *ucmd) argument 941 _create_user_qp(struct mlx5_ib_dev *dev, struct ib_pd *pd, struct mlx5_ib_qp *qp, struct ib_udata *udata, struct ib_qp_init_attr *attr, u32 **in, struct mlx5_ib_create_qp_resp *resp, int *inlen, struct mlx5_ib_qp_base *base, struct mlx5_ib_create_qp *ucmd) argument 1708 void *ucmd; member in struct:mlx5_create_qp_params 1720 struct mlx5_ib_create_qp_rss *ucmd = params->ucmd; local 2073 struct mlx5_ib_create_qp *ucmd = params->ucmd; local 2234 struct mlx5_ib_create_qp *ucmd = params->ucmd; local 2734 struct mlx5_ib_create_qp *ucmd = params->ucmd; local 2872 process_vendor_flags(struct mlx5_ib_dev *dev, struct mlx5_ib_qp *qp, void *ucmd, struct ib_qp_init_attr *attr) argument 3046 size_t ucmd = sizeof(struct mlx5_ib_create_qp); local 3177 struct mlx5_ib_create_qp *ucmd = params->ucmd; local 4102 __mlx5_ib_modify_qp(struct ib_qp *ibqp, const struct ib_qp_attr *attr, int attr_mask, enum ib_qp_state cur_state, enum ib_qp_state new_state, const struct mlx5_ib_modify_qp *ucmd, struct mlx5_ib_modify_qp_resp *resp, struct ib_udata *udata) argument 4491 mlx5_ib_modify_dct(struct ib_qp *ibqp, struct ib_qp_attr *attr, int attr_mask, struct mlx5_ib_modify_qp *ucmd, struct ib_udata *udata) argument 4660 struct mlx5_ib_modify_qp ucmd = {}; local 5309 set_user_rq_size(struct mlx5_ib_dev *dev, struct ib_wq_init_attr *wq_init_attr, struct mlx5_ib_create_wq *ucmd, struct mlx5_ib_rwq *rwq) argument 5350 struct mlx5_ib_create_wq ucmd = {}; local 5588 struct mlx5_ib_modify_wq ucmd = {}; local [all...] |
H A D | srq.c | 48 struct mlx5_ib_create_srq ucmd = {}; local 55 ucmdlen = min(udata->inlen, sizeof(ucmd)); 57 if (ib_copy_from_udata(&ucmd, udata, ucmdlen)) { 62 if (ucmd.reserved0 || ucmd.reserved1) 65 if (udata->inlen > sizeof(ucmd) && 66 !ib_is_udata_cleared(udata, sizeof(ucmd), 67 udata->inlen - sizeof(ucmd))) 71 err = get_srq_user_index(ucontext, &ucmd, udata->inlen, &uidx); 76 srq->wq_sig = !!(ucmd [all...] |
H A D | cq.c | 719 struct mlx5_ib_create_cq ucmd = {}; local 730 ucmdlen = min(udata->inlen, sizeof(ucmd)); 734 if (ib_copy_from_udata(&ucmd, udata, ucmdlen)) 737 if ((ucmd.flags & ~(MLX5_IB_CREATE_CQ_FLAGS_CQE_128B_PAD | 742 if ((ucmd.cqe_size != 64 && ucmd.cqe_size != 128) || 743 ucmd.reserved0 || ucmd.reserved1) 746 *cqe_size = ucmd.cqe_size; 749 ib_umem_get(&dev->ib_dev, ucmd 1156 struct mlx5_ib_resize_cq ucmd; local [all...] |
/linux-master/drivers/infiniband/hw/mthca/ |
H A D | mthca_provider.c | 395 struct mthca_create_srq ucmd; local 405 if (ib_copy_from_udata(&ucmd, udata, sizeof(ucmd))) 409 context->db_tab, ucmd.db_index, 410 ucmd.db_page); 415 srq->mr.ibmr.lkey = ucmd.lkey; 416 srq->db_index = ucmd.db_index; 424 context->db_tab, ucmd.db_index); 460 struct mthca_create_qp ucmd; local 474 if (ib_copy_from_udata(&ucmd, udat 581 struct mthca_create_cq ucmd; local 700 struct mthca_resize_cq ucmd; local 834 struct mthca_reg_mr ucmd; local [all...] |
/linux-master/drivers/infiniband/hw/hns/ |
H A D | hns_roce_cq.c | 299 struct hns_roce_ib_create_cq *ucmd) 304 ret = ib_copy_from_udata(ucmd, udata, min(udata->inlen, sizeof(*ucmd))); 314 struct hns_roce_ib_create_cq *ucmd) 330 struct hns_roce_ib_create_cq *ucmd) 339 if (udata->inlen >= offsetofend(typeof(*ucmd), cqe_size)) { 340 if (ucmd->cqe_size != HNS_ROCE_V2_CQE_SIZE && 341 ucmd->cqe_size != HNS_ROCE_V3_CQE_SIZE) { 343 "invalid cqe size %u.\n", ucmd->cqe_size); 347 hr_cq->cqe_size = ucmd 298 get_cq_ucmd(struct hns_roce_cq *hr_cq, struct ib_udata *udata, struct hns_roce_ib_create_cq *ucmd) argument 313 set_cq_param(struct hns_roce_cq *hr_cq, u32 cq_entries, int vector, struct hns_roce_ib_create_cq *ucmd) argument 329 set_cqe_size(struct hns_roce_cq *hr_cq, struct ib_udata *udata, struct hns_roce_ib_create_cq *ucmd) argument 362 struct hns_roce_ib_create_cq ucmd = {}; local [all...] |
H A D | hns_roce_srq.c | 346 struct hns_roce_ib_create_srq ucmd = {}; local 350 ret = ib_copy_from_udata(&ucmd, udata, 351 min(udata->inlen, sizeof(ucmd))); 360 ret = alloc_srq_idx(hr_dev, srq, udata, ucmd.que_addr); 364 ret = alloc_srq_wqe_buf(hr_dev, srq, udata, ucmd.buf_addr); 392 struct hns_roce_ib_create_srq *ucmd) 397 ret = ib_copy_from_udata(ucmd, udata, min(udata->inlen, sizeof(*ucmd))); 429 struct hns_roce_ib_create_srq ucmd = {}; local 434 ret = get_srq_ucmd(srq, udata, &ucmd); 391 get_srq_ucmd(struct hns_roce_srq *srq, struct ib_udata *udata, struct hns_roce_ib_create_srq *ucmd) argument [all...] |
H A D | hns_roce_qp.c | 595 struct hns_roce_ib_create_qp *ucmd) 601 if (ucmd->log_sq_stride > max_sq_stride || 602 ucmd->log_sq_stride < HNS_ROCE_IB_MIN_SQ_STRIDE) { 618 struct hns_roce_ib_create_qp *ucmd) 624 if (check_shl_overflow(1, ucmd->log_sq_bb_count, &cnt) || 628 ret = check_sq_size_with_integrity(hr_dev, cap, ucmd); 637 hr_qp->sq.wqe_shift = ucmd->log_sq_stride; 784 struct hns_roce_ib_create_qp *ucmd) 789 udata->inlen >= offsetofend(typeof(*ucmd), sdb_addr)); 842 struct hns_roce_ib_create_qp *ucmd, 593 check_sq_size_with_integrity(struct hns_roce_dev *hr_dev, struct ib_qp_cap *cap, struct hns_roce_ib_create_qp *ucmd) argument 616 set_user_sq_size(struct hns_roce_dev *hr_dev, struct ib_qp_cap *cap, struct hns_roce_qp *hr_qp, struct hns_roce_ib_create_qp *ucmd) argument 780 user_qp_has_sdb(struct hns_roce_dev *hr_dev, struct ib_qp_init_attr *init_attr, struct ib_udata *udata, struct hns_roce_ib_create_qp_resp *resp, struct hns_roce_ib_create_qp *ucmd) argument 838 alloc_user_qp_db(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp, struct ib_qp_init_attr *init_attr, struct ib_udata *udata, struct hns_roce_ib_create_qp *ucmd, struct hns_roce_ib_create_qp_resp *resp) argument 913 alloc_qp_db(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp, struct ib_qp_init_attr *init_attr, struct ib_udata *udata, struct hns_roce_ib_create_qp *ucmd, struct hns_roce_ib_create_qp_resp *resp) argument 1017 set_congest_type(struct hns_roce_qp *hr_qp, struct hns_roce_ib_create_qp *ucmd) argument 1049 set_congest_param(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp, struct hns_roce_ib_create_qp *ucmd) argument 1061 set_qp_param(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp, struct ib_qp_init_attr *init_attr, struct ib_udata *udata, struct hns_roce_ib_create_qp *ucmd) argument 1127 struct hns_roce_ib_create_qp ucmd = {}; local [all...] |
/linux-master/drivers/infiniband/hw/vmw_pvrdma/ |
H A D | pvrdma_srq.c | 109 struct pvrdma_create_srq ucmd; local 144 if (ib_copy_from_udata(&ucmd, udata, sizeof(ucmd))) { 149 srq->umem = ib_umem_get(ibsrq->device, ucmd.buf_addr, ucmd.buf_size, 0);
|
H A D | pvrdma_cq.c | 116 struct pvrdma_create_cq ucmd; local 136 if (ib_copy_from_udata(&ucmd, udata, sizeof(ucmd))) { 141 cq->umem = ib_umem_get(ibdev, ucmd.buf_addr, ucmd.buf_size,
|
/linux-master/drivers/dma-buf/ |
H A D | dma-heap.c | 126 static long dma_heap_ioctl(struct file *file, unsigned int ucmd, argument 133 int nr = _IOC_NR(ucmd); 145 out_size = _IOC_SIZE(ucmd); 147 if ((ucmd & kcmd & IOC_IN) == 0) 149 if ((ucmd & kcmd & IOC_OUT) == 0)
|
/linux-master/drivers/infiniband/hw/mlx4/ |
H A D | qp.c | 448 struct mlx4_ib_create_qp *ucmd) 453 if (check_shl_overflow(1, ucmd->log_sq_bb_count, &cnt) || 456 if (ucmd->log_sq_stride > 458 ucmd->log_sq_stride < MLX4_IB_MIN_SQ_STRIDE) 461 qp->sq.wqe_cnt = 1 << ucmd->log_sq_bb_count; 462 qp->sq.wqe_shift = ucmd->log_sq_stride; 554 struct mlx4_ib_create_qp_rss *ucmd) 559 if ((ucmd->rx_hash_function == MLX4_IB_RX_HASH_FUNC_TOEPLITZ) && 561 memcpy(rss_ctx->rss_key, ucmd->rx_hash_key, 568 if (ucmd 446 set_user_sq_size(struct mlx4_ib_dev *dev, struct mlx4_ib_qp *qp, struct mlx4_ib_create_qp *ucmd) argument 552 set_qp_rss(struct mlx4_ib_dev *dev, struct mlx4_ib_rss *rss_ctx, struct ib_qp_init_attr *init_attr, struct mlx4_ib_create_qp_rss *ucmd) argument 654 create_qp_rss(struct mlx4_ib_dev *dev, struct ib_qp_init_attr *init_attr, struct mlx4_ib_create_qp_rss *ucmd, struct mlx4_ib_qp *qp) argument 714 struct mlx4_ib_create_qp_rss ucmd = {}; local 1067 struct mlx4_ib_create_qp ucmd; local 4126 struct mlx4_ib_create_wq ucmd; local 4264 struct mlx4_ib_modify_wq ucmd = {}; local [all...] |
H A D | srq.c | 112 struct mlx4_ib_create_srq ucmd; local 114 if (ib_copy_from_udata(&ucmd, udata, sizeof(ucmd))) 118 ib_umem_get(ib_srq->device, ucmd.buf_addr, buf_size, 0); 132 err = mlx4_ib_db_map_user(udata, ucmd.db_addr, &srq->db);
|
H A D | cq.c | 205 struct mlx4_ib_create_cq ucmd; local 207 if (ib_copy_from_udata(&ucmd, udata, sizeof ucmd)) { 212 buf_addr = (void *)(unsigned long)ucmd.buf_addr; 214 ucmd.buf_addr, entries); 218 err = mlx4_ib_db_map_user(udata, ucmd.db_addr, &cq->db); 317 struct mlx4_ib_resize_cq ucmd; local 323 if (ib_copy_from_udata(&ucmd, udata, sizeof ucmd)) 331 ucmd [all...] |
/linux-master/arch/mips/cavium-octeon/ |
H A D | octeon-platform.c | 36 u32 ucmd; local 43 ucmd = cvmx_read64_uint32(CVMX_UAHCX_EHCI_USBCMD); 44 ucmd &= ~CMD_RUN; 45 cvmx_write64_uint32(CVMX_UAHCX_EHCI_USBCMD, ucmd); 47 ucmd |= CMD_RESET; 48 cvmx_write64_uint32(CVMX_UAHCX_EHCI_USBCMD, ucmd); 49 ucmd = cvmx_read64_uint32(CVMX_UAHCX_OHCI_USBCMD); 50 ucmd |= CMD_RUN; 51 cvmx_write64_uint32(CVMX_UAHCX_OHCI_USBCMD, ucmd);
|
/linux-master/drivers/infiniband/sw/rxe/ |
H A D | rxe_srq.c | 153 struct rxe_modify_srq_cmd *ucmd, struct ib_udata *udata) 165 mi = u64_to_user_ptr(ucmd->mmap_info_addr); 151 rxe_srq_from_attr(struct rxe_dev *rxe, struct rxe_srq *srq, struct ib_srq_attr *attr, enum ib_srq_attr_mask mask, struct rxe_modify_srq_cmd *ucmd, struct ib_udata *udata) argument
|