/linux-4.4.14/drivers/net/ethernet/mellanox/mlx4/ |
H A D | srq.c | 43 void mlx4_srq_event(struct mlx4_dev *dev, u32 srqn, int event_type) mlx4_srq_event() argument 50 srq = radix_tree_lookup(&srq_table->tree, srqn & (dev->caps.num_srqs - 1)); mlx4_srq_event() 57 mlx4_warn(dev, "Async event for bogus SRQ %08x\n", srqn); mlx4_srq_event() 96 int __mlx4_srq_alloc_icm(struct mlx4_dev *dev, int *srqn) __mlx4_srq_alloc_icm() argument 102 *srqn = mlx4_bitmap_alloc(&srq_table->bitmap); __mlx4_srq_alloc_icm() 103 if (*srqn == -1) __mlx4_srq_alloc_icm() 106 err = mlx4_table_get(dev, &srq_table->table, *srqn, GFP_KERNEL); __mlx4_srq_alloc_icm() 110 err = mlx4_table_get(dev, &srq_table->cmpt_table, *srqn, GFP_KERNEL); __mlx4_srq_alloc_icm() 116 mlx4_table_put(dev, &srq_table->table, *srqn); __mlx4_srq_alloc_icm() 119 mlx4_bitmap_free(&srq_table->bitmap, *srqn, MLX4_NO_RR); __mlx4_srq_alloc_icm() 123 static int mlx4_srq_alloc_icm(struct mlx4_dev *dev, int *srqn) mlx4_srq_alloc_icm() argument 134 *srqn = get_param_l(&out_param); mlx4_srq_alloc_icm() 138 return __mlx4_srq_alloc_icm(dev, srqn); mlx4_srq_alloc_icm() 141 void __mlx4_srq_free_icm(struct mlx4_dev *dev, int srqn) __mlx4_srq_free_icm() argument 145 mlx4_table_put(dev, &srq_table->cmpt_table, srqn); __mlx4_srq_free_icm() 146 mlx4_table_put(dev, &srq_table->table, srqn); __mlx4_srq_free_icm() 147 mlx4_bitmap_free(&srq_table->bitmap, srqn, MLX4_NO_RR); __mlx4_srq_free_icm() 150 static void mlx4_srq_free_icm(struct mlx4_dev *dev, int srqn) mlx4_srq_free_icm() argument 155 set_param_l(&in_param, srqn); mlx4_srq_free_icm() 159 mlx4_warn(dev, "Failed freeing cq:%d\n", srqn); mlx4_srq_free_icm() 162 __mlx4_srq_free_icm(dev, srqn); mlx4_srq_free_icm() 174 err = mlx4_srq_alloc_icm(dev, &srq->srqn); mlx4_srq_alloc() 179 err = radix_tree_insert(&srq_table->tree, srq->srqn, srq); mlx4_srq_alloc() 192 srq->srqn); mlx4_srq_alloc() 204 err = mlx4_SW2HW_SRQ(dev, mailbox, srq->srqn); mlx4_srq_alloc() 216 radix_tree_delete(&srq_table->tree, srq->srqn); mlx4_srq_alloc() 220 mlx4_srq_free_icm(dev, srq->srqn); mlx4_srq_alloc() 230 err = mlx4_HW2SW_SRQ(dev, NULL, srq->srqn); mlx4_srq_free() 232 mlx4_warn(dev, "HW2SW_SRQ failed (%d) for SRQN %06x\n", err, srq->srqn); mlx4_srq_free() 235 radix_tree_delete(&srq_table->tree, srq->srqn); mlx4_srq_free() 242 mlx4_srq_free_icm(dev, srq->srqn); mlx4_srq_free() 248 return mlx4_ARM_SRQ(dev, srq->srqn, limit_watermark); mlx4_srq_arm() 264 err = mlx4_QUERY_SRQ(dev, mailbox, srq->srqn); mlx4_srq_query() 300 struct mlx4_srq *mlx4_srq_lookup(struct mlx4_dev *dev, u32 srqn) mlx4_srq_lookup() argument 308 srqn & (dev->caps.num_srqs - 1)); mlx4_srq_lookup()
|
H A D | resource_tracker.c | 1895 int srqn; srq_alloc_res() local 1904 err = __mlx4_srq_alloc_icm(dev, &srqn); srq_alloc_res() 1910 err = add_res_range(dev, slave, srqn, 1, RES_SRQ, 0); srq_alloc_res() 1913 __mlx4_srq_free_icm(dev, srqn); srq_alloc_res() 1917 set_param_l(out_param, srqn); srq_alloc_res() 2412 int srqn; srq_free_res() local 2417 srqn = get_param_l(&in_param); srq_free_res() 2418 err = rem_res_range(dev, slave, srqn, 1, RES_SRQ, 0); srq_free_res() 2423 __mlx4_srq_free_icm(dev, srqn); srq_free_res() 2646 int srq = (be32_to_cpu(qpc->srqn) >> 24) & 1; qp_get_mtt_size() 2854 return be32_to_cpu(qpc->srqn) & 0x1ffffff; qp_get_srqn() 2891 u32 srqn = qp_get_srqn(qpc) & 0xffffff; mlx4_RST2INIT_QP_wrapper() local 2933 err = get_res(dev, slave, srqn, RES_SRQ, &srq); mlx4_RST2INIT_QP_wrapper() 2955 put_res(dev, slave, srqn, RES_SRQ); mlx4_RST2INIT_QP_wrapper() 2966 put_res(dev, slave, srqn, RES_SRQ); mlx4_RST2INIT_QP_wrapper() 3536 int srqn = vhcr->in_modifier; mlx4_SW2HW_SRQ_wrapper() local 3542 if (srqn != (be32_to_cpu(srqc->state_logsize_srqn) & 0xffffff)) mlx4_SW2HW_SRQ_wrapper() 3545 err = srq_res_start_move_to(dev, slave, srqn, RES_SRQ_HW, &srq); mlx4_SW2HW_SRQ_wrapper() 3563 res_end_move(dev, slave, RES_SRQ, srqn); mlx4_SW2HW_SRQ_wrapper() 3569 res_abort_move(dev, slave, RES_SRQ, srqn); mlx4_SW2HW_SRQ_wrapper() 3581 int srqn = vhcr->in_modifier; mlx4_HW2SW_SRQ_wrapper() local 3584 err = srq_res_start_move_to(dev, slave, srqn, RES_SRQ_ALLOCATED, &srq); mlx4_HW2SW_SRQ_wrapper() 3593 res_end_move(dev, slave, RES_SRQ, srqn); mlx4_HW2SW_SRQ_wrapper() 3598 res_abort_move(dev, slave, RES_SRQ, srqn); mlx4_HW2SW_SRQ_wrapper() 3610 int srqn = vhcr->in_modifier; mlx4_QUERY_SRQ_wrapper() local 3613 err = get_res(dev, slave, srqn, RES_SRQ, &srq); mlx4_QUERY_SRQ_wrapper() 3622 put_res(dev, slave, srqn, RES_SRQ); mlx4_QUERY_SRQ_wrapper() 3633 int srqn = vhcr->in_modifier; mlx4_ARM_SRQ_wrapper() local 3636 err = get_res(dev, slave, srqn, RES_SRQ, &srq); mlx4_ARM_SRQ_wrapper() 3647 put_res(dev, slave, srqn, RES_SRQ); mlx4_ARM_SRQ_wrapper() 4601 int srqn; rem_slave_srqs() local 4613 srqn = srq->com.res_id; list_for_each_entry_safe() 4618 __mlx4_srq_free_icm(dev, srqn); list_for_each_entry_safe() 4632 err = mlx4_cmd(dev, in_param, srqn, 1, list_for_each_entry_safe() 4638 slave, srqn); list_for_each_entry_safe()
|
H A D | en_resources.c | 88 context->srqn = cpu_to_be32(7 << 28); /* this fills bits 30:28 */ mlx4_en_fill_qp_context()
|
H A D | eq.c | 552 be32_to_cpu(eqe->event.srq.srqn) mlx4_eq_int() 563 be32_to_cpu(eqe->event.srq.srqn), mlx4_eq_int() 574 mlx4_srq_event(dev, be32_to_cpu(eqe->event.srq.srqn) & mlx4_eq_int()
|
H A D | mlx4.h | 958 int __mlx4_srq_alloc_icm(struct mlx4_dev *dev, int *srqn); 959 void __mlx4_srq_free_icm(struct mlx4_dev *dev, int srqn); 1205 void mlx4_srq_event(struct mlx4_dev *dev, u32 srqn, int event_type);
|
/linux-4.4.14/drivers/net/ethernet/mellanox/mlx5/core/ |
H A D | srq.c | 42 void mlx5_srq_event(struct mlx5_core_dev *dev, u32 srqn, int event_type) mlx5_srq_event() argument 49 srq = radix_tree_lookup(&table->tree, srqn); mlx5_srq_event() 56 mlx5_core_warn(dev, "Async event for bogus SRQ 0x%08x\n", srqn); mlx5_srq_event() 134 struct mlx5_core_srq *mlx5_core_get_srq(struct mlx5_core_dev *dev, u32 srqn) mlx5_core_get_srq() argument 141 srq = radix_tree_lookup(&table->tree, srqn); mlx5_core_get_srq() 164 srq->srqn = be32_to_cpu(out.srqn) & 0xffffff; create_srq_cmd() 178 in.srqn = cpu_to_be32(srq->srqn); destroy_srq_cmd() 195 in.srqn = cpu_to_be32(srq->srqn); arm_srq_cmd() 211 in.srqn = cpu_to_be32(srq->srqn); query_srq_cmd() 255 srq->srqn = MLX5_GET(create_xrc_srq_out, create_out, xrc_srqn); create_xrc_srq_cmd() 272 MLX5_SET(destroy_xrc_srq_in, xrcsrq_in, xrc_srqn, srq->srqn); destroy_xrc_srq_cmd() 289 MLX5_SET(arm_xrc_srq_in, xrcsrq_in, xrc_srqn, srq->srqn); arm_xrc_srq_cmd() 313 MLX5_SET(query_xrc_srq_in, xrcsrq_in, xrc_srqn, srq->srqn); query_xrc_srq_cmd() 352 err = mlx5_core_create_rmp(dev, create_in, inlen, &srq->srqn); create_rmp_cmd() 361 return mlx5_core_destroy_rmp(dev, srq->srqn); destroy_rmp_cmd() 383 MLX5_SET(modify_rmp_in, in, rmpn, srq->srqn); arm_rmp_cmd() 406 err = mlx5_core_query_rmp(dev, srq->srqn, rmp_out); query_rmp_cmd() 460 err = radix_tree_insert(&table->tree, srq->srqn, srq); mlx5_core_create_srq() 463 mlx5_core_warn(dev, "err %d, srqn 0x%x\n", err, srq->srqn); mlx5_core_create_srq() 483 tmp = radix_tree_delete(&table->tree, srq->srqn); mlx5_core_destroy_srq() 486 mlx5_core_warn(dev, "srq 0x%x not found in tree\n", srq->srqn); mlx5_core_destroy_srq() 490 mlx5_core_warn(dev, "corruption on srqn 0x%x\n", srq->srqn); mlx5_core_destroy_srq()
|
H A D | cq.c | 154 mlx5_core_warn(dev, "corruption on srqn 0x%x\n", cq->cqn); mlx5_core_destroy_cq()
|
H A D | en_rx.c | 196 lro_num_seg = be32_to_cpu(cqe->srqn) >> 24; mlx5e_build_rx_skb()
|
H A D | eq.c | 238 mlx5_core_dbg(dev, "SRQ event %s(%d): srqn 0x%x\n", mlx5_eq_int()
|
/linux-4.4.14/drivers/infiniband/hw/mthca/ |
H A D | mthca_srq.c | 128 context->state_logsize_srqn = cpu_to_be32(logsize << 24 | srq->srqn); mthca_arbel_init_srq_context() 229 srq->srqn = mthca_alloc(&dev->srq_table.alloc); mthca_alloc_srq() 230 if (srq->srqn == -1) mthca_alloc_srq() 234 err = mthca_table_get(dev, dev->srq_table.table, srq->srqn); mthca_alloc_srq() 240 srq->srqn, &srq->db); mthca_alloc_srq() 268 err = mthca_SW2HW_SRQ(dev, mailbox, srq->srqn); mthca_alloc_srq() 277 srq->srqn & (dev->limits.num_srqs - 1), mthca_alloc_srq() 295 err = mthca_HW2SW_SRQ(dev, mailbox, srq->srqn); mthca_alloc_srq() 311 mthca_table_put(dev, dev->srq_table.table, srq->srqn); mthca_alloc_srq() 314 mthca_free(&dev->srq_table.alloc, srq->srqn); mthca_alloc_srq() 341 err = mthca_HW2SW_SRQ(dev, mailbox, srq->srqn); mthca_free_srq() 347 srq->srqn & (dev->limits.num_srqs - 1)); mthca_free_srq() 359 mthca_table_put(dev, dev->srq_table.table, srq->srqn); mthca_free_srq() 360 mthca_free(&dev->srq_table.alloc, srq->srqn); mthca_free_srq() 381 ret = mthca_ARM_SRQ(dev, srq->srqn, attr->srq_limit); mthca_modify_srq() 401 err = mthca_QUERY_SRQ(dev, srq->srqn, mailbox); mthca_query_srq() 422 void mthca_srq_event(struct mthca_dev *dev, u32 srqn, mthca_srq_event() argument 429 srq = mthca_array_get(&dev->srq_table.srq, srqn & (dev->limits.num_srqs - 1)); mthca_srq_event() 435 mthca_warn(dev, "Async event for bogus SRQ %08x\n", srqn); mthca_srq_event() 500 mthca_err(dev, "SRQ %06x full\n", srq->srqn); mthca_tavor_post_srq_recv() 545 mthca_write64(first_ind << srq->wqe_shift, srq->srqn << 8, mthca_tavor_post_srq_recv() 560 mthca_write64(first_ind << srq->wqe_shift, (srq->srqn << 8) | nreq, mthca_tavor_post_srq_recv() 596 mthca_err(dev, "SRQ %06x full\n", srq->srqn); mthca_arbel_post_srq_recv()
|
H A D | mthca_user.h | 99 __u32 srqn; member in struct:mthca_create_srq_resp
|
H A D | mthca_eq.c | 146 __be32 srqn; member in struct:mthca_eqe::__anon5264::__anon5268 302 mthca_srq_event(dev, be32_to_cpu(eqe->event.srq.srqn) & 0xffffff, mthca_eq_int()
|
H A D | mthca_provider.h | 226 int srqn; member in struct:mthca_srq
|
H A D | mthca_qp.c | 151 __be32 srqn; member in struct:mthca_qp_context 769 qp_context->srqn = cpu_to_be32(1 << 24 | __mthca_modify_qp() 770 to_msrq(ibqp->srq)->srqn); __mthca_modify_qp()
|
H A D | mthca_dev.h | 519 void mthca_srq_event(struct mthca_dev *dev, u32 srqn,
|
H A D | mthca_provider.c | 483 if (context && ib_copy_to_udata(udata, &srq->srqn, sizeof (__u32))) { mthca_create_srq()
|
/linux-4.4.14/include/linux/mlx4/ |
H A D | srq.h | 42 struct mlx4_srq *mlx4_srq_lookup(struct mlx4_dev *dev, u32 srqn);
|
H A D | qp.h | 216 __be32 srqn; member in struct:mlx4_qp_context
|
H A D | device.h | 747 int srqn; member in struct:mlx4_srq 886 __be32 srqn; member in struct:mlx4_eqe::__anon12691::__anon12695
|
/linux-4.4.14/drivers/infiniband/hw/mlx5/ |
H A D | srq.c | 68 type, srq->srqn); mlx5_ib_srq_event() 312 mlx5_ib_dbg(dev, "create SRQ with srqn 0x%x\n", srq->msrq.srqn); mlx5_ib_create_srq() 315 srq->ibsrq.ext.xrc.srq_num = srq->msrq.srqn; mlx5_ib_create_srq() 318 if (ib_copy_to_udata(udata, &srq->msrq.srqn, sizeof(__u32))) { mlx5_ib_create_srq()
|
H A D | user.h | 117 __u32 srqn; member in struct:mlx5_ib_create_srq_resp
|
H A D | cq.c | 185 be32_to_cpu(cqe->srqn)); handle_responder() 896 if (srq && (ntohl(cqe64->srqn) & 0xffffff)) __mlx5_ib_cq_clean()
|
H A D | qp.c | 994 in->ctx.rq_type_srqn |= cpu_to_be32(to_msrq(devr->s0)->msrq.srqn); create_qp_common() 1000 in->ctx.rq_type_srqn |= cpu_to_be32(to_msrq(devr->s0)->msrq.srqn); create_qp_common() 1005 in->ctx.rq_type_srqn |= cpu_to_be32(to_msrq(init_attr->srq)->msrq.srqn); create_qp_common() 1009 cpu_to_be32(to_msrq(devr->s1)->msrq.srqn); create_qp_common()
|
/linux-4.4.14/include/linux/mlx5/ |
H A D | device.h | 577 __be32 srqn; member in struct:mlx5_err_cqe 603 __be32 srqn; /* [31:24]: lro_num_seg, [23:0]: srqn */ member in struct:mlx5_cqe64 708 __be32 srqn; member in struct:mlx5_create_srq_mbox_out 714 __be32 srqn; member in struct:mlx5_destroy_srq_mbox_in 725 __be32 srqn; member in struct:mlx5_query_srq_mbox_in 739 __be32 srqn; member in struct:mlx5_arm_srq_mbox_in
|
H A D | driver.h | 357 u32 srqn; member in struct:mlx5_core_srq 756 void mlx5_srq_event(struct mlx5_core_dev *dev, u32 srqn, int event_type); 757 struct mlx5_core_srq *mlx5_core_get_srq(struct mlx5_core_dev *dev, u32 srqn);
|
H A D | mlx5_ifc.h | 2364 u8 srqn[0x18]; member in struct:mlx5_ifc_dctc_bits 3088 u8 srqn[0x18]; member in struct:mlx5_ifc_query_srq_in_bits 4726 u8 srqn[0x18]; member in struct:mlx5_ifc_destroy_srq_in_bits 5277 u8 srqn[0x18]; member in struct:mlx5_ifc_create_srq_out_bits
|
/linux-4.4.14/drivers/infiniband/hw/mlx4/ |
H A D | srq.c | 64 "on SRQ %06x\n", type, srq->srqn); mlx4_ib_srq_event() 196 srq->ibsrq.ext.xrc.srq_num = srq->msrq.srqn; mlx4_ib_create_srq() 199 if (ib_copy_to_udata(udata, &srq->msrq.srqn, sizeof (__u32))) { mlx4_ib_create_srq()
|
H A D | user.h | 94 __u32 srqn; member in struct:mlx4_ib_create_srq_resp
|
H A D | qp.c | 1778 context->srqn = cpu_to_be32(1 << 24 | to_msrq(ibqp->srq)->msrq.srqn); __mlx4_ib_modify_qp() 1826 context->srqn = cpu_to_be32(7 << 28); __mlx4_ib_modify_qp()
|
/linux-4.4.14/include/uapi/rdma/ |
H A D | ib_user_verbs.h | 913 __u32 srqn; member in struct:ib_uverbs_create_srq_resp
|
/linux-4.4.14/drivers/infiniband/core/ |
H A D | uverbs_cmd.c | 3359 resp.srqn = srq->ext.xrc.srq_num; __uverbs_create_xsrq()
|