diff options
author | Wenwei Tao <ww.tao0320@gmail.com> | 2015-11-28 10:49:25 -0500 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2015-11-29 16:34:58 -0500 |
commit | d160147b5c96ef5ec842c604ccd79f5f03306677 (patch) | |
tree | 2672290a927b3af161f3cc0ab0e276de7d06cefd | |
parent | 76e25081b6ae60fb094328dedf900ec15f10a9fd (diff) |
lightnvm: do device max sectors boundary check first
do device max_phys_sect boundary check first, otherwise
we will allocate dma_pools for devices whose max sectors
are beyond lightnvm support and register them.
Signed-off-by: Wenwei Tao <ww.tao0320@gmail.com>
Signed-off-by: Matias Bjørling <m@bjorling.me>
Signed-off-by: Jens Axboe <axboe@fb.com>
-rw-r--r-- | drivers/lightnvm/core.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/lightnvm/core.c b/drivers/lightnvm/core.c index ea50fa5b6ba6..ea6dba530f0a 100644 --- a/drivers/lightnvm/core.c +++ b/drivers/lightnvm/core.c | |||
@@ -308,6 +308,12 @@ int nvm_register(struct request_queue *q, char *disk_name, | |||
308 | if (ret) | 308 | if (ret) |
309 | goto err_init; | 309 | goto err_init; |
310 | 310 | ||
311 | if (dev->ops->max_phys_sect > 256) { | ||
312 | pr_info("nvm: max sectors supported is 256.\n"); | ||
313 | ret = -EINVAL; | ||
314 | goto err_init; | ||
315 | } | ||
316 | |||
311 | if (dev->ops->max_phys_sect > 1) { | 317 | if (dev->ops->max_phys_sect > 1) { |
312 | dev->ppalist_pool = dev->ops->create_dma_pool(dev->q, | 318 | dev->ppalist_pool = dev->ops->create_dma_pool(dev->q, |
313 | "ppalist"); | 319 | "ppalist"); |
@@ -316,10 +322,6 @@ int nvm_register(struct request_queue *q, char *disk_name, | |||
316 | ret = -ENOMEM; | 322 | ret = -ENOMEM; |
317 | goto err_init; | 323 | goto err_init; |
318 | } | 324 | } |
319 | } else if (dev->ops->max_phys_sect > 256) { | ||
320 | pr_info("nvm: max sectors supported is 256.\n"); | ||
321 | ret = -EINVAL; | ||
322 | goto err_init; | ||
323 | } | 325 | } |
324 | 326 | ||
325 | down_write(&nvm_lock); | 327 | down_write(&nvm_lock); |