Lines Matching refs:ucmd

430 		       int has_rq, struct mlx5_ib_qp *qp, struct mlx5_ib_create_qp *ucmd)  in set_rq_size()  argument
448 if (ucmd) { in set_rq_size()
449 qp->rq.wqe_cnt = ucmd->rq_wqe_count; in set_rq_size()
450 if (ucmd->rq_wqe_shift > BITS_PER_BYTE * sizeof(ucmd->rq_wqe_shift)) in set_rq_size()
452 qp->rq.wqe_shift = ucmd->rq_wqe_shift; in set_rq_size()
634 struct mlx5_ib_create_qp *ucmd, in set_user_buf_size() argument
646 if (ucmd->sq_wqe_count && !is_power_of_2(ucmd->sq_wqe_count)) { in set_user_buf_size()
648 ucmd->sq_wqe_count); in set_user_buf_size()
652 qp->sq.wqe_cnt = ucmd->sq_wqe_count; in set_user_buf_size()
878 struct mlx5_ib_create_wq *ucmd) in create_user_rq() argument
886 if (!ucmd->buf_addr) in create_user_rq()
889 rwq->umem = ib_umem_get(&dev->ib_dev, ucmd->buf_addr, rwq->buf_size, 0); in create_user_rq()
908 rwq->wq_sig = !!(ucmd->flags & MLX5_WQ_FLAG_SIGNATURE); in create_user_rq()
913 (unsigned long long)ucmd->buf_addr, rwq->buf_size, in create_user_rq()
917 err = mlx5_ib_db_map_user(ucontext, ucmd->db_addr, &rwq->db); in create_user_rq()
942 struct mlx5_ib_create_qp *ucmd) in _create_user_qp() argument
963 uar_index = ucmd->bfreg_index; in _create_user_qp()
968 ucmd->bfreg_index, true); in _create_user_qp()
993 err = set_user_buf_size(dev, qp, ucmd, base, attr); in _create_user_qp()
997 if (ucmd->buf_addr && ubuffer->buf_size) { in _create_user_qp()
998 ubuffer->buf_addr = ucmd->buf_addr; in _create_user_qp()
1043 err = mlx5_ib_db_map_user(context, ucmd->db_addr, &qp->db); in _create_user_qp()
1701 void *ucmd; member
1713 struct mlx5_ib_create_qp_rss *ucmd = params->ucmd; in create_rss_raw_qp_tir() local
1729 if (ucmd->comp_mask) { in create_rss_raw_qp_tir()
1734 if (ucmd->rx_hash_fields_mask & MLX5_RX_HASH_INNER && in create_rss_raw_qp_tir()
1735 !(ucmd->flags & MLX5_QP_FLAG_TUNNEL_OFFLOADS)) { in create_rss_raw_qp_tir()
1766 if (ucmd->flags & MLX5_QP_FLAG_TUNNEL_OFFLOADS) in create_rss_raw_qp_tir()
1771 if (ucmd->rx_hash_fields_mask & MLX5_RX_HASH_INNER) in create_rss_raw_qp_tir()
1776 switch (ucmd->rx_hash_function) { in create_rss_raw_qp_tir()
1782 if (len != ucmd->rx_key_len) { in create_rss_raw_qp_tir()
1788 memcpy(rss_key, ucmd->rx_hash_key, len); in create_rss_raw_qp_tir()
1796 if (!ucmd->rx_hash_fields_mask) { in create_rss_raw_qp_tir()
1804 if (((ucmd->rx_hash_fields_mask & MLX5_RX_HASH_SRC_IPV4) || in create_rss_raw_qp_tir()
1805 (ucmd->rx_hash_fields_mask & MLX5_RX_HASH_DST_IPV4)) && in create_rss_raw_qp_tir()
1806 ((ucmd->rx_hash_fields_mask & MLX5_RX_HASH_SRC_IPV6) || in create_rss_raw_qp_tir()
1807 (ucmd->rx_hash_fields_mask & MLX5_RX_HASH_DST_IPV6))) { in create_rss_raw_qp_tir()
1813 if ((ucmd->rx_hash_fields_mask & MLX5_RX_HASH_SRC_IPV4) || in create_rss_raw_qp_tir()
1814 (ucmd->rx_hash_fields_mask & MLX5_RX_HASH_DST_IPV4)) in create_rss_raw_qp_tir()
1817 else if ((ucmd->rx_hash_fields_mask & MLX5_RX_HASH_SRC_IPV6) || in create_rss_raw_qp_tir()
1818 (ucmd->rx_hash_fields_mask & MLX5_RX_HASH_DST_IPV6)) in create_rss_raw_qp_tir()
1822 outer_l4 = ((ucmd->rx_hash_fields_mask & MLX5_RX_HASH_SRC_PORT_TCP) || in create_rss_raw_qp_tir()
1823 (ucmd->rx_hash_fields_mask & MLX5_RX_HASH_DST_PORT_TCP)) in create_rss_raw_qp_tir()
1825 ((ucmd->rx_hash_fields_mask & MLX5_RX_HASH_SRC_PORT_UDP) || in create_rss_raw_qp_tir()
1826 (ucmd->rx_hash_fields_mask & MLX5_RX_HASH_DST_PORT_UDP)) in create_rss_raw_qp_tir()
1828 (ucmd->rx_hash_fields_mask & MLX5_RX_HASH_IPSEC_SPI) << 2; in create_rss_raw_qp_tir()
1837 if ((ucmd->rx_hash_fields_mask & MLX5_RX_HASH_SRC_PORT_TCP) || in create_rss_raw_qp_tir()
1838 (ucmd->rx_hash_fields_mask & MLX5_RX_HASH_DST_PORT_TCP)) in create_rss_raw_qp_tir()
1841 else if ((ucmd->rx_hash_fields_mask & MLX5_RX_HASH_SRC_PORT_UDP) || in create_rss_raw_qp_tir()
1842 (ucmd->rx_hash_fields_mask & MLX5_RX_HASH_DST_PORT_UDP)) in create_rss_raw_qp_tir()
1846 if ((ucmd->rx_hash_fields_mask & MLX5_RX_HASH_SRC_IPV4) || in create_rss_raw_qp_tir()
1847 (ucmd->rx_hash_fields_mask & MLX5_RX_HASH_SRC_IPV6)) in create_rss_raw_qp_tir()
1850 if ((ucmd->rx_hash_fields_mask & MLX5_RX_HASH_DST_IPV4) || in create_rss_raw_qp_tir()
1851 (ucmd->rx_hash_fields_mask & MLX5_RX_HASH_DST_IPV6)) in create_rss_raw_qp_tir()
1854 if ((ucmd->rx_hash_fields_mask & MLX5_RX_HASH_SRC_PORT_TCP) || in create_rss_raw_qp_tir()
1855 (ucmd->rx_hash_fields_mask & MLX5_RX_HASH_SRC_PORT_UDP)) in create_rss_raw_qp_tir()
1858 if ((ucmd->rx_hash_fields_mask & MLX5_RX_HASH_DST_PORT_TCP) || in create_rss_raw_qp_tir()
1859 (ucmd->rx_hash_fields_mask & MLX5_RX_HASH_DST_PORT_UDP)) in create_rss_raw_qp_tir()
1862 if (ucmd->rx_hash_fields_mask & MLX5_RX_HASH_IPSEC_SPI) in create_rss_raw_qp_tir()
2066 struct mlx5_ib_create_qp *ucmd = params->ucmd; in create_dci() local
2096 err = set_rq_size(dev, &init_attr->cap, qp->has_rq, qp, ucmd); in create_dci()
2102 if (ucmd->rq_wqe_shift != qp->rq.wqe_shift || in create_dci()
2103 ucmd->rq_wqe_count != qp->rq.wqe_cnt) in create_dci()
2106 if (ucmd->sq_wqe_count > (1 << MLX5_CAP_GEN(mdev, log_max_qp_sz))) in create_dci()
2116 &inlen, base, ucmd); in create_dci()
2121 MLX5_SET(create_qp_in, in, ece, ucmd->ece_options); in create_dci()
2145 ucmd->dci_streams.log_num_concurent); in create_dci()
2147 ucmd->dci_streams.log_num_errored); in create_dci()
2227 struct mlx5_ib_create_qp *ucmd = params->ucmd; in create_user_qp() local
2263 err = set_rq_size(dev, &init_attr->cap, qp->has_rq, qp, ucmd); in create_user_qp()
2269 if (ucmd->rq_wqe_shift != qp->rq.wqe_shift || in create_user_qp()
2270 ucmd->rq_wqe_count != qp->rq.wqe_cnt) in create_user_qp()
2273 if (ucmd->sq_wqe_count > (1 << MLX5_CAP_GEN(mdev, log_max_qp_sz))) in create_user_qp()
2284 &inlen, base, ucmd); in create_user_qp()
2292 MLX5_SET(create_qp_in, in, ece, ucmd->ece_options); in create_user_qp()
2385 qp->raw_packet_qp.sq.ubuffer.buf_addr = ucmd->sq_buf_addr; in create_user_qp()
2723 struct mlx5_ib_create_qp *ucmd = params->ucmd; in create_dct() local
2739 MLX5_SET64(dctc, dctc, dc_access_key, ucmd->access_key); in create_dct()
2742 MLX5_SET(dctc, dctc, ece, ucmd->ece_options); in create_dct()
2862 void *ucmd, struct ib_qp_init_attr *attr) in process_vendor_flags() argument
2869 flags = ((struct mlx5_ib_create_qp_rss *)ucmd)->flags; in process_vendor_flags()
2871 flags = ((struct mlx5_ib_create_qp *)ucmd)->flags; in process_vendor_flags()
3035 size_t ucmd = sizeof(struct mlx5_ib_create_qp); in process_udata_size() local
3041 params->ucmd_size = ucmd; in process_udata_size()
3051 params->inlen = (inlen < min_inlen) ? 0 : min(inlen, ucmd); in process_udata_size()
3062 ucmd = sizeof(struct mlx5_ib_create_qp_rss); in process_udata_size()
3063 params->ucmd_size = ucmd; in process_udata_size()
3064 if (inlen > ucmd && !ib_is_udata_cleared(udata, ucmd, inlen - ucmd)) in process_udata_size()
3067 params->inlen = min(ucmd, inlen); in process_udata_size()
3166 struct mlx5_ib_create_qp *ucmd = params->ucmd; in get_qp_uidx() local
3174 return get_qp_user_index(ucontext, ucmd, sizeof(*ucmd), &params->uidx); in get_qp_uidx()
3261 params.ucmd = kzalloc(params.ucmd_size, GFP_KERNEL); in mlx5_ib_create_qp()
3262 if (!params.ucmd) in mlx5_ib_create_qp()
3265 err = ib_copy_from_udata(params.ucmd, udata, params.inlen); in mlx5_ib_create_qp()
3273 err = process_vendor_flags(dev, qp, params.ucmd, attr); in mlx5_ib_create_qp()
3293 kfree(params.ucmd); in mlx5_ib_create_qp()
3294 params.ucmd = NULL; in mlx5_ib_create_qp()
3321 kfree(params.ucmd); in mlx5_ib_create_qp()
4068 const struct mlx5_ib_modify_qp *ucmd, in __mlx5_ib_modify_qp() argument
4314 if (ucmd->burst_info.max_burst_sz) { in __mlx5_ib_modify_qp()
4318 ucmd->burst_info.max_burst_sz; in __mlx5_ib_modify_qp()
4325 if (ucmd->burst_info.typical_pkt_sz) { in __mlx5_ib_modify_qp()
4329 ucmd->burst_info.typical_pkt_sz; in __mlx5_ib_modify_qp()
4345 ucmd->ece_options : 0; in __mlx5_ib_modify_qp()
4454 int attr_mask, struct mlx5_ib_modify_qp *ucmd, in mlx5_ib_modify_dct() argument
4471 if (MLX5_CAP_GEN(dev->mdev, ece_support) && ucmd->ece_options) in mlx5_ib_modify_dct()
4478 MLX5_SET(dctc, dctc, ece, ucmd->ece_options); in mlx5_ib_modify_dct()
4622 struct mlx5_ib_modify_qp ucmd = {}; in mlx5_ib_modify_qp() local
4637 if (udata->inlen < offsetofend(typeof(ucmd), ece_options)) in mlx5_ib_modify_qp()
4640 if (udata->inlen > sizeof(ucmd) && in mlx5_ib_modify_qp()
4641 !ib_is_udata_cleared(udata, sizeof(ucmd), in mlx5_ib_modify_qp()
4642 udata->inlen - sizeof(ucmd))) in mlx5_ib_modify_qp()
4645 if (ib_copy_from_udata(&ucmd, udata, in mlx5_ib_modify_qp()
4646 min(udata->inlen, sizeof(ucmd)))) in mlx5_ib_modify_qp()
4649 if (ucmd.comp_mask || in mlx5_ib_modify_qp()
4650 memchr_inv(&ucmd.burst_info.reserved, 0, in mlx5_ib_modify_qp()
4651 sizeof(ucmd.burst_info.reserved))) in mlx5_ib_modify_qp()
4662 return mlx5_ib_modify_dct(ibqp, attr, attr_mask, &ucmd, udata); in mlx5_ib_modify_qp()
4712 new_state, &ucmd, &resp, udata); in mlx5_ib_modify_qp()
5273 struct mlx5_ib_create_wq *ucmd, in set_user_rq_size() argument
5280 if (!ucmd->rq_wqe_count) in set_user_rq_size()
5283 rwq->wqe_count = ucmd->rq_wqe_count; in set_user_rq_size()
5284 rwq->wqe_shift = ucmd->rq_wqe_shift; in set_user_rq_size()
5312 struct mlx5_ib_create_wq ucmd = {}; in prepare_user_rq() local
5323 if (udata->inlen > sizeof(ucmd) && in prepare_user_rq()
5324 !ib_is_udata_cleared(udata, sizeof(ucmd), in prepare_user_rq()
5325 udata->inlen - sizeof(ucmd))) { in prepare_user_rq()
5330 if (ib_copy_from_udata(&ucmd, udata, min(sizeof(ucmd), udata->inlen))) { in prepare_user_rq()
5335 if (ucmd.comp_mask & (~MLX5_IB_CREATE_WQ_STRIDING_RQ)) { in prepare_user_rq()
5338 } else if (ucmd.comp_mask & MLX5_IB_CREATE_WQ_STRIDING_RQ) { in prepare_user_rq()
5343 if ((ucmd.single_stride_log_num_of_bytes < in prepare_user_rq()
5345 (ucmd.single_stride_log_num_of_bytes > in prepare_user_rq()
5348 ucmd.single_stride_log_num_of_bytes, in prepare_user_rq()
5354 ucmd.single_wqe_log_num_of_strides)) { in prepare_user_rq()
5358 ucmd.single_wqe_log_num_of_strides, in prepare_user_rq()
5366 ucmd.single_stride_log_num_of_bytes; in prepare_user_rq()
5367 rwq->log_num_strides = ucmd.single_wqe_log_num_of_strides; in prepare_user_rq()
5368 rwq->two_byte_shift_en = !!ucmd.two_byte_shift_en; in prepare_user_rq()
5372 err = set_user_rq_size(dev, init_attr, &ucmd, rwq); in prepare_user_rq()
5378 err = create_user_rq(dev, pd, udata, rwq, &ucmd); in prepare_user_rq()
5384 rwq->user_index = ucmd.user_index; in prepare_user_rq()
5550 struct mlx5_ib_modify_wq ucmd = {}; in mlx5_ib_modify_wq() local
5563 if (udata->inlen > sizeof(ucmd) && in mlx5_ib_modify_wq()
5564 !ib_is_udata_cleared(udata, sizeof(ucmd), in mlx5_ib_modify_wq()
5565 udata->inlen - sizeof(ucmd))) in mlx5_ib_modify_wq()
5568 if (ib_copy_from_udata(&ucmd, udata, min(sizeof(ucmd), udata->inlen))) in mlx5_ib_modify_wq()
5571 if (ucmd.comp_mask || ucmd.reserved) in mlx5_ib_modify_wq()