aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/lightnvm/pblk-init.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/lightnvm/pblk-init.c')
-rw-r--r--drivers/lightnvm/pblk-init.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/lightnvm/pblk-init.c b/drivers/lightnvm/pblk-init.c
index 141036bd6afa..43b835678f48 100644
--- a/drivers/lightnvm/pblk-init.c
+++ b/drivers/lightnvm/pblk-init.c
@@ -260,8 +260,7 @@ static int pblk_core_init(struct pblk *pblk)
260 return -ENOMEM; 260 return -ENOMEM;
261 261
262 /* Internal bios can be at most the sectors signaled by the device. */ 262 /* Internal bios can be at most the sectors signaled by the device. */
263 pblk->page_bio_pool = mempool_create_page_pool(nvm_max_phys_sects(dev), 263 pblk->page_bio_pool = mempool_create_page_pool(NVM_MAX_VLBA, 0);
264 0);
265 if (!pblk->page_bio_pool) 264 if (!pblk->page_bio_pool)
266 goto free_global_caches; 265 goto free_global_caches;
267 266
@@ -716,12 +715,12 @@ static int pblk_lines_init(struct pblk *pblk)
716 715
717 pblk->min_write_pgs = geo->sec_per_pl * (geo->sec_size / PAGE_SIZE); 716 pblk->min_write_pgs = geo->sec_per_pl * (geo->sec_size / PAGE_SIZE);
718 max_write_ppas = pblk->min_write_pgs * geo->all_luns; 717 max_write_ppas = pblk->min_write_pgs * geo->all_luns;
719 pblk->max_write_pgs = (max_write_ppas < nvm_max_phys_sects(dev)) ? 718 pblk->max_write_pgs = min_t(int, max_write_ppas, NVM_MAX_VLBA);
720 max_write_ppas : nvm_max_phys_sects(dev);
721 pblk_set_sec_per_write(pblk, pblk->min_write_pgs); 719 pblk_set_sec_per_write(pblk, pblk->min_write_pgs);
722 720
723 if (pblk->max_write_pgs > PBLK_MAX_REQ_ADDRS) { 721 if (pblk->max_write_pgs > PBLK_MAX_REQ_ADDRS) {
724 pr_err("pblk: cannot support device max_phys_sect\n"); 722 pr_err("pblk: vector list too big(%u > %u)\n",
723 pblk->max_write_pgs, PBLK_MAX_REQ_ADDRS);
725 return -EINVAL; 724 return -EINVAL;
726 } 725 }
727 726