diff options
author | Andy Grover <andy.grover@oracle.com> | 2010-01-13 19:32:24 -0500 |
---|---|---|
committer | Andy Grover <andy.grover@oracle.com> | 2010-09-08 21:11:50 -0400 |
commit | 919ced4ce7d6ac62dd5be62d8993fe22a527d53a (patch) | |
tree | f201cb777e39cee0fa030ebf0e71558b3227b9c9 /net/rds/ib_send.c | |
parent | 6f3d05db0da0b874afd2dd229bed715133532f8d (diff) |
RDS/IB: Remove ib_[header/data]_sge() functions
These functions were to cope with differently ordered
sg entries depending on RDS 3.0 or 3.1+. Now that
we've dropped 3.0 compatibility we no longer need them.
Also, modify usage sites for these to refer to sge[0] or [1]
directly. Reorder code to initialize header sgs first.
Signed-off-by: Andy Grover <andy.grover@oracle.com>
Diffstat (limited to 'net/rds/ib_send.c')
-rw-r--r-- | net/rds/ib_send.c | 32 |
1 files changed, 12 insertions, 20 deletions
diff --git a/net/rds/ib_send.c b/net/rds/ib_send.c index e86908497fcf..46026d9091f1 100644 --- a/net/rds/ib_send.c +++ b/net/rds/ib_send.c | |||
@@ -156,18 +156,14 @@ void rds_ib_send_init_ring(struct rds_ib_connection *ic) | |||
156 | 156 | ||
157 | send->s_wr.wr_id = i; | 157 | send->s_wr.wr_id = i; |
158 | send->s_wr.sg_list = send->s_sge; | 158 | send->s_wr.sg_list = send->s_sge; |
159 | send->s_wr.num_sge = 1; | ||
160 | send->s_wr.opcode = IB_WR_SEND; | ||
161 | send->s_wr.send_flags = 0; | ||
162 | send->s_wr.ex.imm_data = 0; | 159 | send->s_wr.ex.imm_data = 0; |
163 | 160 | ||
164 | sge = rds_ib_data_sge(ic, send->s_sge); | 161 | sge = &send->s_sge[0]; |
165 | sge->lkey = ic->i_mr->lkey; | ||
166 | |||
167 | sge = rds_ib_header_sge(ic, send->s_sge); | ||
168 | sge->addr = ic->i_send_hdrs_dma + (i * sizeof(struct rds_header)); | 162 | sge->addr = ic->i_send_hdrs_dma + (i * sizeof(struct rds_header)); |
169 | sge->length = sizeof(struct rds_header); | 163 | sge->length = sizeof(struct rds_header); |
170 | sge->lkey = ic->i_mr->lkey; | 164 | sge->lkey = ic->i_mr->lkey; |
165 | |||
166 | send->s_sge[1].lkey = ic->i_mr->lkey; | ||
171 | } | 167 | } |
172 | } | 168 | } |
173 | 169 | ||
@@ -441,28 +437,24 @@ rds_ib_xmit_populate_wr(struct rds_ib_connection *ic, | |||
441 | 437 | ||
442 | send->s_wr.send_flags = send_flags; | 438 | send->s_wr.send_flags = send_flags; |
443 | send->s_wr.opcode = IB_WR_SEND; | 439 | send->s_wr.opcode = IB_WR_SEND; |
444 | send->s_wr.num_sge = 2; | 440 | send->s_wr.num_sge = 1; |
445 | send->s_wr.next = NULL; | 441 | send->s_wr.next = NULL; |
446 | send->s_queued = jiffies; | 442 | send->s_queued = jiffies; |
447 | send->s_op = NULL; | 443 | send->s_op = NULL; |
448 | 444 | ||
445 | sge = &send->s_sge[0]; | ||
446 | sge->addr = ic->i_send_hdrs_dma + (pos * sizeof(struct rds_header)); | ||
447 | sge->length = sizeof(struct rds_header); | ||
448 | sge->lkey = ic->i_mr->lkey; | ||
449 | |||
449 | if (length != 0) { | 450 | if (length != 0) { |
450 | sge = rds_ib_data_sge(ic, send->s_sge); | 451 | send->s_wr.num_sge = 2; |
452 | |||
453 | sge = &send->s_sge[1]; | ||
451 | sge->addr = buffer; | 454 | sge->addr = buffer; |
452 | sge->length = length; | 455 | sge->length = length; |
453 | sge->lkey = ic->i_mr->lkey; | 456 | sge->lkey = ic->i_mr->lkey; |
454 | |||
455 | sge = rds_ib_header_sge(ic, send->s_sge); | ||
456 | } else { | ||
457 | /* We're sending a packet with no payload. There is only | ||
458 | * one SGE */ | ||
459 | send->s_wr.num_sge = 1; | ||
460 | sge = &send->s_sge[0]; | ||
461 | } | 457 | } |
462 | |||
463 | sge->addr = ic->i_send_hdrs_dma + (pos * sizeof(struct rds_header)); | ||
464 | sge->length = sizeof(struct rds_header); | ||
465 | sge->lkey = ic->i_mr->lkey; | ||
466 | } | 458 | } |
467 | 459 | ||
468 | /* | 460 | /* |