aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/lightnvm/core.c
diff options
context:
space:
mode:
authorRakesh Pandit <rakesh@tuxera.com>2017-10-13 08:46:30 -0400
committerJens Axboe <axboe@kernel.dk>2017-10-13 10:34:57 -0400
commitef56b9ce562753cacf518f081a4ff3227efdab25 (patch)
tree47658de4c214caa800d49ab11972b9165d8c5e30 /drivers/lightnvm/core.c
parente480689bd1cc35f6ed3fa628bc8d913177b0726a (diff)
lightnvm: remove unused argument from nvm_set_tgt_bb_tbl
vblk isn't being used anyway and if we ever have a usecase we can introduce this again. This makes the logic easier and removes unnecessary checks. Signed-off-by: Rakesh Pandit <rakesh@tuxera.com> Signed-off-by: Matias Bjørling <m@bjorling.me> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'drivers/lightnvm/core.c')
-rw-r--r--drivers/lightnvm/core.c29
1 files changed, 12 insertions, 17 deletions
diff --git a/drivers/lightnvm/core.c b/drivers/lightnvm/core.c
index 798964f511cd..231c92899431 100644
--- a/drivers/lightnvm/core.c
+++ b/drivers/lightnvm/core.c
@@ -633,7 +633,7 @@ int nvm_set_tgt_bb_tbl(struct nvm_tgt_dev *tgt_dev, struct ppa_addr *ppas,
633 633
634 memset(&rqd, 0, sizeof(struct nvm_rq)); 634 memset(&rqd, 0, sizeof(struct nvm_rq));
635 635
636 nvm_set_rqd_ppalist(tgt_dev, &rqd, ppas, nr_ppas, 1); 636 nvm_set_rqd_ppalist(tgt_dev, &rqd, ppas, nr_ppas);
637 nvm_rq_tgt_to_dev(tgt_dev, &rqd); 637 nvm_rq_tgt_to_dev(tgt_dev, &rqd);
638 638
639 ret = dev->ops->set_bb_tbl(dev, &rqd.ppa_addr, rqd.nr_ppas, type); 639 ret = dev->ops->set_bb_tbl(dev, &rqd.ppa_addr, rqd.nr_ppas, type);
@@ -697,7 +697,7 @@ int nvm_erase_sync(struct nvm_tgt_dev *tgt_dev, struct ppa_addr *ppas,
697 rqd.private = &wait; 697 rqd.private = &wait;
698 rqd.flags = geo->plane_mode >> 1; 698 rqd.flags = geo->plane_mode >> 1;
699 699
700 ret = nvm_set_rqd_ppalist(tgt_dev, &rqd, ppas, nr_ppas, 1); 700 ret = nvm_set_rqd_ppalist(tgt_dev, &rqd, ppas, nr_ppas);
701 if (ret) 701 if (ret)
702 return ret; 702 return ret;
703 703
@@ -793,14 +793,14 @@ void nvm_put_area(struct nvm_tgt_dev *tgt_dev, sector_t begin)
793EXPORT_SYMBOL(nvm_put_area); 793EXPORT_SYMBOL(nvm_put_area);
794 794
795int nvm_set_rqd_ppalist(struct nvm_tgt_dev *tgt_dev, struct nvm_rq *rqd, 795int nvm_set_rqd_ppalist(struct nvm_tgt_dev *tgt_dev, struct nvm_rq *rqd,
796 const struct ppa_addr *ppas, int nr_ppas, int vblk) 796 const struct ppa_addr *ppas, int nr_ppas)
797{ 797{
798 struct nvm_dev *dev = tgt_dev->parent; 798 struct nvm_dev *dev = tgt_dev->parent;
799 struct nvm_geo *geo = &tgt_dev->geo; 799 struct nvm_geo *geo = &tgt_dev->geo;
800 int i, plane_cnt, pl_idx; 800 int i, plane_cnt, pl_idx;
801 struct ppa_addr ppa; 801 struct ppa_addr ppa;
802 802
803 if ((!vblk || geo->plane_mode == NVM_PLANE_SINGLE) && nr_ppas == 1) { 803 if (geo->plane_mode == NVM_PLANE_SINGLE && nr_ppas == 1) {
804 rqd->nr_ppas = nr_ppas; 804 rqd->nr_ppas = nr_ppas;
805 rqd->ppa_addr = ppas[0]; 805 rqd->ppa_addr = ppas[0];
806 806
@@ -814,19 +814,14 @@ int nvm_set_rqd_ppalist(struct nvm_tgt_dev *tgt_dev, struct nvm_rq *rqd,
814 return -ENOMEM; 814 return -ENOMEM;
815 } 815 }
816 816
817 if (!vblk) { 817 plane_cnt = geo->plane_mode;
818 for (i = 0; i < nr_ppas; i++) 818 rqd->nr_ppas *= plane_cnt;
819 rqd->ppa_list[i] = ppas[i]; 819
820 } else { 820 for (i = 0; i < nr_ppas; i++) {
821 plane_cnt = geo->plane_mode; 821 for (pl_idx = 0; pl_idx < plane_cnt; pl_idx++) {
822 rqd->nr_ppas *= plane_cnt; 822 ppa = ppas[i];
823 823 ppa.g.pl = pl_idx;
824 for (i = 0; i < nr_ppas; i++) { 824 rqd->ppa_list[(pl_idx * nr_ppas) + i] = ppa;
825 for (pl_idx = 0; pl_idx < plane_cnt; pl_idx++) {
826 ppa = ppas[i];
827 ppa.g.pl = pl_idx;
828 rqd->ppa_list[(pl_idx * nr_ppas) + i] = ppa;
829 }
830 } 825 }
831 } 826 }
832 827