aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatias Bjørling <matias@cnexlabs.com>2017-01-31 07:17:12 -0500
committerJens Axboe <axboe@fb.com>2017-01-31 10:32:13 -0500
commit8f4fe008fb256649bd0e16c96a6eafa3bd916ac3 (patch)
tree588a20d21677503d3a752f9adb51ec82f1d073ec
parent583b7058b2e8071f59646c8fb027f6c3597417ac (diff)
lightnvm: remove nvm_get_bb_tbl and nvm_set_bb_tbl
Since the merge of gennvm and core, there is no longer a need for the device specific bad block functions. Signed-off-by: Matias Bjørling <matias@cnexlabs.com> Signed-off-by: Jens Axboe <axboe@fb.com>
-rw-r--r--drivers/lightnvm/core.c40
-rw-r--r--include/linux/lightnvm.h2
2 files changed, 4 insertions, 38 deletions
diff --git a/drivers/lightnvm/core.c b/drivers/lightnvm/core.c
index ffdf048d58d1..18d48732fe74 100644
--- a/drivers/lightnvm/core.c
+++ b/drivers/lightnvm/core.c
@@ -605,33 +605,6 @@ static void nvm_tgt_generic_to_addr_mode(struct nvm_tgt_dev *tgt_dev,
605 } 605 }
606} 606}
607 607
608int nvm_set_bb_tbl(struct nvm_dev *dev, struct ppa_addr *ppas, int nr_ppas,
609 int type)
610{
611 struct nvm_rq rqd;
612 int ret;
613
614 if (nr_ppas > dev->ops->max_phys_sect) {
615 pr_err("nvm: unable to update all sysblocks atomically\n");
616 return -EINVAL;
617 }
618
619 memset(&rqd, 0, sizeof(struct nvm_rq));
620
621 nvm_set_rqd_ppalist(dev, &rqd, ppas, nr_ppas, 1);
622 nvm_generic_to_addr_mode(dev, &rqd);
623
624 ret = dev->ops->set_bb_tbl(dev, &rqd.ppa_addr, rqd.nr_ppas, type);
625 nvm_free_rqd_ppalist(dev, &rqd);
626 if (ret) {
627 pr_err("nvm: sysblk failed bb mark\n");
628 return -EINVAL;
629 }
630
631 return 0;
632}
633EXPORT_SYMBOL(nvm_set_bb_tbl);
634
635int nvm_set_tgt_bb_tbl(struct nvm_tgt_dev *tgt_dev, struct ppa_addr *ppas, 608int nvm_set_tgt_bb_tbl(struct nvm_tgt_dev *tgt_dev, struct ppa_addr *ppas,
636 int nr_ppas, int type) 609 int nr_ppas, int type)
637{ 610{
@@ -919,20 +892,15 @@ int nvm_bb_tbl_fold(struct nvm_dev *dev, u8 *blks, int nr_blks)
919} 892}
920EXPORT_SYMBOL(nvm_bb_tbl_fold); 893EXPORT_SYMBOL(nvm_bb_tbl_fold);
921 894
922int nvm_get_bb_tbl(struct nvm_dev *dev, struct ppa_addr ppa, u8 *blks)
923{
924 ppa = generic_to_dev_addr(dev, ppa);
925
926 return dev->ops->get_bb_tbl(dev, ppa, blks);
927}
928EXPORT_SYMBOL(nvm_get_bb_tbl);
929
930int nvm_get_tgt_bb_tbl(struct nvm_tgt_dev *tgt_dev, struct ppa_addr ppa, 895int nvm_get_tgt_bb_tbl(struct nvm_tgt_dev *tgt_dev, struct ppa_addr ppa,
931 u8 *blks) 896 u8 *blks)
932{ 897{
898 struct nvm_dev *dev = tgt_dev->parent;
899
933 ppa = nvm_trans_ppa(tgt_dev, ppa, TRANS_TGT_TO_DEV); 900 ppa = nvm_trans_ppa(tgt_dev, ppa, TRANS_TGT_TO_DEV);
901 ppa = generic_to_dev_addr(dev, ppa);
934 902
935 return nvm_get_bb_tbl(tgt_dev->parent, ppa, blks); 903 return dev->ops->get_bb_tbl(dev, ppa, blks);
936} 904}
937EXPORT_SYMBOL(nvm_get_tgt_bb_tbl); 905EXPORT_SYMBOL(nvm_get_tgt_bb_tbl);
938 906
diff --git a/include/linux/lightnvm.h b/include/linux/lightnvm.h
index abb3d55c107f..cad1e1cb0635 100644
--- a/include/linux/lightnvm.h
+++ b/include/linux/lightnvm.h
@@ -473,7 +473,6 @@ extern struct nvm_dev *nvm_alloc_dev(int);
473extern int nvm_register(struct nvm_dev *); 473extern int nvm_register(struct nvm_dev *);
474extern void nvm_unregister(struct nvm_dev *); 474extern void nvm_unregister(struct nvm_dev *);
475 475
476extern int nvm_set_bb_tbl(struct nvm_dev *, struct ppa_addr *, int, int);
477extern int nvm_set_tgt_bb_tbl(struct nvm_tgt_dev *, struct ppa_addr *, 476extern int nvm_set_tgt_bb_tbl(struct nvm_tgt_dev *, struct ppa_addr *,
478 int, int); 477 int, int);
479extern int nvm_max_phys_sects(struct nvm_tgt_dev *); 478extern int nvm_max_phys_sects(struct nvm_tgt_dev *);
@@ -490,7 +489,6 @@ extern int nvm_get_area(struct nvm_tgt_dev *, sector_t *, sector_t);
490extern void nvm_put_area(struct nvm_tgt_dev *, sector_t); 489extern void nvm_put_area(struct nvm_tgt_dev *, sector_t);
491extern void nvm_end_io(struct nvm_rq *, int); 490extern void nvm_end_io(struct nvm_rq *, int);
492extern int nvm_bb_tbl_fold(struct nvm_dev *, u8 *, int); 491extern int nvm_bb_tbl_fold(struct nvm_dev *, u8 *, int);
493extern int nvm_get_bb_tbl(struct nvm_dev *, struct ppa_addr, u8 *);
494extern int nvm_get_tgt_bb_tbl(struct nvm_tgt_dev *, struct ppa_addr, u8 *); 492extern int nvm_get_tgt_bb_tbl(struct nvm_tgt_dev *, struct ppa_addr, u8 *);
495 493
496extern int nvm_dev_factory(struct nvm_dev *, int flags); 494extern int nvm_dev_factory(struct nvm_dev *, int flags);