aboutsummaryrefslogtreecommitdiffstats
path: root/net/sunrpc/xprtrdma/fmr_ops.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/sunrpc/xprtrdma/fmr_ops.c')
-rw-r--r--net/sunrpc/xprtrdma/fmr_ops.c28
1 files changed, 14 insertions, 14 deletions
diff --git a/net/sunrpc/xprtrdma/fmr_ops.c b/net/sunrpc/xprtrdma/fmr_ops.c
index c14f3a4bff68..b289e106540b 100644
--- a/net/sunrpc/xprtrdma/fmr_ops.c
+++ b/net/sunrpc/xprtrdma/fmr_ops.c
@@ -80,13 +80,13 @@ fmr_op_init(struct rpcrdma_xprt *r_xprt)
80 if (!r) 80 if (!r)
81 goto out; 81 goto out;
82 82
83 r->r.fmr.physaddrs = kmalloc(RPCRDMA_MAX_FMR_SGES * 83 r->fmr.physaddrs = kmalloc(RPCRDMA_MAX_FMR_SGES *
84 sizeof(u64), GFP_KERNEL); 84 sizeof(u64), GFP_KERNEL);
85 if (!r->r.fmr.physaddrs) 85 if (!r->fmr.physaddrs)
86 goto out_free; 86 goto out_free;
87 87
88 r->r.fmr.fmr = ib_alloc_fmr(pd, mr_access_flags, &fmr_attr); 88 r->fmr.fmr = ib_alloc_fmr(pd, mr_access_flags, &fmr_attr);
89 if (IS_ERR(r->r.fmr.fmr)) 89 if (IS_ERR(r->fmr.fmr))
90 goto out_fmr_err; 90 goto out_fmr_err;
91 91
92 list_add(&r->mw_list, &buf->rb_mws); 92 list_add(&r->mw_list, &buf->rb_mws);
@@ -95,9 +95,9 @@ fmr_op_init(struct rpcrdma_xprt *r_xprt)
95 return 0; 95 return 0;
96 96
97out_fmr_err: 97out_fmr_err:
98 rc = PTR_ERR(r->r.fmr.fmr); 98 rc = PTR_ERR(r->fmr.fmr);
99 dprintk("RPC: %s: ib_alloc_fmr status %i\n", __func__, rc); 99 dprintk("RPC: %s: ib_alloc_fmr status %i\n", __func__, rc);
100 kfree(r->r.fmr.physaddrs); 100 kfree(r->fmr.physaddrs);
101out_free: 101out_free:
102 kfree(r); 102 kfree(r);
103out: 103out:
@@ -109,7 +109,7 @@ __fmr_unmap(struct rpcrdma_mw *r)
109{ 109{
110 LIST_HEAD(l); 110 LIST_HEAD(l);
111 111
112 list_add(&r->r.fmr.fmr->list, &l); 112 list_add(&r->fmr.fmr->list, &l);
113 return ib_unmap_fmr(&l); 113 return ib_unmap_fmr(&l);
114} 114}
115 115
@@ -148,7 +148,7 @@ fmr_op_map(struct rpcrdma_xprt *r_xprt, struct rpcrdma_mr_seg *seg,
148 nsegs = RPCRDMA_MAX_FMR_SGES; 148 nsegs = RPCRDMA_MAX_FMR_SGES;
149 for (i = 0; i < nsegs;) { 149 for (i = 0; i < nsegs;) {
150 rpcrdma_map_one(device, seg, direction); 150 rpcrdma_map_one(device, seg, direction);
151 mw->r.fmr.physaddrs[i] = seg->mr_dma; 151 mw->fmr.physaddrs[i] = seg->mr_dma;
152 len += seg->mr_len; 152 len += seg->mr_len;
153 ++seg; 153 ++seg;
154 ++i; 154 ++i;
@@ -158,13 +158,13 @@ fmr_op_map(struct rpcrdma_xprt *r_xprt, struct rpcrdma_mr_seg *seg,
158 break; 158 break;
159 } 159 }
160 160
161 rc = ib_map_phys_fmr(mw->r.fmr.fmr, mw->r.fmr.physaddrs, 161 rc = ib_map_phys_fmr(mw->fmr.fmr, mw->fmr.physaddrs,
162 i, seg1->mr_dma); 162 i, seg1->mr_dma);
163 if (rc) 163 if (rc)
164 goto out_maperr; 164 goto out_maperr;
165 165
166 seg1->rl_mw = mw; 166 seg1->rl_mw = mw;
167 seg1->mr_rkey = mw->r.fmr.fmr->rkey; 167 seg1->mr_rkey = mw->fmr.fmr->rkey;
168 seg1->mr_base = seg1->mr_dma + pageoff; 168 seg1->mr_base = seg1->mr_dma + pageoff;
169 seg1->mr_nsegs = i; 169 seg1->mr_nsegs = i;
170 seg1->mr_len = len; 170 seg1->mr_len = len;
@@ -219,7 +219,7 @@ fmr_op_unmap_sync(struct rpcrdma_xprt *r_xprt, struct rpcrdma_req *req)
219 seg = &req->rl_segments[i]; 219 seg = &req->rl_segments[i];
220 mw = seg->rl_mw; 220 mw = seg->rl_mw;
221 221
222 list_add(&mw->r.fmr.fmr->list, &unmap_list); 222 list_add(&mw->fmr.fmr->list, &unmap_list);
223 223
224 i += seg->mr_nsegs; 224 i += seg->mr_nsegs;
225 } 225 }
@@ -281,9 +281,9 @@ fmr_op_destroy(struct rpcrdma_buffer *buf)
281 while (!list_empty(&buf->rb_all)) { 281 while (!list_empty(&buf->rb_all)) {
282 r = list_entry(buf->rb_all.next, struct rpcrdma_mw, mw_all); 282 r = list_entry(buf->rb_all.next, struct rpcrdma_mw, mw_all);
283 list_del(&r->mw_all); 283 list_del(&r->mw_all);
284 kfree(r->r.fmr.physaddrs); 284 kfree(r->fmr.physaddrs);
285 285
286 rc = ib_dealloc_fmr(r->r.fmr.fmr); 286 rc = ib_dealloc_fmr(r->fmr.fmr);
287 if (rc) 287 if (rc)
288 dprintk("RPC: %s: ib_dealloc_fmr failed %i\n", 288 dprintk("RPC: %s: ib_dealloc_fmr failed %i\n",
289 __func__, rc); 289 __func__, rc);