Lines Matching refs:cmd
291 struct ib_uverbs_get_context cmd; in ib_uverbs_get_context() local
304 if (copy_from_user(&cmd, buf, sizeof cmd)) in ib_uverbs_get_context()
314 INIT_UDATA(&udata, buf + sizeof cmd, in ib_uverbs_get_context()
315 (unsigned long) cmd.response + sizeof resp, in ib_uverbs_get_context()
316 in_len - sizeof cmd, out_len - sizeof resp); in ib_uverbs_get_context()
366 if (copy_to_user((void __user *) (unsigned long) cmd.response, in ib_uverbs_get_context()
448 struct ib_uverbs_query_device cmd; in ib_uverbs_query_device() local
456 if (copy_from_user(&cmd, buf, sizeof cmd)) in ib_uverbs_query_device()
466 if (copy_to_user((void __user *) (unsigned long) cmd.response, in ib_uverbs_query_device()
478 struct ib_uverbs_query_port cmd; in ib_uverbs_query_port() local
486 if (copy_from_user(&cmd, buf, sizeof cmd)) in ib_uverbs_query_port()
489 ret = ib_query_port(ib_dev, cmd.port_num, &attr); in ib_uverbs_query_port()
515 cmd.port_num); in ib_uverbs_query_port()
517 if (copy_to_user((void __user *) (unsigned long) cmd.response, in ib_uverbs_query_port()
529 struct ib_uverbs_alloc_pd cmd; in ib_uverbs_alloc_pd() local
539 if (copy_from_user(&cmd, buf, sizeof cmd)) in ib_uverbs_alloc_pd()
542 INIT_UDATA(&udata, buf + sizeof cmd, in ib_uverbs_alloc_pd()
543 (unsigned long) cmd.response + sizeof resp, in ib_uverbs_alloc_pd()
544 in_len - sizeof cmd, out_len - sizeof resp); in ib_uverbs_alloc_pd()
572 if (copy_to_user((void __user *) (unsigned long) cmd.response, in ib_uverbs_alloc_pd()
604 struct ib_uverbs_dealloc_pd cmd; in ib_uverbs_dealloc_pd() local
609 if (copy_from_user(&cmd, buf, sizeof cmd)) in ib_uverbs_dealloc_pd()
612 uobj = idr_write_uobj(&ib_uverbs_pd_idr, cmd.pd_handle, file->ucontext); in ib_uverbs_dealloc_pd()
735 struct ib_uverbs_open_xrcd cmd; in ib_uverbs_open_xrcd() local
748 if (copy_from_user(&cmd, buf, sizeof cmd)) in ib_uverbs_open_xrcd()
751 INIT_UDATA(&udata, buf + sizeof cmd, in ib_uverbs_open_xrcd()
752 (unsigned long) cmd.response + sizeof resp, in ib_uverbs_open_xrcd()
753 in_len - sizeof cmd, out_len - sizeof resp); in ib_uverbs_open_xrcd()
757 if (cmd.fd != -1) { in ib_uverbs_open_xrcd()
759 f = fdget(cmd.fd); in ib_uverbs_open_xrcd()
767 if (!xrcd && !(cmd.oflags & O_CREAT)) { in ib_uverbs_open_xrcd()
773 if (xrcd && cmd.oflags & O_EXCL) { in ib_uverbs_open_xrcd()
823 if (copy_to_user((void __user *) (unsigned long) cmd.response, in ib_uverbs_open_xrcd()
872 struct ib_uverbs_close_xrcd cmd; in ib_uverbs_close_xrcd() local
880 if (copy_from_user(&cmd, buf, sizeof cmd)) in ib_uverbs_close_xrcd()
884 uobj = idr_write_uobj(&ib_uverbs_xrcd_idr, cmd.xrcd_handle, file->ucontext); in ib_uverbs_close_xrcd()
950 struct ib_uverbs_reg_mr cmd; in ib_uverbs_reg_mr() local
961 if (copy_from_user(&cmd, buf, sizeof cmd)) in ib_uverbs_reg_mr()
964 INIT_UDATA(&udata, buf + sizeof cmd, in ib_uverbs_reg_mr()
965 (unsigned long) cmd.response + sizeof resp, in ib_uverbs_reg_mr()
966 in_len - sizeof cmd, out_len - sizeof resp); in ib_uverbs_reg_mr()
968 if ((cmd.start & ~PAGE_MASK) != (cmd.hca_va & ~PAGE_MASK)) in ib_uverbs_reg_mr()
971 ret = ib_check_mr_access(cmd.access_flags); in ib_uverbs_reg_mr()
982 pd = idr_read_pd(cmd.pd_handle, file->ucontext); in ib_uverbs_reg_mr()
988 if (cmd.access_flags & IB_ACCESS_ON_DEMAND) { in ib_uverbs_reg_mr()
1000 mr = pd->device->reg_user_mr(pd, cmd.start, cmd.length, cmd.hca_va, in ib_uverbs_reg_mr()
1001 cmd.access_flags, &udata); in ib_uverbs_reg_mr()
1023 if (copy_to_user((void __user *) (unsigned long) cmd.response, in ib_uverbs_reg_mr()
1060 struct ib_uverbs_rereg_mr cmd; in ib_uverbs_rereg_mr() local
1072 if (copy_from_user(&cmd, buf, sizeof(cmd))) in ib_uverbs_rereg_mr()
1075 INIT_UDATA(&udata, buf + sizeof(cmd), in ib_uverbs_rereg_mr()
1076 (unsigned long) cmd.response + sizeof(resp), in ib_uverbs_rereg_mr()
1077 in_len - sizeof(cmd), out_len - sizeof(resp)); in ib_uverbs_rereg_mr()
1079 if (cmd.flags & ~IB_MR_REREG_SUPPORTED || !cmd.flags) in ib_uverbs_rereg_mr()
1082 if ((cmd.flags & IB_MR_REREG_TRANS) && in ib_uverbs_rereg_mr()
1083 (!cmd.start || !cmd.hca_va || 0 >= cmd.length || in ib_uverbs_rereg_mr()
1084 (cmd.start & ~PAGE_MASK) != (cmd.hca_va & ~PAGE_MASK))) in ib_uverbs_rereg_mr()
1087 uobj = idr_write_uobj(&ib_uverbs_mr_idr, cmd.mr_handle, in ib_uverbs_rereg_mr()
1095 if (cmd.flags & IB_MR_REREG_ACCESS) { in ib_uverbs_rereg_mr()
1096 ret = ib_check_mr_access(cmd.access_flags); in ib_uverbs_rereg_mr()
1101 if (cmd.flags & IB_MR_REREG_PD) { in ib_uverbs_rereg_mr()
1102 pd = idr_read_pd(cmd.pd_handle, file->ucontext); in ib_uverbs_rereg_mr()
1115 ret = mr->device->rereg_user_mr(mr, cmd.flags, cmd.start, in ib_uverbs_rereg_mr()
1116 cmd.length, cmd.hca_va, in ib_uverbs_rereg_mr()
1117 cmd.access_flags, pd, &udata); in ib_uverbs_rereg_mr()
1119 if (cmd.flags & IB_MR_REREG_PD) { in ib_uverbs_rereg_mr()
1132 if (copy_to_user((void __user *)(unsigned long)cmd.response, in ib_uverbs_rereg_mr()
1139 if (cmd.flags & IB_MR_REREG_PD) in ib_uverbs_rereg_mr()
1154 struct ib_uverbs_dereg_mr cmd; in ib_uverbs_dereg_mr() local
1159 if (copy_from_user(&cmd, buf, sizeof cmd)) in ib_uverbs_dereg_mr()
1162 uobj = idr_write_uobj(&ib_uverbs_mr_idr, cmd.mr_handle, file->ucontext); in ib_uverbs_dereg_mr()
1193 struct ib_uverbs_alloc_mw cmd; in ib_uverbs_alloc_mw() local
1203 if (copy_from_user(&cmd, buf, sizeof(cmd))) in ib_uverbs_alloc_mw()
1213 pd = idr_read_pd(cmd.pd_handle, file->ucontext); in ib_uverbs_alloc_mw()
1219 mw = pd->device->alloc_mw(pd, cmd.mw_type); in ib_uverbs_alloc_mw()
1239 if (copy_to_user((void __user *)(unsigned long)cmd.response, in ib_uverbs_alloc_mw()
1276 struct ib_uverbs_dealloc_mw cmd; in ib_uverbs_dealloc_mw() local
1281 if (copy_from_user(&cmd, buf, sizeof(cmd))) in ib_uverbs_dealloc_mw()
1284 uobj = idr_write_uobj(&ib_uverbs_mw_idr, cmd.mw_handle, file->ucontext); in ib_uverbs_dealloc_mw()
1315 struct ib_uverbs_create_comp_channel cmd; in ib_uverbs_create_comp_channel() local
1323 if (copy_from_user(&cmd, buf, sizeof cmd)) in ib_uverbs_create_comp_channel()
1337 if (copy_to_user((void __user *) (unsigned long) cmd.response, in ib_uverbs_create_comp_channel()
1352 struct ib_uverbs_ex_create_cq *cmd, in create_cq() argument
1368 if (cmd->comp_vector >= file->device->num_comp_vectors) in create_cq()
1375 init_uobj(&obj->uobject, cmd->user_handle, file->ucontext, &cq_lock_class); in create_cq()
1378 if (cmd->comp_channel >= 0) { in create_cq()
1379 ev_file = ib_uverbs_lookup_comp_file(cmd->comp_channel); in create_cq()
1392 attr.cqe = cmd->cqe; in create_cq()
1393 attr.comp_vector = cmd->comp_vector; in create_cq()
1395 if (cmd_sz > offsetof(typeof(*cmd), flags) + sizeof(cmd->flags)) in create_cq()
1396 attr.flags = cmd->flags; in create_cq()
1470 struct ib_uverbs_create_cq cmd; in ib_uverbs_create_cq() local
1480 if (copy_from_user(&cmd, buf, sizeof(cmd))) in ib_uverbs_create_cq()
1483 INIT_UDATA(&ucore, buf, (unsigned long)cmd.response, sizeof(cmd), sizeof(resp)); in ib_uverbs_create_cq()
1485 INIT_UDATA(&uhw, buf + sizeof(cmd), in ib_uverbs_create_cq()
1486 (unsigned long)cmd.response + sizeof(resp), in ib_uverbs_create_cq()
1487 in_len - sizeof(cmd), out_len - sizeof(resp)); in ib_uverbs_create_cq()
1490 cmd_ex.user_handle = cmd.user_handle; in ib_uverbs_create_cq()
1491 cmd_ex.cqe = cmd.cqe; in ib_uverbs_create_cq()
1492 cmd_ex.comp_vector = cmd.comp_vector; in ib_uverbs_create_cq()
1493 cmd_ex.comp_channel = cmd.comp_channel; in ib_uverbs_create_cq()
1497 sizeof(cmd.comp_channel), ib_uverbs_create_cq_cb, in ib_uverbs_create_cq()
1523 struct ib_uverbs_ex_create_cq cmd; in ib_uverbs_ex_create_cq() local
1527 if (ucore->inlen < sizeof(cmd)) in ib_uverbs_ex_create_cq()
1530 err = ib_copy_from_udata(&cmd, ucore, sizeof(cmd)); in ib_uverbs_ex_create_cq()
1534 if (cmd.comp_mask) in ib_uverbs_ex_create_cq()
1537 if (cmd.reserved) in ib_uverbs_ex_create_cq()
1544 obj = create_cq(file, ib_dev, ucore, uhw, &cmd, in ib_uverbs_ex_create_cq()
1545 min(ucore->inlen, sizeof(cmd)), in ib_uverbs_ex_create_cq()
1559 struct ib_uverbs_resize_cq cmd; in ib_uverbs_resize_cq() local
1565 if (copy_from_user(&cmd, buf, sizeof cmd)) in ib_uverbs_resize_cq()
1568 INIT_UDATA(&udata, buf + sizeof cmd, in ib_uverbs_resize_cq()
1569 (unsigned long) cmd.response + sizeof resp, in ib_uverbs_resize_cq()
1570 in_len - sizeof cmd, out_len - sizeof resp); in ib_uverbs_resize_cq()
1572 cq = idr_read_cq(cmd.cq_handle, file->ucontext, 0); in ib_uverbs_resize_cq()
1576 ret = cq->device->resize_cq(cq, cmd.cqe, &udata); in ib_uverbs_resize_cq()
1582 if (copy_to_user((void __user *) (unsigned long) cmd.response, in ib_uverbs_resize_cq()
1623 struct ib_uverbs_poll_cq cmd; in ib_uverbs_poll_cq() local
1631 if (copy_from_user(&cmd, buf, sizeof cmd)) in ib_uverbs_poll_cq()
1634 cq = idr_read_cq(cmd.cq_handle, file->ucontext, 0); in ib_uverbs_poll_cq()
1639 header_ptr = (void __user *)(unsigned long) cmd.response; in ib_uverbs_poll_cq()
1643 while (resp.count < cmd.ne) { in ib_uverbs_poll_cq()
1675 struct ib_uverbs_req_notify_cq cmd; in ib_uverbs_req_notify_cq() local
1678 if (copy_from_user(&cmd, buf, sizeof cmd)) in ib_uverbs_req_notify_cq()
1681 cq = idr_read_cq(cmd.cq_handle, file->ucontext, 0); in ib_uverbs_req_notify_cq()
1685 ib_req_notify_cq(cq, cmd.solicited_only ? in ib_uverbs_req_notify_cq()
1698 struct ib_uverbs_destroy_cq cmd; in ib_uverbs_destroy_cq() local
1706 if (copy_from_user(&cmd, buf, sizeof cmd)) in ib_uverbs_destroy_cq()
1709 uobj = idr_write_uobj(&ib_uverbs_cq_idr, cmd.cq_handle, file->ucontext); in ib_uverbs_destroy_cq()
1739 if (copy_to_user((void __user *) (unsigned long) cmd.response, in ib_uverbs_destroy_cq()
1749 struct ib_uverbs_ex_create_qp *cmd, in create_qp() argument
1769 if (cmd->qp_type == IB_QPT_RAW_PACKET && !capable(CAP_NET_RAW)) in create_qp()
1776 init_uobj(&obj->uevent.uobject, cmd->user_handle, file->ucontext, in create_qp()
1780 if (cmd->qp_type == IB_QPT_XRC_TGT) { in create_qp()
1781 xrcd = idr_read_xrcd(cmd->pd_handle, file->ucontext, in create_qp()
1789 if (cmd->qp_type == IB_QPT_XRC_INI) { in create_qp()
1790 cmd->max_recv_wr = 0; in create_qp()
1791 cmd->max_recv_sge = 0; in create_qp()
1793 if (cmd->is_srq) { in create_qp()
1794 srq = idr_read_srq(cmd->srq_handle, in create_qp()
1802 if (cmd->recv_cq_handle != cmd->send_cq_handle) { in create_qp()
1803 rcq = idr_read_cq(cmd->recv_cq_handle, in create_qp()
1812 scq = idr_read_cq(cmd->send_cq_handle, file->ucontext, !!rcq); in create_qp()
1814 pd = idr_read_pd(cmd->pd_handle, file->ucontext); in create_qp()
1829 attr.sq_sig_type = cmd->sq_sig_all ? IB_SIGNAL_ALL_WR : in create_qp()
1831 attr.qp_type = cmd->qp_type; in create_qp()
1834 attr.cap.max_send_wr = cmd->max_send_wr; in create_qp()
1835 attr.cap.max_recv_wr = cmd->max_recv_wr; in create_qp()
1836 attr.cap.max_send_sge = cmd->max_send_sge; in create_qp()
1837 attr.cap.max_recv_sge = cmd->max_recv_sge; in create_qp()
1838 attr.cap.max_inline_data = cmd->max_inline_data; in create_qp()
1844 if (cmd_sz >= offsetof(typeof(*cmd), create_flags) + in create_qp()
1845 sizeof(cmd->create_flags)) in create_qp()
1846 attr.create_flags = cmd->create_flags; in create_qp()
1853 buf = (void *)cmd + sizeof(*cmd); in create_qp()
1854 if (cmd_sz > sizeof(*cmd)) in create_qp()
1856 cmd_sz - sizeof(*cmd) - 1))) { in create_qp()
1861 if (cmd->qp_type == IB_QPT_XRC_TGT) in create_qp()
1871 if (cmd->qp_type != IB_QPT_XRC_TGT) { in create_qp()
1974 struct ib_uverbs_create_qp cmd; in ib_uverbs_create_qp() local
1984 if (copy_from_user(&cmd, buf, sizeof(cmd))) in ib_uverbs_create_qp()
1987 INIT_UDATA(&ucore, buf, (unsigned long)cmd.response, sizeof(cmd), in ib_uverbs_create_qp()
1989 INIT_UDATA(&uhw, buf + sizeof(cmd), in ib_uverbs_create_qp()
1990 (unsigned long)cmd.response + resp_size, in ib_uverbs_create_qp()
1991 in_len - sizeof(cmd), out_len - resp_size); in ib_uverbs_create_qp()
1994 cmd_ex.user_handle = cmd.user_handle; in ib_uverbs_create_qp()
1995 cmd_ex.pd_handle = cmd.pd_handle; in ib_uverbs_create_qp()
1996 cmd_ex.send_cq_handle = cmd.send_cq_handle; in ib_uverbs_create_qp()
1997 cmd_ex.recv_cq_handle = cmd.recv_cq_handle; in ib_uverbs_create_qp()
1998 cmd_ex.srq_handle = cmd.srq_handle; in ib_uverbs_create_qp()
1999 cmd_ex.max_send_wr = cmd.max_send_wr; in ib_uverbs_create_qp()
2000 cmd_ex.max_recv_wr = cmd.max_recv_wr; in ib_uverbs_create_qp()
2001 cmd_ex.max_send_sge = cmd.max_send_sge; in ib_uverbs_create_qp()
2002 cmd_ex.max_recv_sge = cmd.max_recv_sge; in ib_uverbs_create_qp()
2003 cmd_ex.max_inline_data = cmd.max_inline_data; in ib_uverbs_create_qp()
2004 cmd_ex.sq_sig_all = cmd.sq_sig_all; in ib_uverbs_create_qp()
2005 cmd_ex.qp_type = cmd.qp_type; in ib_uverbs_create_qp()
2006 cmd_ex.is_srq = cmd.is_srq; in ib_uverbs_create_qp()
2010 sizeof(cmd.is_srq), ib_uverbs_create_qp_cb, in ib_uverbs_create_qp()
2035 struct ib_uverbs_ex_create_qp cmd = {0}; in ib_uverbs_ex_create_qp() local
2038 if (ucore->inlen < (offsetof(typeof(cmd), comp_mask) + in ib_uverbs_ex_create_qp()
2039 sizeof(cmd.comp_mask))) in ib_uverbs_ex_create_qp()
2042 err = ib_copy_from_udata(&cmd, ucore, min(sizeof(cmd), ucore->inlen)); in ib_uverbs_ex_create_qp()
2046 if (cmd.comp_mask) in ib_uverbs_ex_create_qp()
2049 if (cmd.reserved) in ib_uverbs_ex_create_qp()
2056 err = create_qp(file, ucore, uhw, &cmd, in ib_uverbs_ex_create_qp()
2057 min(ucore->inlen, sizeof(cmd)), in ib_uverbs_ex_create_qp()
2070 struct ib_uverbs_open_qp cmd; in ib_uverbs_open_qp() local
2083 if (copy_from_user(&cmd, buf, sizeof cmd)) in ib_uverbs_open_qp()
2086 INIT_UDATA(&udata, buf + sizeof cmd, in ib_uverbs_open_qp()
2087 (unsigned long) cmd.response + sizeof resp, in ib_uverbs_open_qp()
2088 in_len - sizeof cmd, out_len - sizeof resp); in ib_uverbs_open_qp()
2094 init_uobj(&obj->uevent.uobject, cmd.user_handle, file->ucontext, &qp_lock_class); in ib_uverbs_open_qp()
2097 xrcd = idr_read_xrcd(cmd.pd_handle, file->ucontext, &xrcd_uobj); in ib_uverbs_open_qp()
2105 attr.qp_num = cmd.qpn; in ib_uverbs_open_qp()
2106 attr.qp_type = cmd.qp_type; in ib_uverbs_open_qp()
2129 if (copy_to_user((void __user *) (unsigned long) cmd.response, in ib_uverbs_open_qp()
2166 struct ib_uverbs_query_qp cmd; in ib_uverbs_query_qp() local
2173 if (copy_from_user(&cmd, buf, sizeof cmd)) in ib_uverbs_query_qp()
2183 qp = idr_read_qp(cmd.qp_handle, file->ucontext); in ib_uverbs_query_qp()
2189 ret = ib_query_qp(qp, attr, cmd.attr_mask, init_attr); in ib_uverbs_query_qp()
2251 if (copy_to_user((void __user *) (unsigned long) cmd.response, in ib_uverbs_query_qp()
2281 struct ib_uverbs_modify_qp cmd; in ib_uverbs_modify_qp() local
2287 if (copy_from_user(&cmd, buf, sizeof cmd)) in ib_uverbs_modify_qp()
2290 INIT_UDATA(&udata, buf + sizeof cmd, NULL, in_len - sizeof cmd, in ib_uverbs_modify_qp()
2297 qp = idr_read_qp(cmd.qp_handle, file->ucontext); in ib_uverbs_modify_qp()
2303 attr->qp_state = cmd.qp_state; in ib_uverbs_modify_qp()
2304 attr->cur_qp_state = cmd.cur_qp_state; in ib_uverbs_modify_qp()
2305 attr->path_mtu = cmd.path_mtu; in ib_uverbs_modify_qp()
2306 attr->path_mig_state = cmd.path_mig_state; in ib_uverbs_modify_qp()
2307 attr->qkey = cmd.qkey; in ib_uverbs_modify_qp()
2308 attr->rq_psn = cmd.rq_psn; in ib_uverbs_modify_qp()
2309 attr->sq_psn = cmd.sq_psn; in ib_uverbs_modify_qp()
2310 attr->dest_qp_num = cmd.dest_qp_num; in ib_uverbs_modify_qp()
2311 attr->qp_access_flags = cmd.qp_access_flags; in ib_uverbs_modify_qp()
2312 attr->pkey_index = cmd.pkey_index; in ib_uverbs_modify_qp()
2313 attr->alt_pkey_index = cmd.alt_pkey_index; in ib_uverbs_modify_qp()
2314 attr->en_sqd_async_notify = cmd.en_sqd_async_notify; in ib_uverbs_modify_qp()
2315 attr->max_rd_atomic = cmd.max_rd_atomic; in ib_uverbs_modify_qp()
2316 attr->max_dest_rd_atomic = cmd.max_dest_rd_atomic; in ib_uverbs_modify_qp()
2317 attr->min_rnr_timer = cmd.min_rnr_timer; in ib_uverbs_modify_qp()
2318 attr->port_num = cmd.port_num; in ib_uverbs_modify_qp()
2319 attr->timeout = cmd.timeout; in ib_uverbs_modify_qp()
2320 attr->retry_cnt = cmd.retry_cnt; in ib_uverbs_modify_qp()
2321 attr->rnr_retry = cmd.rnr_retry; in ib_uverbs_modify_qp()
2322 attr->alt_port_num = cmd.alt_port_num; in ib_uverbs_modify_qp()
2323 attr->alt_timeout = cmd.alt_timeout; in ib_uverbs_modify_qp()
2325 memcpy(attr->ah_attr.grh.dgid.raw, cmd.dest.dgid, 16); in ib_uverbs_modify_qp()
2326 attr->ah_attr.grh.flow_label = cmd.dest.flow_label; in ib_uverbs_modify_qp()
2327 attr->ah_attr.grh.sgid_index = cmd.dest.sgid_index; in ib_uverbs_modify_qp()
2328 attr->ah_attr.grh.hop_limit = cmd.dest.hop_limit; in ib_uverbs_modify_qp()
2329 attr->ah_attr.grh.traffic_class = cmd.dest.traffic_class; in ib_uverbs_modify_qp()
2330 attr->ah_attr.dlid = cmd.dest.dlid; in ib_uverbs_modify_qp()
2331 attr->ah_attr.sl = cmd.dest.sl; in ib_uverbs_modify_qp()
2332 attr->ah_attr.src_path_bits = cmd.dest.src_path_bits; in ib_uverbs_modify_qp()
2333 attr->ah_attr.static_rate = cmd.dest.static_rate; in ib_uverbs_modify_qp()
2334 attr->ah_attr.ah_flags = cmd.dest.is_global ? IB_AH_GRH : 0; in ib_uverbs_modify_qp()
2335 attr->ah_attr.port_num = cmd.dest.port_num; in ib_uverbs_modify_qp()
2337 memcpy(attr->alt_ah_attr.grh.dgid.raw, cmd.alt_dest.dgid, 16); in ib_uverbs_modify_qp()
2338 attr->alt_ah_attr.grh.flow_label = cmd.alt_dest.flow_label; in ib_uverbs_modify_qp()
2339 attr->alt_ah_attr.grh.sgid_index = cmd.alt_dest.sgid_index; in ib_uverbs_modify_qp()
2340 attr->alt_ah_attr.grh.hop_limit = cmd.alt_dest.hop_limit; in ib_uverbs_modify_qp()
2341 attr->alt_ah_attr.grh.traffic_class = cmd.alt_dest.traffic_class; in ib_uverbs_modify_qp()
2342 attr->alt_ah_attr.dlid = cmd.alt_dest.dlid; in ib_uverbs_modify_qp()
2343 attr->alt_ah_attr.sl = cmd.alt_dest.sl; in ib_uverbs_modify_qp()
2344 attr->alt_ah_attr.src_path_bits = cmd.alt_dest.src_path_bits; in ib_uverbs_modify_qp()
2345 attr->alt_ah_attr.static_rate = cmd.alt_dest.static_rate; in ib_uverbs_modify_qp()
2346 attr->alt_ah_attr.ah_flags = cmd.alt_dest.is_global ? IB_AH_GRH : 0; in ib_uverbs_modify_qp()
2347 attr->alt_ah_attr.port_num = cmd.alt_dest.port_num; in ib_uverbs_modify_qp()
2350 ret = ib_resolve_eth_dmac(qp, attr, &cmd.attr_mask); in ib_uverbs_modify_qp()
2354 modify_qp_mask(qp->qp_type, cmd.attr_mask), &udata); in ib_uverbs_modify_qp()
2356 ret = ib_modify_qp(qp, attr, modify_qp_mask(qp->qp_type, cmd.attr_mask)); in ib_uverbs_modify_qp()
2378 struct ib_uverbs_destroy_qp cmd; in ib_uverbs_destroy_qp() local
2385 if (copy_from_user(&cmd, buf, sizeof cmd)) in ib_uverbs_destroy_qp()
2390 uobj = idr_write_uobj(&ib_uverbs_qp_idr, cmd.qp_handle, file->ucontext); in ib_uverbs_destroy_qp()
2425 if (copy_to_user((void __user *) (unsigned long) cmd.response, in ib_uverbs_destroy_qp()
2443 struct ib_uverbs_post_send cmd; in ib_uverbs_post_send() local
2453 if (copy_from_user(&cmd, buf, sizeof cmd)) in ib_uverbs_post_send()
2456 if (in_len < sizeof cmd + cmd.wqe_size * cmd.wr_count + in ib_uverbs_post_send()
2457 cmd.sge_count * sizeof (struct ib_uverbs_sge)) in ib_uverbs_post_send()
2460 if (cmd.wqe_size < sizeof (struct ib_uverbs_send_wr)) in ib_uverbs_post_send()
2463 user_wr = kmalloc(cmd.wqe_size, GFP_KERNEL); in ib_uverbs_post_send()
2467 qp = idr_read_qp(cmd.qp_handle, file->ucontext); in ib_uverbs_post_send()
2474 for (i = 0; i < cmd.wr_count; ++i) { in ib_uverbs_post_send()
2476 buf + sizeof cmd + i * cmd.wqe_size, in ib_uverbs_post_send()
2477 cmd.wqe_size)) { in ib_uverbs_post_send()
2482 if (user_wr->num_sge + sg_ind > cmd.sge_count) { in ib_uverbs_post_send()
2584 buf + sizeof cmd + in ib_uverbs_post_send()
2585 cmd.wr_count * cmd.wqe_size + in ib_uverbs_post_send()
2605 if (copy_to_user((void __user *) (unsigned long) cmd.response, in ib_uverbs_post_send()
2716 struct ib_uverbs_post_recv cmd; in ib_uverbs_post_recv() local
2722 if (copy_from_user(&cmd, buf, sizeof cmd)) in ib_uverbs_post_recv()
2725 wr = ib_uverbs_unmarshall_recv(buf + sizeof cmd, in ib_uverbs_post_recv()
2726 in_len - sizeof cmd, cmd.wr_count, in ib_uverbs_post_recv()
2727 cmd.sge_count, cmd.wqe_size); in ib_uverbs_post_recv()
2731 qp = idr_read_qp(cmd.qp_handle, file->ucontext); in ib_uverbs_post_recv()
2747 if (copy_to_user((void __user *) (unsigned long) cmd.response, in ib_uverbs_post_recv()
2766 struct ib_uverbs_post_srq_recv cmd; in ib_uverbs_post_srq_recv() local
2772 if (copy_from_user(&cmd, buf, sizeof cmd)) in ib_uverbs_post_srq_recv()
2775 wr = ib_uverbs_unmarshall_recv(buf + sizeof cmd, in ib_uverbs_post_srq_recv()
2776 in_len - sizeof cmd, cmd.wr_count, in ib_uverbs_post_srq_recv()
2777 cmd.sge_count, cmd.wqe_size); in ib_uverbs_post_srq_recv()
2781 srq = idr_read_srq(cmd.srq_handle, file->ucontext); in ib_uverbs_post_srq_recv()
2797 if (copy_to_user((void __user *) (unsigned long) cmd.response, in ib_uverbs_post_srq_recv()
2816 struct ib_uverbs_create_ah cmd; in ib_uverbs_create_ah() local
2827 if (copy_from_user(&cmd, buf, sizeof cmd)) in ib_uverbs_create_ah()
2834 init_uobj(uobj, cmd.user_handle, file->ucontext, &ah_lock_class); in ib_uverbs_create_ah()
2837 pd = idr_read_pd(cmd.pd_handle, file->ucontext); in ib_uverbs_create_ah()
2843 attr.dlid = cmd.attr.dlid; in ib_uverbs_create_ah()
2844 attr.sl = cmd.attr.sl; in ib_uverbs_create_ah()
2845 attr.src_path_bits = cmd.attr.src_path_bits; in ib_uverbs_create_ah()
2846 attr.static_rate = cmd.attr.static_rate; in ib_uverbs_create_ah()
2847 attr.ah_flags = cmd.attr.is_global ? IB_AH_GRH : 0; in ib_uverbs_create_ah()
2848 attr.port_num = cmd.attr.port_num; in ib_uverbs_create_ah()
2849 attr.grh.flow_label = cmd.attr.grh.flow_label; in ib_uverbs_create_ah()
2850 attr.grh.sgid_index = cmd.attr.grh.sgid_index; in ib_uverbs_create_ah()
2851 attr.grh.hop_limit = cmd.attr.grh.hop_limit; in ib_uverbs_create_ah()
2852 attr.grh.traffic_class = cmd.attr.grh.traffic_class; in ib_uverbs_create_ah()
2854 memcpy(attr.grh.dgid.raw, cmd.attr.grh.dgid, 16); in ib_uverbs_create_ah()
2871 if (copy_to_user((void __user *) (unsigned long) cmd.response, in ib_uverbs_create_ah()
2907 struct ib_uverbs_destroy_ah cmd; in ib_uverbs_destroy_ah() local
2912 if (copy_from_user(&cmd, buf, sizeof cmd)) in ib_uverbs_destroy_ah()
2915 uobj = idr_write_uobj(&ib_uverbs_ah_idr, cmd.ah_handle, file->ucontext); in ib_uverbs_destroy_ah()
2945 struct ib_uverbs_attach_mcast cmd; in ib_uverbs_attach_mcast() local
2951 if (copy_from_user(&cmd, buf, sizeof cmd)) in ib_uverbs_attach_mcast()
2954 qp = idr_write_qp(cmd.qp_handle, file->ucontext); in ib_uverbs_attach_mcast()
2961 if (cmd.mlid == mcast->lid && in ib_uverbs_attach_mcast()
2962 !memcmp(cmd.gid, mcast->gid.raw, sizeof mcast->gid.raw)) { in ib_uverbs_attach_mcast()
2973 mcast->lid = cmd.mlid; in ib_uverbs_attach_mcast()
2974 memcpy(mcast->gid.raw, cmd.gid, sizeof mcast->gid.raw); in ib_uverbs_attach_mcast()
2976 ret = ib_attach_mcast(qp, &mcast->gid, cmd.mlid); in ib_uverbs_attach_mcast()
2993 struct ib_uverbs_detach_mcast cmd; in ib_uverbs_detach_mcast() local
2999 if (copy_from_user(&cmd, buf, sizeof cmd)) in ib_uverbs_detach_mcast()
3002 qp = idr_write_qp(cmd.qp_handle, file->ucontext); in ib_uverbs_detach_mcast()
3006 ret = ib_detach_mcast(qp, (union ib_gid *) cmd.gid, cmd.mlid); in ib_uverbs_detach_mcast()
3013 if (cmd.mlid == mcast->lid && in ib_uverbs_detach_mcast()
3014 !memcmp(cmd.gid, mcast->gid.raw, sizeof mcast->gid.raw)) { in ib_uverbs_detach_mcast()
3074 struct ib_uverbs_create_flow cmd; in ib_uverbs_ex_create_flow() local
3086 if (ucore->inlen < sizeof(cmd)) in ib_uverbs_ex_create_flow()
3092 err = ib_copy_from_udata(&cmd, ucore, sizeof(cmd)); in ib_uverbs_ex_create_flow()
3096 ucore->inbuf += sizeof(cmd); in ib_uverbs_ex_create_flow()
3097 ucore->inlen -= sizeof(cmd); in ib_uverbs_ex_create_flow()
3099 if (cmd.comp_mask) in ib_uverbs_ex_create_flow()
3102 if ((cmd.flow_attr.type == IB_FLOW_ATTR_SNIFFER && in ib_uverbs_ex_create_flow()
3106 if (cmd.flow_attr.num_of_specs > IB_FLOW_SPEC_SUPPORT_LAYERS) in ib_uverbs_ex_create_flow()
3109 if (cmd.flow_attr.size > ucore->inlen || in ib_uverbs_ex_create_flow()
3110 cmd.flow_attr.size > in ib_uverbs_ex_create_flow()
3111 (cmd.flow_attr.num_of_specs * sizeof(struct ib_uverbs_flow_spec))) in ib_uverbs_ex_create_flow()
3114 if (cmd.flow_attr.reserved[0] || in ib_uverbs_ex_create_flow()
3115 cmd.flow_attr.reserved[1]) in ib_uverbs_ex_create_flow()
3118 if (cmd.flow_attr.num_of_specs) { in ib_uverbs_ex_create_flow()
3119 kern_flow_attr = kmalloc(sizeof(*kern_flow_attr) + cmd.flow_attr.size, in ib_uverbs_ex_create_flow()
3124 memcpy(kern_flow_attr, &cmd.flow_attr, sizeof(*kern_flow_attr)); in ib_uverbs_ex_create_flow()
3126 cmd.flow_attr.size); in ib_uverbs_ex_create_flow()
3130 kern_flow_attr = &cmd.flow_attr; in ib_uverbs_ex_create_flow()
3141 qp = idr_read_qp(cmd.qp_handle, file->ucontext); in ib_uverbs_ex_create_flow()
3147 flow_attr = kmalloc(sizeof(*flow_attr) + cmd.flow_attr.size, GFP_KERNEL); in ib_uverbs_ex_create_flow()
3163 cmd.flow_attr.size > offsetof(struct ib_uverbs_flow_spec, reserved) && in ib_uverbs_ex_create_flow()
3164 cmd.flow_attr.size >= in ib_uverbs_ex_create_flow()
3171 cmd.flow_attr.size -= ((struct ib_uverbs_flow_spec *)kern_spec)->size; in ib_uverbs_ex_create_flow()
3175 if (cmd.flow_attr.size || (i != flow_attr->num_of_specs)) { in ib_uverbs_ex_create_flow()
3177 i, cmd.flow_attr.size); in ib_uverbs_ex_create_flow()
3211 if (cmd.flow_attr.num_of_specs) in ib_uverbs_ex_create_flow()
3225 if (cmd.flow_attr.num_of_specs) in ib_uverbs_ex_create_flow()
3235 struct ib_uverbs_destroy_flow cmd; in ib_uverbs_ex_destroy_flow() local
3240 if (ucore->inlen < sizeof(cmd)) in ib_uverbs_ex_destroy_flow()
3243 ret = ib_copy_from_udata(&cmd, ucore, sizeof(cmd)); in ib_uverbs_ex_destroy_flow()
3247 if (cmd.comp_mask) in ib_uverbs_ex_destroy_flow()
3250 uobj = idr_write_uobj(&ib_uverbs_rule_idr, cmd.flow_handle, in ib_uverbs_ex_destroy_flow()
3275 struct ib_uverbs_create_xsrq *cmd, in __uverbs_create_xsrq() argument
3290 init_uobj(&obj->uevent.uobject, cmd->user_handle, file->ucontext, &srq_lock_class); in __uverbs_create_xsrq()
3293 if (cmd->srq_type == IB_SRQT_XRC) { in __uverbs_create_xsrq()
3294 attr.ext.xrc.xrcd = idr_read_xrcd(cmd->xrcd_handle, file->ucontext, &xrcd_uobj); in __uverbs_create_xsrq()
3303 attr.ext.xrc.cq = idr_read_cq(cmd->cq_handle, file->ucontext, 0); in __uverbs_create_xsrq()
3310 pd = idr_read_pd(cmd->pd_handle, file->ucontext); in __uverbs_create_xsrq()
3318 attr.srq_type = cmd->srq_type; in __uverbs_create_xsrq()
3319 attr.attr.max_wr = cmd->max_wr; in __uverbs_create_xsrq()
3320 attr.attr.max_sge = cmd->max_sge; in __uverbs_create_xsrq()
3321 attr.attr.srq_limit = cmd->srq_limit; in __uverbs_create_xsrq()
3334 srq->srq_type = cmd->srq_type; in __uverbs_create_xsrq()
3339 if (cmd->srq_type == IB_SRQT_XRC) { in __uverbs_create_xsrq()
3358 if (cmd->srq_type == IB_SRQT_XRC) in __uverbs_create_xsrq()
3361 if (copy_to_user((void __user *) (unsigned long) cmd->response, in __uverbs_create_xsrq()
3367 if (cmd->srq_type == IB_SRQT_XRC) { in __uverbs_create_xsrq()
3393 if (cmd->srq_type == IB_SRQT_XRC) in __uverbs_create_xsrq()
3397 if (cmd->srq_type == IB_SRQT_XRC) { in __uverbs_create_xsrq()
3412 struct ib_uverbs_create_srq cmd; in ib_uverbs_create_srq() local
3421 if (copy_from_user(&cmd, buf, sizeof cmd)) in ib_uverbs_create_srq()
3424 xcmd.response = cmd.response; in ib_uverbs_create_srq()
3425 xcmd.user_handle = cmd.user_handle; in ib_uverbs_create_srq()
3427 xcmd.pd_handle = cmd.pd_handle; in ib_uverbs_create_srq()
3428 xcmd.max_wr = cmd.max_wr; in ib_uverbs_create_srq()
3429 xcmd.max_sge = cmd.max_sge; in ib_uverbs_create_srq()
3430 xcmd.srq_limit = cmd.srq_limit; in ib_uverbs_create_srq()
3432 INIT_UDATA(&udata, buf + sizeof cmd, in ib_uverbs_create_srq()
3433 (unsigned long) cmd.response + sizeof resp, in ib_uverbs_create_srq()
3434 in_len - sizeof cmd, out_len - sizeof resp); in ib_uverbs_create_srq()
3447 struct ib_uverbs_create_xsrq cmd; in ib_uverbs_create_xsrq() local
3455 if (copy_from_user(&cmd, buf, sizeof cmd)) in ib_uverbs_create_xsrq()
3458 INIT_UDATA(&udata, buf + sizeof cmd, in ib_uverbs_create_xsrq()
3459 (unsigned long) cmd.response + sizeof resp, in ib_uverbs_create_xsrq()
3460 in_len - sizeof cmd, out_len - sizeof resp); in ib_uverbs_create_xsrq()
3462 ret = __uverbs_create_xsrq(file, ib_dev, &cmd, &udata); in ib_uverbs_create_xsrq()
3474 struct ib_uverbs_modify_srq cmd; in ib_uverbs_modify_srq() local
3480 if (copy_from_user(&cmd, buf, sizeof cmd)) in ib_uverbs_modify_srq()
3483 INIT_UDATA(&udata, buf + sizeof cmd, NULL, in_len - sizeof cmd, in ib_uverbs_modify_srq()
3486 srq = idr_read_srq(cmd.srq_handle, file->ucontext); in ib_uverbs_modify_srq()
3490 attr.max_wr = cmd.max_wr; in ib_uverbs_modify_srq()
3491 attr.srq_limit = cmd.srq_limit; in ib_uverbs_modify_srq()
3493 ret = srq->device->modify_srq(srq, &attr, cmd.attr_mask, &udata); in ib_uverbs_modify_srq()
3505 struct ib_uverbs_query_srq cmd; in ib_uverbs_query_srq() local
3514 if (copy_from_user(&cmd, buf, sizeof cmd)) in ib_uverbs_query_srq()
3517 srq = idr_read_srq(cmd.srq_handle, file->ucontext); in ib_uverbs_query_srq()
3534 if (copy_to_user((void __user *) (unsigned long) cmd.response, in ib_uverbs_query_srq()
3546 struct ib_uverbs_destroy_srq cmd; in ib_uverbs_destroy_srq() local
3555 if (copy_from_user(&cmd, buf, sizeof cmd)) in ib_uverbs_destroy_srq()
3558 uobj = idr_write_uobj(&ib_uverbs_srq_idr, cmd.srq_handle, file->ucontext); in ib_uverbs_destroy_srq()
3592 if (copy_to_user((void __user *) (unsigned long) cmd.response, in ib_uverbs_destroy_srq()
3605 struct ib_uverbs_ex_query_device cmd; in ib_uverbs_ex_query_device() local
3609 if (ucore->inlen < sizeof(cmd)) in ib_uverbs_ex_query_device()
3612 err = ib_copy_from_udata(&cmd, ucore, sizeof(cmd)); in ib_uverbs_ex_query_device()
3616 if (cmd.comp_mask) in ib_uverbs_ex_query_device()
3619 if (cmd.reserved) in ib_uverbs_ex_query_device()