rwq               779 drivers/infiniband/hw/mlx5/qp.c 			    struct mlx5_ib_rwq *rwq, struct ib_udata *udata)
rwq               787 drivers/infiniband/hw/mlx5/qp.c 	if (rwq->create_flags & MLX5_IB_WQ_FLAGS_DELAY_DROP)
rwq               790 drivers/infiniband/hw/mlx5/qp.c 	mlx5_ib_db_unmap_user(context, &rwq->db);
rwq               791 drivers/infiniband/hw/mlx5/qp.c 	ib_umem_release(rwq->umem);
rwq               795 drivers/infiniband/hw/mlx5/qp.c 			  struct ib_udata *udata, struct mlx5_ib_rwq *rwq,
rwq               809 drivers/infiniband/hw/mlx5/qp.c 	rwq->umem = ib_umem_get(udata, ucmd->buf_addr, rwq->buf_size, 0, 0);
rwq               810 drivers/infiniband/hw/mlx5/qp.c 	if (IS_ERR(rwq->umem)) {
rwq               812 drivers/infiniband/hw/mlx5/qp.c 		err = PTR_ERR(rwq->umem);
rwq               816 drivers/infiniband/hw/mlx5/qp.c 	mlx5_ib_cont_pages(rwq->umem, ucmd->buf_addr, 0, &npages, &page_shift,
rwq               819 drivers/infiniband/hw/mlx5/qp.c 				     &rwq->rq_page_offset);
rwq               825 drivers/infiniband/hw/mlx5/qp.c 	rwq->rq_num_pas = ncont;
rwq               826 drivers/infiniband/hw/mlx5/qp.c 	rwq->page_shift = page_shift;
rwq               827 drivers/infiniband/hw/mlx5/qp.c 	rwq->log_page_size =  page_shift - MLX5_ADAPTER_PAGE_SHIFT;
rwq               828 drivers/infiniband/hw/mlx5/qp.c 	rwq->wq_sig = !!(ucmd->flags & MLX5_WQ_FLAG_SIGNATURE);
rwq               831 drivers/infiniband/hw/mlx5/qp.c 		    (unsigned long long)ucmd->buf_addr, rwq->buf_size,
rwq               834 drivers/infiniband/hw/mlx5/qp.c 	err = mlx5_ib_db_map_user(ucontext, udata, ucmd->db_addr, &rwq->db);
rwq               840 drivers/infiniband/hw/mlx5/qp.c 	rwq->create_type = MLX5_WQ_USER;
rwq               844 drivers/infiniband/hw/mlx5/qp.c 	ib_umem_release(rwq->umem);
rwq              5877 drivers/infiniband/hw/mlx5/qp.c 	struct mlx5_ib_rwq *rwq = to_mibrwq(core_qp);
rwq              5878 drivers/infiniband/hw/mlx5/qp.c 	struct mlx5_ib_dev *dev = to_mdev(rwq->ibwq.device);
rwq              5881 drivers/infiniband/hw/mlx5/qp.c 	if (rwq->ibwq.event_handler) {
rwq              5882 drivers/infiniband/hw/mlx5/qp.c 		event.device     = rwq->ibwq.device;
rwq              5883 drivers/infiniband/hw/mlx5/qp.c 		event.element.wq = &rwq->ibwq;
rwq              5893 drivers/infiniband/hw/mlx5/qp.c 		rwq->ibwq.event_handler(&event, rwq->ibwq.wq_context);
rwq              5918 drivers/infiniband/hw/mlx5/qp.c static int  create_rq(struct mlx5_ib_rwq *rwq, struct ib_pd *pd,
rwq              5932 drivers/infiniband/hw/mlx5/qp.c 	inlen = MLX5_ST_SZ_BYTES(create_rq_in) + sizeof(u64) * rwq->rq_num_pas;
rwq              5941 drivers/infiniband/hw/mlx5/qp.c 	MLX5_SET(rqc, rqc, user_index, rwq->user_index);
rwq              5947 drivers/infiniband/hw/mlx5/qp.c 		 rwq->create_flags & MLX5_IB_WQ_FLAGS_STRIDING_RQ ?
rwq              5958 drivers/infiniband/hw/mlx5/qp.c 	MLX5_SET(wq, wq, log_wq_stride, rwq->log_rq_stride);
rwq              5959 drivers/infiniband/hw/mlx5/qp.c 	if (rwq->create_flags & MLX5_IB_WQ_FLAGS_STRIDING_RQ) {
rwq              5960 drivers/infiniband/hw/mlx5/qp.c 		MLX5_SET(wq, wq, two_byte_shift_en, rwq->two_byte_shift_en);
rwq              5962 drivers/infiniband/hw/mlx5/qp.c 			 rwq->single_stride_log_num_of_bytes -
rwq              5964 drivers/infiniband/hw/mlx5/qp.c 		MLX5_SET(wq, wq, log_wqe_num_of_strides, rwq->log_num_strides -
rwq              5967 drivers/infiniband/hw/mlx5/qp.c 	MLX5_SET(wq, wq, log_wq_sz, rwq->log_rq_size);
rwq              5969 drivers/infiniband/hw/mlx5/qp.c 	MLX5_SET(wq, wq, page_offset, rwq->rq_page_offset);
rwq              5970 drivers/infiniband/hw/mlx5/qp.c 	MLX5_SET(wq, wq, log_wq_pg_sz, rwq->log_page_size);
rwq              5971 drivers/infiniband/hw/mlx5/qp.c 	MLX5_SET(wq, wq, wq_signature, rwq->wq_sig);
rwq              5972 drivers/infiniband/hw/mlx5/qp.c 	MLX5_SET64(wq, wq, dbr_addr, rwq->db.dma);
rwq              6001 drivers/infiniband/hw/mlx5/qp.c 	mlx5_ib_populate_pas(dev, rwq->umem, rwq->page_shift, rq_pas0, 0);
rwq              6002 drivers/infiniband/hw/mlx5/qp.c 	err = mlx5_core_create_rq_tracked(dev->mdev, in, inlen, &rwq->core_qp);
rwq              6008 drivers/infiniband/hw/mlx5/qp.c 			mlx5_core_destroy_rq_tracked(dev->mdev, &rwq->core_qp);
rwq              6010 drivers/infiniband/hw/mlx5/qp.c 			rwq->create_flags |= MLX5_IB_WQ_FLAGS_DELAY_DROP;
rwq              6021 drivers/infiniband/hw/mlx5/qp.c 			    struct mlx5_ib_rwq *rwq)
rwq              6030 drivers/infiniband/hw/mlx5/qp.c 	rwq->wqe_count = ucmd->rq_wqe_count;
rwq              6031 drivers/infiniband/hw/mlx5/qp.c 	rwq->wqe_shift = ucmd->rq_wqe_shift;
rwq              6032 drivers/infiniband/hw/mlx5/qp.c 	if (check_shl_overflow(rwq->wqe_count, rwq->wqe_shift, &rwq->buf_size))
rwq              6035 drivers/infiniband/hw/mlx5/qp.c 	rwq->log_rq_stride = rwq->wqe_shift;
rwq              6036 drivers/infiniband/hw/mlx5/qp.c 	rwq->log_rq_size = ilog2(rwq->wqe_count);
rwq              6043 drivers/infiniband/hw/mlx5/qp.c 			   struct mlx5_ib_rwq *rwq)
rwq              6097 drivers/infiniband/hw/mlx5/qp.c 		rwq->single_stride_log_num_of_bytes =
rwq              6099 drivers/infiniband/hw/mlx5/qp.c 		rwq->log_num_strides = ucmd.single_wqe_log_num_of_strides;
rwq              6100 drivers/infiniband/hw/mlx5/qp.c 		rwq->two_byte_shift_en = !!ucmd.two_byte_shift_en;
rwq              6101 drivers/infiniband/hw/mlx5/qp.c 		rwq->create_flags |= MLX5_IB_WQ_FLAGS_STRIDING_RQ;
rwq              6104 drivers/infiniband/hw/mlx5/qp.c 	err = set_user_rq_size(dev, init_attr, &ucmd, rwq);
rwq              6110 drivers/infiniband/hw/mlx5/qp.c 	err = create_user_rq(dev, pd, udata, rwq, &ucmd);
rwq              6116 drivers/infiniband/hw/mlx5/qp.c 	rwq->user_index = ucmd.user_index;
rwq              6125 drivers/infiniband/hw/mlx5/qp.c 	struct mlx5_ib_rwq *rwq;
rwq              6144 drivers/infiniband/hw/mlx5/qp.c 		rwq = kzalloc(sizeof(*rwq), GFP_KERNEL);
rwq              6145 drivers/infiniband/hw/mlx5/qp.c 		if (!rwq)
rwq              6147 drivers/infiniband/hw/mlx5/qp.c 		err = prepare_user_rq(pd, init_attr, udata, rwq);
rwq              6150 drivers/infiniband/hw/mlx5/qp.c 		err = create_rq(rwq, pd, init_attr);
rwq              6160 drivers/infiniband/hw/mlx5/qp.c 	rwq->ibwq.wq_num = rwq->core_qp.qpn;
rwq              6161 drivers/infiniband/hw/mlx5/qp.c 	rwq->ibwq.state = IB_WQS_RESET;
rwq              6170 drivers/infiniband/hw/mlx5/qp.c 	rwq->core_qp.event = mlx5_ib_wq_event;
rwq              6171 drivers/infiniband/hw/mlx5/qp.c 	rwq->ibwq.event_handler = init_attr->event_handler;
rwq              6172 drivers/infiniband/hw/mlx5/qp.c 	return &rwq->ibwq;
rwq              6175 drivers/infiniband/hw/mlx5/qp.c 	mlx5_core_destroy_rq_tracked(dev->mdev, &rwq->core_qp);
rwq              6177 drivers/infiniband/hw/mlx5/qp.c 	destroy_user_rq(dev, pd, rwq, udata);
rwq              6179 drivers/infiniband/hw/mlx5/qp.c 	kfree(rwq);
rwq              6186 drivers/infiniband/hw/mlx5/qp.c 	struct mlx5_ib_rwq *rwq = to_mrwq(wq);
rwq              6188 drivers/infiniband/hw/mlx5/qp.c 	mlx5_core_destroy_rq_tracked(dev->mdev, &rwq->core_qp);
rwq              6189 drivers/infiniband/hw/mlx5/qp.c 	destroy_user_rq(dev, wq->pd, rwq, udata);
rwq              6190 drivers/infiniband/hw/mlx5/qp.c 	kfree(rwq);
rwq              6286 drivers/infiniband/hw/mlx5/qp.c 	struct mlx5_ib_rwq *rwq = to_mrwq(wq);
rwq              6366 drivers/infiniband/hw/mlx5/qp.c 	err = mlx5_core_modify_rq(dev->mdev, rwq->core_qp.qpn, in, inlen);
rwq              6368 drivers/infiniband/hw/mlx5/qp.c 		rwq->ibwq.state = (wq_state == MLX5_RQC_STATE_ERR) ? IB_WQS_ERR : wq_state;