send_ring 109 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_domain.c mlx5dr_send_ring_free(dmn, dmn->send_ring); send_ring 310 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c struct mlx5dr_send_ring *send_ring) send_ring 315 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c if (send_ring->pending_wqe < send_ring->signal_th) send_ring 319 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c if (send_ring->pending_wqe >= send_ring 320 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c dmn->send_ring->signal_th * TH_NUMS_TO_DRAIN) send_ring 324 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c ne = dr_poll_cq(send_ring->cq, 1); send_ring 328 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c send_ring->pending_wqe -= send_ring->signal_th; send_ring 329 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c } while (is_drain && send_ring->pending_wqe); send_ring 334 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c static void dr_fill_data_segs(struct mlx5dr_send_ring *send_ring, send_ring 337 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c send_ring->pending_wqe++; send_ring 339 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c if (send_ring->pending_wqe % send_ring->signal_th == 0) send_ring 342 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c send_ring->pending_wqe++; send_ring 346 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c send_info->read.lkey = send_ring->mr->mkey.key; send_ring 348 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c if (send_ring->pending_wqe % send_ring->signal_th == 0) send_ring 357 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c struct mlx5dr_send_ring *send_ring = dmn->send_ring; send_ring 361 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c ret = dr_handle_pending_wc(dmn, send_ring); send_ring 366 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c buff_offset = (send_ring->tx_head & send_ring 367 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c (dmn->send_ring->signal_th - 1)) * send_ring 368 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c send_ring->max_post_send_size; send_ring 370 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c memcpy(send_ring->buf + buff_offset, send_ring 373 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c send_info->write.addr = (uintptr_t)send_ring->mr->dma_addr + buff_offset; send_ring 374 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c send_info->write.lkey = send_ring->mr->mkey.key; send_ring 377 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c send_ring->tx_head++; send_ring 378 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c dr_fill_data_segs(send_ring, send_info); send_ring 379 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c dr_post_send(send_ring->qp, send_info); send_ring 393 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c if (htbl->chunk->byte_size > dmn->send_ring->max_post_send_size) { send_ring 395 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c dmn->send_ring->max_post_send_size; send_ring 396 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c *byte_size = dmn->send_ring->max_post_send_size; send_ring 645 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c struct mlx5dr_qp *dr_qp = dmn->send_ring->qp; send_ring 870 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c dmn->send_ring = kzalloc(sizeof(*dmn->send_ring), GFP_KERNEL); send_ring 871 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c if (!dmn->send_ring) send_ring 875 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c dmn->send_ring->cq = dr_create_cq(dmn->mdev, dmn->uar, cq_size); send_ring 876 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c if (!dmn->send_ring->cq) { send_ring 881 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c init_attr.cqn = dmn->send_ring->cq->mcq.cqn; send_ring 886 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c dmn->send_ring->qp = dr_create_rc_qp(dmn->mdev, &init_attr); send_ring 887 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c if (!dmn->send_ring->qp) { send_ring 892 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c dmn->send_ring->cq->qp = dmn->send_ring->qp; send_ring 895 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c dmn->info.max_inline_size = min(dmn->send_ring->qp->max_inline_data, send_ring 898 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c dmn->send_ring->signal_th = dmn->info.max_send_wr / send_ring 906 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c dmn->send_ring->max_post_send_size = send_ring 911 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c size = dmn->send_ring->signal_th * dmn->send_ring->max_post_send_size; send_ring 912 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c dmn->send_ring->buf = kzalloc(size, GFP_KERNEL); send_ring 913 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c if (!dmn->send_ring->buf) { send_ring 918 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c dmn->send_ring->buf_size = size; send_ring 920 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c dmn->send_ring->mr = dr_reg_mr(dmn->mdev, send_ring 921 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c dmn->pdn, dmn->send_ring->buf, size); send_ring 922 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c if (!dmn->send_ring->mr) { send_ring 927 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c dmn->send_ring->sync_mr = dr_reg_mr(dmn->mdev, send_ring 928 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c dmn->pdn, dmn->send_ring->sync_buff, send_ring 930 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c if (!dmn->send_ring->sync_mr) { send_ring 938 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c dr_dereg_mr(dmn->mdev, dmn->send_ring->mr); send_ring 940 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c kfree(dmn->send_ring->buf); send_ring 942 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c dr_destroy_qp(dmn->mdev, dmn->send_ring->qp); send_ring 944 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c dr_destroy_cq(dmn->mdev, dmn->send_ring->cq); send_ring 946 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c kfree(dmn->send_ring); send_ring 952 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c struct mlx5dr_send_ring *send_ring) send_ring 954 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c dr_destroy_qp(dmn->mdev, send_ring->qp); send_ring 955 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c dr_destroy_cq(dmn->mdev, send_ring->cq); send_ring 956 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c dr_dereg_mr(dmn->mdev, send_ring->sync_mr); send_ring 957 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c dr_dereg_mr(dmn->mdev, send_ring->mr); send_ring 958 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c kfree(send_ring->buf); send_ring 959 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c kfree(send_ring); send_ring 964 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c struct mlx5dr_send_ring *send_ring = dmn->send_ring; send_ring 972 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c num_of_sends_req = send_ring->signal_th * TH_NUMS_TO_DRAIN / 2; send_ring 979 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c send_info.remote_addr = (uintptr_t)send_ring->sync_mr->addr; send_ring 980 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c send_info.rkey = send_ring->sync_mr->mkey.key; send_ring 988 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c ret = dr_handle_pending_wc(dmn, send_ring); send_ring 657 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_types.h struct mlx5dr_send_ring *send_ring; send_ring 1032 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_types.h struct mlx5dr_send_ring *send_ring);