diff options
author | Javier González <javier@javigon.com> | 2018-10-09 07:12:02 -0400 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2018-10-09 10:25:07 -0400 |
commit | 45dcf29b98377bbdc40aa4a23a79ade60295dbaf (patch) | |
tree | 2c21e73e66a009ba9ebfb22e425064e952b91571 /drivers/lightnvm/pblk-write.c | |
parent | 090ee26fd51270cc3bd54a0efbc716ede320ad27 (diff) |
lightnvm: pblk: encapsulate rqd dma allocations
dma allocations for ppa_list and meta_list in rqd are replicated in
several places across the pblk codebase. Make helpers to encapsulate
creation and deletion to simplify the code.
Signed-off-by: Javier González <javier@cnexlabs.com>
Signed-off-by: Matias Bjørling <mb@lightnvm.io>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'drivers/lightnvm/pblk-write.c')
-rw-r--r-- | drivers/lightnvm/pblk-write.c | 15 |
1 files changed, 2 insertions, 13 deletions
diff --git a/drivers/lightnvm/pblk-write.c b/drivers/lightnvm/pblk-write.c index 9554febee480..a276f25d3931 100644 --- a/drivers/lightnvm/pblk-write.c +++ b/drivers/lightnvm/pblk-write.c | |||
@@ -285,11 +285,8 @@ static void pblk_end_io_write_meta(struct nvm_rq *rqd) | |||
285 | } | 285 | } |
286 | 286 | ||
287 | static int pblk_alloc_w_rq(struct pblk *pblk, struct nvm_rq *rqd, | 287 | static int pblk_alloc_w_rq(struct pblk *pblk, struct nvm_rq *rqd, |
288 | unsigned int nr_secs, | 288 | unsigned int nr_secs, nvm_end_io_fn(*end_io)) |
289 | nvm_end_io_fn(*end_io)) | ||
290 | { | 289 | { |
291 | struct nvm_tgt_dev *dev = pblk->dev; | ||
292 | |||
293 | /* Setup write request */ | 290 | /* Setup write request */ |
294 | rqd->opcode = NVM_OP_PWRITE; | 291 | rqd->opcode = NVM_OP_PWRITE; |
295 | rqd->nr_ppas = nr_secs; | 292 | rqd->nr_ppas = nr_secs; |
@@ -297,15 +294,7 @@ static int pblk_alloc_w_rq(struct pblk *pblk, struct nvm_rq *rqd, | |||
297 | rqd->private = pblk; | 294 | rqd->private = pblk; |
298 | rqd->end_io = end_io; | 295 | rqd->end_io = end_io; |
299 | 296 | ||
300 | rqd->meta_list = nvm_dev_dma_alloc(dev->parent, GFP_KERNEL, | 297 | return pblk_alloc_rqd_meta(pblk, rqd); |
301 | &rqd->dma_meta_list); | ||
302 | if (!rqd->meta_list) | ||
303 | return -ENOMEM; | ||
304 | |||
305 | rqd->ppa_list = rqd->meta_list + pblk_dma_meta_size; | ||
306 | rqd->dma_ppa_list = rqd->dma_meta_list + pblk_dma_meta_size; | ||
307 | |||
308 | return 0; | ||
309 | } | 298 | } |
310 | 299 | ||
311 | static int pblk_setup_w_rq(struct pblk *pblk, struct nvm_rq *rqd, | 300 | static int pblk_setup_w_rq(struct pblk *pblk, struct nvm_rq *rqd, |