aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/lightnvm/core.c
diff options
context:
space:
mode:
authorMatias Bjørling <m@bjorling.me>2015-12-06 05:25:48 -0500
committerJens Axboe <axboe@fb.com>2015-12-07 11:14:19 -0500
commit16f26c3aa9b9c36a9d1092ae3258461d1008481e (patch)
treefdfb366092d3727b6867aac782a6a09a042f85a3 /drivers/lightnvm/core.c
parent57b4bd06ff0372fe1e3617889c4b37fbd500364a (diff)
lightnvm: replace req queue with nvmdev for lld
In the case where a request queue is passed to the low lever lightnvm device drive integration, the device driver might pass its admin commands through another queue. Instead pass nvm_dev, and let the low level drive the appropriate queue. Reported-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: Matias Bjørling <m@bjorling.me> Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'drivers/lightnvm/core.c')
-rw-r--r--drivers/lightnvm/core.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/lightnvm/core.c b/drivers/lightnvm/core.c
index 86ce887b2ed6..4a8d1fe34c4e 100644
--- a/drivers/lightnvm/core.c
+++ b/drivers/lightnvm/core.c
@@ -74,7 +74,7 @@ EXPORT_SYMBOL(nvm_unregister_target);
74void *nvm_dev_dma_alloc(struct nvm_dev *dev, gfp_t mem_flags, 74void *nvm_dev_dma_alloc(struct nvm_dev *dev, gfp_t mem_flags,
75 dma_addr_t *dma_handler) 75 dma_addr_t *dma_handler)
76{ 76{
77 return dev->ops->dev_dma_alloc(dev->q, dev->ppalist_pool, mem_flags, 77 return dev->ops->dev_dma_alloc(dev, dev->ppalist_pool, mem_flags,
78 dma_handler); 78 dma_handler);
79} 79}
80EXPORT_SYMBOL(nvm_dev_dma_alloc); 80EXPORT_SYMBOL(nvm_dev_dma_alloc);
@@ -246,7 +246,7 @@ static int nvm_init(struct nvm_dev *dev)
246 if (!dev->q || !dev->ops) 246 if (!dev->q || !dev->ops)
247 return ret; 247 return ret;
248 248
249 if (dev->ops->identity(dev->q, &dev->identity)) { 249 if (dev->ops->identity(dev, &dev->identity)) {
250 pr_err("nvm: device could not be identified\n"); 250 pr_err("nvm: device could not be identified\n");
251 goto err; 251 goto err;
252 } 252 }
@@ -326,8 +326,7 @@ int nvm_register(struct request_queue *q, char *disk_name,
326 } 326 }
327 327
328 if (dev->ops->max_phys_sect > 1) { 328 if (dev->ops->max_phys_sect > 1) {
329 dev->ppalist_pool = dev->ops->create_dma_pool(dev->q, 329 dev->ppalist_pool = dev->ops->create_dma_pool(dev, "ppalist");
330 "ppalist");
331 if (!dev->ppalist_pool) { 330 if (!dev->ppalist_pool) {
332 pr_err("nvm: could not create ppa pool\n"); 331 pr_err("nvm: could not create ppa pool\n");
333 ret = -ENOMEM; 332 ret = -ENOMEM;