diff options
author | Matias Bjørling <matias@cnexlabs.com> | 2017-01-31 07:17:12 -0500 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2017-01-31 10:32:13 -0500 |
commit | 8f4fe008fb256649bd0e16c96a6eafa3bd916ac3 (patch) | |
tree | 588a20d21677503d3a752f9adb51ec82f1d073ec | |
parent | 583b7058b2e8071f59646c8fb027f6c3597417ac (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.c | 40 | ||||
-rw-r--r-- | include/linux/lightnvm.h | 2 |
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 | ||
608 | int 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 | } | ||
633 | EXPORT_SYMBOL(nvm_set_bb_tbl); | ||
634 | |||
635 | int nvm_set_tgt_bb_tbl(struct nvm_tgt_dev *tgt_dev, struct ppa_addr *ppas, | 608 | int 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 | } |
920 | EXPORT_SYMBOL(nvm_bb_tbl_fold); | 893 | EXPORT_SYMBOL(nvm_bb_tbl_fold); |
921 | 894 | ||
922 | int 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 | } | ||
928 | EXPORT_SYMBOL(nvm_get_bb_tbl); | ||
929 | |||
930 | int nvm_get_tgt_bb_tbl(struct nvm_tgt_dev *tgt_dev, struct ppa_addr ppa, | 895 | int 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 | } |
937 | EXPORT_SYMBOL(nvm_get_tgt_bb_tbl); | 905 | EXPORT_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); | |||
473 | extern int nvm_register(struct nvm_dev *); | 473 | extern int nvm_register(struct nvm_dev *); |
474 | extern void nvm_unregister(struct nvm_dev *); | 474 | extern void nvm_unregister(struct nvm_dev *); |
475 | 475 | ||
476 | extern int nvm_set_bb_tbl(struct nvm_dev *, struct ppa_addr *, int, int); | ||
477 | extern int nvm_set_tgt_bb_tbl(struct nvm_tgt_dev *, struct ppa_addr *, | 476 | extern int nvm_set_tgt_bb_tbl(struct nvm_tgt_dev *, struct ppa_addr *, |
478 | int, int); | 477 | int, int); |
479 | extern int nvm_max_phys_sects(struct nvm_tgt_dev *); | 478 | extern 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); | |||
490 | extern void nvm_put_area(struct nvm_tgt_dev *, sector_t); | 489 | extern void nvm_put_area(struct nvm_tgt_dev *, sector_t); |
491 | extern void nvm_end_io(struct nvm_rq *, int); | 490 | extern void nvm_end_io(struct nvm_rq *, int); |
492 | extern int nvm_bb_tbl_fold(struct nvm_dev *, u8 *, int); | 491 | extern int nvm_bb_tbl_fold(struct nvm_dev *, u8 *, int); |
493 | extern int nvm_get_bb_tbl(struct nvm_dev *, struct ppa_addr, u8 *); | ||
494 | extern int nvm_get_tgt_bb_tbl(struct nvm_tgt_dev *, struct ppa_addr, u8 *); | 492 | extern int nvm_get_tgt_bb_tbl(struct nvm_tgt_dev *, struct ppa_addr, u8 *); |
495 | 493 | ||
496 | extern int nvm_dev_factory(struct nvm_dev *, int flags); | 494 | extern int nvm_dev_factory(struct nvm_dev *, int flags); |