IB/mlx4: Factor out setting WQE data segment entries
Factor code to set data segment entries out of mlx4_ib_post_send() into set_data_seg(). This cleans up the code and lets the compiler do a better job -- on x86_64: add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-16 (-16) function old new delta mlx4_ib_post_send 1598 1582 -16 Signed-off-by: Roland Dreier <rolandd@cisco.com>
This commit is contained in:
parent
80885456e8
commit
d420d9e32f
1 changed files with 9 additions and 6 deletions
|
@ -1183,6 +1183,14 @@ static int mlx4_wq_overflow(struct mlx4_ib_wq *wq, int nreq, struct ib_cq *ib_cq
|
||||||
return cur + nreq >= wq->max_post;
|
return cur + nreq >= wq->max_post;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void set_data_seg(struct mlx4_wqe_data_seg *dseg,
|
||||||
|
struct ib_sge *sg)
|
||||||
|
{
|
||||||
|
dseg->byte_count = cpu_to_be32(sg->length);
|
||||||
|
dseg->lkey = cpu_to_be32(sg->lkey);
|
||||||
|
dseg->addr = cpu_to_be64(sg->addr);
|
||||||
|
}
|
||||||
|
|
||||||
int mlx4_ib_post_send(struct ib_qp *ibqp, struct ib_send_wr *wr,
|
int mlx4_ib_post_send(struct ib_qp *ibqp, struct ib_send_wr *wr,
|
||||||
struct ib_send_wr **bad_wr)
|
struct ib_send_wr **bad_wr)
|
||||||
{
|
{
|
||||||
|
@ -1313,12 +1321,7 @@ int mlx4_ib_post_send(struct ib_qp *ibqp, struct ib_send_wr *wr,
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < wr->num_sge; ++i) {
|
for (i = 0; i < wr->num_sge; ++i) {
|
||||||
((struct mlx4_wqe_data_seg *) wqe)->byte_count =
|
set_data_seg(wqe, wr->sg_list + i);
|
||||||
cpu_to_be32(wr->sg_list[i].length);
|
|
||||||
((struct mlx4_wqe_data_seg *) wqe)->lkey =
|
|
||||||
cpu_to_be32(wr->sg_list[i].lkey);
|
|
||||||
((struct mlx4_wqe_data_seg *) wqe)->addr =
|
|
||||||
cpu_to_be64(wr->sg_list[i].addr);
|
|
||||||
|
|
||||||
wqe += sizeof (struct mlx4_wqe_data_seg);
|
wqe += sizeof (struct mlx4_wqe_data_seg);
|
||||||
size += sizeof (struct mlx4_wqe_data_seg) / 16;
|
size += sizeof (struct mlx4_wqe_data_seg) / 16;
|
||||||
|
|
Loading…
Add table
Reference in a new issue