diff options
author | Bart Van Assche <bart.vanassche@sandisk.com> | 2016-04-23 00:14:43 +0300 |
---|---|---|
committer | Doug Ledford <dledford@redhat.com> | 2016-05-12 21:18:57 +0300 |
commit | 3b59b7a693b0e5b2dc244bcd78899aa2585a434b (patch) | |
tree | e8071521b38d284e75502d61bb0f03bdcc836c8d /drivers/infiniband/ulp | |
parent | ffc548bb3601f0250474afcfa10ceb0b8b8b9764 (diff) | |
download | linux-3b59b7a693b0e5b2dc244bcd78899aa2585a434b.tar.xz |
IB/srp: Move code out of a loop
Since all srp_map_finish_fr() callers pass a non-zero value as
the fourth argument (sg_nents), the sg_nents == 0 check in that
function can be removed. Add a count == 0 check in the caller
of that function.
Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Sagi Grimberg <sagi@grimberg.me>
Cc: Laurence Oberman <loberman@redhat.com>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/infiniband/ulp')
-rw-r--r-- | drivers/infiniband/ulp/srp/ib_srp.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/infiniband/ulp/srp/ib_srp.c b/drivers/infiniband/ulp/srp/ib_srp.c index fbd2edbedf05..ce2c379272cf 100644 --- a/drivers/infiniband/ulp/srp/ib_srp.c +++ b/drivers/infiniband/ulp/srp/ib_srp.c @@ -1315,9 +1315,6 @@ static int srp_map_finish_fr(struct srp_map_state *state, WARN_ON_ONCE(!dev->use_fast_reg); - if (sg_nents == 0) - return 0; - if (sg_nents == 1 && target->global_mr) { srp_map_desc(state, sg_dma_address(state->sg), sg_dma_len(state->sg), @@ -1439,6 +1436,9 @@ static int srp_map_sg_fr(struct srp_map_state *state, struct srp_rdma_ch *ch, state->fr.end = req->fr_list + ch->target->cmd_sg_cnt; state->sg = scat; + if (count == 0) + return 0; + while (count) { int i, n; |