Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2242fa4f04d670f02efb43ec537d677edc220880
Commit:     2242fa4f04d670f02efb43ec537d677edc220880
Parent:     eaf559bf566f76887533c077d425adce847f06c8
Author:     Roland Dreier <[EMAIL PROTECTED]>
AuthorDate: Tue Oct 9 19:59:05 2007 -0700
Committer:  Roland Dreier <[EMAIL PROTECTED]>
CommitDate: Tue Oct 9 19:59:05 2007 -0700

    IB/mlx4: Use __set_data_seg() in mlx4_ib_post_recv()
    
    Use a __set_data_seg() helper in mlx4_ib_post_recv() too; in addition
    to making the code easier to read, this also allows gcc to generate
    better code -- on x86_64:
    
    add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-8 (-8)
    function                                     old     new   delta
    mlx4_ib_post_recv                            359     351      -8
    
    Signed-off-by: Roland Dreier <[EMAIL PROTECTED]>
---
 drivers/infiniband/hw/mlx4/qp.c |   14 +++++++++-----
 1 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c
index 85c51bd..31a480e 100644
--- a/drivers/infiniband/hw/mlx4/qp.c
+++ b/drivers/infiniband/hw/mlx4/qp.c
@@ -1249,6 +1249,13 @@ static void set_data_seg(struct mlx4_wqe_data_seg *dseg, 
struct ib_sge *sg)
        dseg->byte_count = cpu_to_be32(sg->length);
 }
 
+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,
                      struct ib_send_wr **bad_wr)
 {
@@ -1464,11 +1471,8 @@ int mlx4_ib_post_recv(struct ib_qp *ibqp, struct 
ib_recv_wr *wr,
 
                scat = get_recv_wqe(qp, ind);
 
-               for (i = 0; i < wr->num_sge; ++i) {
-                       scat[i].byte_count = cpu_to_be32(wr->sg_list[i].length);
-                       scat[i].lkey       = cpu_to_be32(wr->sg_list[i].lkey);
-                       scat[i].addr       = cpu_to_be64(wr->sg_list[i].addr);
-               }
+               for (i = 0; i < wr->num_sge; ++i)
+                       __set_data_seg(scat + i, wr->sg_list + i);
 
                if (i < qp->rq.max_gs) {
                        scat[i].byte_count = 0;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to