net/mlx4_en: break out tx_desc write into separate function
In preparation for writing the tx descriptor from multiple functions, create a helper for both normal and blueflame access. Signed-off-by: Brenden Blanco <bblanco@plumgrid.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

gecommit door
David S. Miller

bovenliggende
6ce96ca348
commit
224e92e02a
@@ -232,7 +232,7 @@ static void stamp_send_wqe(struct mlx4_ib_qp *qp, int n, int size)
|
||||
}
|
||||
} else {
|
||||
ctrl = buf = get_send_wqe(qp, n & (qp->sq.wqe_cnt - 1));
|
||||
s = (ctrl->fence_size & 0x3f) << 4;
|
||||
s = (ctrl->qpn_vlan.fence_size & 0x3f) << 4;
|
||||
for (i = 64; i < s; i += 64) {
|
||||
wqe = buf + i;
|
||||
*wqe = cpu_to_be32(0xffffffff);
|
||||
@@ -264,7 +264,7 @@ static void post_nop_wqe(struct mlx4_ib_qp *qp, int n, int size)
|
||||
inl->byte_count = cpu_to_be32(1 << 31 | (size - s - sizeof *inl));
|
||||
}
|
||||
ctrl->srcrb_flags = 0;
|
||||
ctrl->fence_size = size / 16;
|
||||
ctrl->qpn_vlan.fence_size = size / 16;
|
||||
/*
|
||||
* Make sure descriptor is fully written before setting ownership bit
|
||||
* (because HW can start executing as soon as we do).
|
||||
@@ -1992,7 +1992,8 @@ static int __mlx4_ib_modify_qp(struct ib_qp *ibqp,
|
||||
ctrl = get_send_wqe(qp, i);
|
||||
ctrl->owner_opcode = cpu_to_be32(1 << 31);
|
||||
if (qp->sq_max_wqes_per_wr == 1)
|
||||
ctrl->fence_size = 1 << (qp->sq.wqe_shift - 4);
|
||||
ctrl->qpn_vlan.fence_size =
|
||||
1 << (qp->sq.wqe_shift - 4);
|
||||
|
||||
stamp_send_wqe(qp, i, 1 << qp->sq.wqe_shift);
|
||||
}
|
||||
@@ -3169,8 +3170,8 @@ int mlx4_ib_post_send(struct ib_qp *ibqp, struct ib_send_wr *wr,
|
||||
wmb();
|
||||
*lso_wqe = lso_hdr_sz;
|
||||
|
||||
ctrl->fence_size = (wr->send_flags & IB_SEND_FENCE ?
|
||||
MLX4_WQE_CTRL_FENCE : 0) | size;
|
||||
ctrl->qpn_vlan.fence_size = (wr->send_flags & IB_SEND_FENCE ?
|
||||
MLX4_WQE_CTRL_FENCE : 0) | size;
|
||||
|
||||
/*
|
||||
* Make sure descriptor is fully written before
|
||||
|
Verwijs in nieuw issue
Block a user