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 /drivers/lightnvm/core.c | |
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>
Diffstat (limited to 'drivers/lightnvm/core.c')
-rw-r--r-- | drivers/lightnvm/core.c | 40 |
1 files changed, 4 insertions, 36 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 | ||