Lines Matching refs:ucmd

352 		       int has_rq, struct mlx5_ib_qp *qp, struct mlx5_ib_create_qp *ucmd)  in set_rq_size()  argument
370 if (ucmd) { in set_rq_size()
371 qp->rq.wqe_cnt = ucmd->rq_wqe_count; in set_rq_size()
372 if (ucmd->rq_wqe_shift > BITS_PER_BYTE * sizeof(ucmd->rq_wqe_shift)) in set_rq_size()
374 qp->rq.wqe_shift = ucmd->rq_wqe_shift; in set_rq_size()
556 struct mlx5_ib_create_qp *ucmd, in set_user_buf_size() argument
568 if (ucmd->sq_wqe_count && !is_power_of_2(ucmd->sq_wqe_count)) { in set_user_buf_size()
570 ucmd->sq_wqe_count); in set_user_buf_size()
574 qp->sq.wqe_cnt = ucmd->sq_wqe_count; in set_user_buf_size()
832 struct mlx5_ib_create_wq *ucmd) in create_user_rq() argument
842 if (!ucmd->buf_addr) in create_user_rq()
845 rwq->umem = ib_umem_get(&dev->ib_dev, ucmd->buf_addr, rwq->buf_size, 0); in create_user_rq()
852 mlx5_ib_cont_pages(rwq->umem, ucmd->buf_addr, 0, &npages, &page_shift, in create_user_rq()
854 err = mlx5_ib_get_buf_offset(ucmd->buf_addr, page_shift, in create_user_rq()
864 rwq->wq_sig = !!(ucmd->flags & MLX5_WQ_FLAG_SIGNATURE); in create_user_rq()
867 (unsigned long long)ucmd->buf_addr, rwq->buf_size, in create_user_rq()
870 err = mlx5_ib_db_map_user(ucontext, udata, ucmd->db_addr, &rwq->db); in create_user_rq()
895 struct mlx5_ib_create_qp *ucmd) in _create_user_qp() argument
917 uar_index = ucmd->bfreg_index; in _create_user_qp()
922 ucmd->bfreg_index, true); in _create_user_qp()
947 err = set_user_buf_size(dev, qp, ucmd, base, attr); in _create_user_qp()
951 if (ucmd->buf_addr && ubuffer->buf_size) { in _create_user_qp()
952 ubuffer->buf_addr = ucmd->buf_addr; in _create_user_qp()
988 err = mlx5_ib_db_map_user(context, udata, ucmd->db_addr, &qp->db); in _create_user_qp()
1558 void *ucmd; member
1570 struct mlx5_ib_create_qp_rss *ucmd = params->ucmd; in create_rss_raw_qp_tir() local
1586 if (ucmd->comp_mask) { in create_rss_raw_qp_tir()
1591 if (ucmd->rx_hash_fields_mask & MLX5_RX_HASH_INNER && in create_rss_raw_qp_tir()
1592 !(ucmd->flags & MLX5_QP_FLAG_TUNNEL_OFFLOADS)) { in create_rss_raw_qp_tir()
1623 if (ucmd->flags & MLX5_QP_FLAG_TUNNEL_OFFLOADS) in create_rss_raw_qp_tir()
1628 if (ucmd->rx_hash_fields_mask & MLX5_RX_HASH_INNER) in create_rss_raw_qp_tir()
1633 switch (ucmd->rx_hash_function) { in create_rss_raw_qp_tir()
1639 if (len != ucmd->rx_key_len) { in create_rss_raw_qp_tir()
1645 memcpy(rss_key, ucmd->rx_hash_key, len); in create_rss_raw_qp_tir()
1653 if (!ucmd->rx_hash_fields_mask) { in create_rss_raw_qp_tir()
1661 if (((ucmd->rx_hash_fields_mask & MLX5_RX_HASH_SRC_IPV4) || in create_rss_raw_qp_tir()
1662 (ucmd->rx_hash_fields_mask & MLX5_RX_HASH_DST_IPV4)) && in create_rss_raw_qp_tir()
1663 ((ucmd->rx_hash_fields_mask & MLX5_RX_HASH_SRC_IPV6) || in create_rss_raw_qp_tir()
1664 (ucmd->rx_hash_fields_mask & MLX5_RX_HASH_DST_IPV6))) { in create_rss_raw_qp_tir()
1670 if ((ucmd->rx_hash_fields_mask & MLX5_RX_HASH_SRC_IPV4) || in create_rss_raw_qp_tir()
1671 (ucmd->rx_hash_fields_mask & MLX5_RX_HASH_DST_IPV4)) in create_rss_raw_qp_tir()
1674 else if ((ucmd->rx_hash_fields_mask & MLX5_RX_HASH_SRC_IPV6) || in create_rss_raw_qp_tir()
1675 (ucmd->rx_hash_fields_mask & MLX5_RX_HASH_DST_IPV6)) in create_rss_raw_qp_tir()
1679 outer_l4 = ((ucmd->rx_hash_fields_mask & MLX5_RX_HASH_SRC_PORT_TCP) || in create_rss_raw_qp_tir()
1680 (ucmd->rx_hash_fields_mask & MLX5_RX_HASH_DST_PORT_TCP)) in create_rss_raw_qp_tir()
1682 ((ucmd->rx_hash_fields_mask & MLX5_RX_HASH_SRC_PORT_UDP) || in create_rss_raw_qp_tir()
1683 (ucmd->rx_hash_fields_mask & MLX5_RX_HASH_DST_PORT_UDP)) in create_rss_raw_qp_tir()
1685 (ucmd->rx_hash_fields_mask & MLX5_RX_HASH_IPSEC_SPI) << 2; in create_rss_raw_qp_tir()
1694 if ((ucmd->rx_hash_fields_mask & MLX5_RX_HASH_SRC_PORT_TCP) || in create_rss_raw_qp_tir()
1695 (ucmd->rx_hash_fields_mask & MLX5_RX_HASH_DST_PORT_TCP)) in create_rss_raw_qp_tir()
1698 else if ((ucmd->rx_hash_fields_mask & MLX5_RX_HASH_SRC_PORT_UDP) || in create_rss_raw_qp_tir()
1699 (ucmd->rx_hash_fields_mask & MLX5_RX_HASH_DST_PORT_UDP)) in create_rss_raw_qp_tir()
1703 if ((ucmd->rx_hash_fields_mask & MLX5_RX_HASH_SRC_IPV4) || in create_rss_raw_qp_tir()
1704 (ucmd->rx_hash_fields_mask & MLX5_RX_HASH_SRC_IPV6)) in create_rss_raw_qp_tir()
1707 if ((ucmd->rx_hash_fields_mask & MLX5_RX_HASH_DST_IPV4) || in create_rss_raw_qp_tir()
1708 (ucmd->rx_hash_fields_mask & MLX5_RX_HASH_DST_IPV6)) in create_rss_raw_qp_tir()
1711 if ((ucmd->rx_hash_fields_mask & MLX5_RX_HASH_SRC_PORT_TCP) || in create_rss_raw_qp_tir()
1712 (ucmd->rx_hash_fields_mask & MLX5_RX_HASH_SRC_PORT_UDP)) in create_rss_raw_qp_tir()
1715 if ((ucmd->rx_hash_fields_mask & MLX5_RX_HASH_DST_PORT_TCP) || in create_rss_raw_qp_tir()
1716 (ucmd->rx_hash_fields_mask & MLX5_RX_HASH_DST_PORT_UDP)) in create_rss_raw_qp_tir()
1719 if (ucmd->rx_hash_fields_mask & MLX5_RX_HASH_IPSEC_SPI) in create_rss_raw_qp_tir()
1922 struct mlx5_ib_create_qp *ucmd = params->ucmd; in create_user_qp() local
1957 err = set_rq_size(dev, &init_attr->cap, qp->has_rq, qp, ucmd); in create_user_qp()
1963 if (ucmd->rq_wqe_shift != qp->rq.wqe_shift || in create_user_qp()
1964 ucmd->rq_wqe_count != qp->rq.wqe_cnt) in create_user_qp()
1967 if (ucmd->sq_wqe_count > (1 << MLX5_CAP_GEN(mdev, log_max_qp_sz))) in create_user_qp()
1971 &inlen, base, ucmd); in create_user_qp()
1979 MLX5_SET(create_qp_in, in, ece, ucmd->ece_options); in create_user_qp()
2069 qp->raw_packet_qp.sq.ubuffer.buf_addr = ucmd->sq_buf_addr; in create_user_qp()
2407 struct mlx5_ib_create_qp *ucmd = params->ucmd; in create_dct() local
2423 MLX5_SET64(dctc, dctc, dc_access_key, ucmd->access_key); in create_dct()
2426 MLX5_SET(dctc, dctc, ece, ucmd->ece_options); in create_dct()
2547 void *ucmd, struct ib_qp_init_attr *attr) in process_vendor_flags() argument
2554 flags = ((struct mlx5_ib_create_qp_rss *)ucmd)->flags; in process_vendor_flags()
2556 flags = ((struct mlx5_ib_create_qp *)ucmd)->flags; in process_vendor_flags()
2716 size_t ucmd = sizeof(struct mlx5_ib_create_qp); in process_udata_size() local
2722 params->ucmd_size = ucmd; in process_udata_size()
2732 params->inlen = (inlen < min_inlen) ? 0 : min(inlen, ucmd); in process_udata_size()
2743 ucmd = sizeof(struct mlx5_ib_create_qp_rss); in process_udata_size()
2744 params->ucmd_size = ucmd; in process_udata_size()
2745 if (inlen > ucmd && !ib_is_udata_cleared(udata, ucmd, inlen - ucmd)) in process_udata_size()
2748 params->inlen = min(ucmd, inlen); in process_udata_size()
2839 struct mlx5_ib_create_qp *ucmd = params->ucmd; in get_qp_uidx() local
2847 return get_qp_user_index(ucontext, ucmd, sizeof(*ucmd), &params->uidx); in get_qp_uidx()
2937 params.ucmd = kzalloc(params.ucmd_size, GFP_KERNEL); in mlx5_ib_create_qp()
2938 if (!params.ucmd) in mlx5_ib_create_qp()
2941 err = ib_copy_from_udata(params.ucmd, udata, params.inlen); in mlx5_ib_create_qp()
2955 err = process_vendor_flags(dev, qp, params.ucmd, attr); in mlx5_ib_create_qp()
2975 kfree(params.ucmd); in mlx5_ib_create_qp()
2976 params.ucmd = NULL; in mlx5_ib_create_qp()
3013 kfree(params.ucmd); in mlx5_ib_create_qp()
3748 const struct mlx5_ib_modify_qp *ucmd, in __mlx5_ib_modify_qp() argument
3993 if (ucmd->burst_info.max_burst_sz) { in __mlx5_ib_modify_qp()
3997 ucmd->burst_info.max_burst_sz; in __mlx5_ib_modify_qp()
4004 if (ucmd->burst_info.typical_pkt_sz) { in __mlx5_ib_modify_qp()
4008 ucmd->burst_info.typical_pkt_sz; in __mlx5_ib_modify_qp()
4024 ucmd->ece_options : 0; in __mlx5_ib_modify_qp()
4133 int attr_mask, struct mlx5_ib_modify_qp *ucmd, in mlx5_ib_modify_dct() argument
4150 if (MLX5_CAP_GEN(dev->mdev, ece_support) && ucmd->ece_options) in mlx5_ib_modify_dct()
4157 MLX5_SET(dctc, dctc, ece, ucmd->ece_options); in mlx5_ib_modify_dct()
4267 struct mlx5_ib_modify_qp ucmd = {}; in mlx5_ib_modify_qp() local
4280 if (udata->inlen < offsetofend(typeof(ucmd), ece_options)) in mlx5_ib_modify_qp()
4283 if (udata->inlen > sizeof(ucmd) && in mlx5_ib_modify_qp()
4284 !ib_is_udata_cleared(udata, sizeof(ucmd), in mlx5_ib_modify_qp()
4285 udata->inlen - sizeof(ucmd))) in mlx5_ib_modify_qp()
4288 if (ib_copy_from_udata(&ucmd, udata, in mlx5_ib_modify_qp()
4289 min(udata->inlen, sizeof(ucmd)))) in mlx5_ib_modify_qp()
4292 if (ucmd.comp_mask || in mlx5_ib_modify_qp()
4293 memchr_inv(&ucmd.burst_info.reserved, 0, in mlx5_ib_modify_qp()
4294 sizeof(ucmd.burst_info.reserved))) in mlx5_ib_modify_qp()
4306 return mlx5_ib_modify_dct(ibqp, attr, attr_mask, &ucmd, udata); in mlx5_ib_modify_qp()
4377 new_state, &ucmd, &resp, udata); in mlx5_ib_modify_qp()
4930 struct mlx5_ib_create_wq *ucmd, in set_user_rq_size() argument
4937 if (!ucmd->rq_wqe_count) in set_user_rq_size()
4940 rwq->wqe_count = ucmd->rq_wqe_count; in set_user_rq_size()
4941 rwq->wqe_shift = ucmd->rq_wqe_shift; in set_user_rq_size()
4969 struct mlx5_ib_create_wq ucmd = {}; in prepare_user_rq() local
4980 if (udata->inlen > sizeof(ucmd) && in prepare_user_rq()
4981 !ib_is_udata_cleared(udata, sizeof(ucmd), in prepare_user_rq()
4982 udata->inlen - sizeof(ucmd))) { in prepare_user_rq()
4987 if (ib_copy_from_udata(&ucmd, udata, min(sizeof(ucmd), udata->inlen))) { in prepare_user_rq()
4992 if (ucmd.comp_mask & (~MLX5_IB_CREATE_WQ_STRIDING_RQ)) { in prepare_user_rq()
4995 } else if (ucmd.comp_mask & MLX5_IB_CREATE_WQ_STRIDING_RQ) { in prepare_user_rq()
5000 if ((ucmd.single_stride_log_num_of_bytes < in prepare_user_rq()
5002 (ucmd.single_stride_log_num_of_bytes > in prepare_user_rq()
5005 ucmd.single_stride_log_num_of_bytes, in prepare_user_rq()
5011 ucmd.single_wqe_log_num_of_strides)) { in prepare_user_rq()
5015 ucmd.single_wqe_log_num_of_strides, in prepare_user_rq()
5023 ucmd.single_stride_log_num_of_bytes; in prepare_user_rq()
5024 rwq->log_num_strides = ucmd.single_wqe_log_num_of_strides; in prepare_user_rq()
5025 rwq->two_byte_shift_en = !!ucmd.two_byte_shift_en; in prepare_user_rq()
5029 err = set_user_rq_size(dev, init_attr, &ucmd, rwq); in prepare_user_rq()
5035 err = create_user_rq(dev, pd, udata, rwq, &ucmd); in prepare_user_rq()
5041 rwq->user_index = ucmd.user_index; in prepare_user_rq()
5207 struct mlx5_ib_modify_wq ucmd = {}; in mlx5_ib_modify_wq() local
5220 if (udata->inlen > sizeof(ucmd) && in mlx5_ib_modify_wq()
5221 !ib_is_udata_cleared(udata, sizeof(ucmd), in mlx5_ib_modify_wq()
5222 udata->inlen - sizeof(ucmd))) in mlx5_ib_modify_wq()
5225 if (ib_copy_from_udata(&ucmd, udata, min(sizeof(ucmd), udata->inlen))) in mlx5_ib_modify_wq()
5228 if (ucmd.comp_mask || ucmd.reserved) in mlx5_ib_modify_wq()