Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e535c699bfeafd0380418156f93494e370613e9d
Commit:     e535c699bfeafd0380418156f93494e370613e9d
Parent:     400ddc11eb01a8d04c580892fde3adbd45ebdc9e
Author:     Roland Dreier <[EMAIL PROTECTED]>
AuthorDate: Wed Jul 18 13:21:14 2007 -0700
Committer:  Roland Dreier <[EMAIL PROTECTED]>
CommitDate: Wed Jul 18 13:21:14 2007 -0700

    IB/mthca: Factor out setting WQE UD segment entries
    
    Factor code to set UD entries out of the work request posting
    functions into inline functions set_tavor_ud_seg() and
    set_arbel_ud_seg().  This doesn't change the generated code in any
    significant way, and makes the source easier on the eyes.
    
    Signed-off-by: Roland Dreier <[EMAIL PROTECTED]>
---
 drivers/infiniband/hw/mthca/mthca_qp.c |   40 +++++++++++++++++--------------
 1 files changed, 22 insertions(+), 18 deletions(-)

diff --git a/drivers/infiniband/hw/mthca/mthca_qp.c 
b/drivers/infiniband/hw/mthca/mthca_qp.c
index 43d4d77..b5bd704 100644
--- a/drivers/infiniband/hw/mthca/mthca_qp.c
+++ b/drivers/infiniband/hw/mthca/mthca_qp.c
@@ -1599,6 +1599,24 @@ static __always_inline void set_atomic_seg(struct 
mthca_atomic_seg *aseg,
 
 }
 
+static void set_tavor_ud_seg(struct mthca_tavor_ud_seg *useg,
+                            struct ib_send_wr *wr)
+{
+       useg->lkey    = cpu_to_be32(to_mah(wr->wr.ud.ah)->key);
+       useg->av_addr = cpu_to_be64(to_mah(wr->wr.ud.ah)->avdma);
+       useg->dqpn    = cpu_to_be32(wr->wr.ud.remote_qpn);
+       useg->qkey    = cpu_to_be32(wr->wr.ud.remote_qkey);
+
+}
+
+static void set_arbel_ud_seg(struct mthca_arbel_ud_seg *useg,
+                            struct ib_send_wr *wr)
+{
+       memcpy(useg->av, to_mah(wr->wr.ud.ah)->av, MTHCA_AV_SIZE);
+       useg->dqpn = cpu_to_be32(wr->wr.ud.remote_qpn);
+       useg->qkey = cpu_to_be32(wr->wr.ud.remote_qkey);
+}
+
 int mthca_tavor_post_send(struct ib_qp *ibqp, struct ib_send_wr *wr,
                          struct ib_send_wr **bad_wr)
 {
@@ -1707,16 +1725,8 @@ int mthca_tavor_post_send(struct ib_qp *ibqp, struct 
ib_send_wr *wr,
                        break;
 
                case UD:
-                       ((struct mthca_tavor_ud_seg *) wqe)->lkey =
-                               cpu_to_be32(to_mah(wr->wr.ud.ah)->key);
-                       ((struct mthca_tavor_ud_seg *) wqe)->av_addr =
-                               cpu_to_be64(to_mah(wr->wr.ud.ah)->avdma);
-                       ((struct mthca_tavor_ud_seg *) wqe)->dqpn =
-                               cpu_to_be32(wr->wr.ud.remote_qpn);
-                       ((struct mthca_tavor_ud_seg *) wqe)->qkey =
-                               cpu_to_be32(wr->wr.ud.remote_qkey);
-
-                       wqe += sizeof (struct mthca_tavor_ud_seg);
+                       set_tavor_ud_seg(wqe, wr);
+                       wqe  += sizeof (struct mthca_tavor_ud_seg);
                        size += sizeof (struct mthca_tavor_ud_seg) / 16;
                        break;
 
@@ -2064,14 +2074,8 @@ int mthca_arbel_post_send(struct ib_qp *ibqp, struct 
ib_send_wr *wr,
                        break;
 
                case UD:
-                       memcpy(((struct mthca_arbel_ud_seg *) wqe)->av,
-                              to_mah(wr->wr.ud.ah)->av, MTHCA_AV_SIZE);
-                       ((struct mthca_arbel_ud_seg *) wqe)->dqpn =
-                               cpu_to_be32(wr->wr.ud.remote_qpn);
-                       ((struct mthca_arbel_ud_seg *) wqe)->qkey =
-                               cpu_to_be32(wr->wr.ud.remote_qkey);
-
-                       wqe += sizeof (struct mthca_arbel_ud_seg);
+                       set_arbel_ud_seg(wqe, wr);
+                       wqe  += sizeof (struct mthca_arbel_ud_seg);
                        size += sizeof (struct mthca_arbel_ud_seg) / 16;
                        break;
 
-
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