Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 10995c3d authored by Matias Bjørling's avatar Matias Bjørling Committed by Jens Axboe
Browse files

lightnvm: collapse nvm_erase_ppa and nvm_erase_blk



After gennvm and core have been merged, there are no more callers to
nvm_erase_ppa. Therefore collapse the device specific and target
specific erase functions.

Signed-off-by: default avatarMatias Bjørling <matias@cnexlabs.com>
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent ade69e24
Loading
Loading
Loading
Loading
+26 −31
Original line number Original line Diff line number Diff line
@@ -683,12 +683,34 @@ int nvm_submit_io(struct nvm_tgt_dev *tgt_dev, struct nvm_rq *rqd)
}
}
EXPORT_SYMBOL(nvm_submit_io);
EXPORT_SYMBOL(nvm_submit_io);


int nvm_erase_blk(struct nvm_tgt_dev *tgt_dev, struct ppa_addr *p, int flags)
int nvm_erase_blk(struct nvm_tgt_dev *tgt_dev, struct ppa_addr *ppas, int flags)
{
{
	/* Convert address space */
	struct nvm_dev *dev = tgt_dev->parent;
	nvm_map_to_dev(tgt_dev, p);
	struct nvm_rq rqd;
	int ret;

	if (!dev->ops->erase_block)
		return 0;

	ret = nvm_map_to_dev(tgt_dev, ppas);
	if (ret)
		return ret;

	memset(&rqd, 0, sizeof(struct nvm_rq));


	return nvm_erase_ppa(tgt_dev->parent, p, 1, flags);
	ret = nvm_set_rqd_ppalist(dev, &rqd, ppas, 1, 1);
	if (ret)
		return ret;

	nvm_generic_to_addr_mode(dev, &rqd);

	rqd.flags = flags;

	ret = dev->ops->erase_block(dev, &rqd);

	nvm_free_rqd_ppalist(dev, &rqd);

	return ret;
}
}
EXPORT_SYMBOL(nvm_erase_blk);
EXPORT_SYMBOL(nvm_erase_blk);


@@ -847,33 +869,6 @@ void nvm_free_rqd_ppalist(struct nvm_dev *dev, struct nvm_rq *rqd)
}
}
EXPORT_SYMBOL(nvm_free_rqd_ppalist);
EXPORT_SYMBOL(nvm_free_rqd_ppalist);


int nvm_erase_ppa(struct nvm_dev *dev, struct ppa_addr *ppas, int nr_ppas,
								int flags)
{
	struct nvm_rq rqd;
	int ret;

	if (!dev->ops->erase_block)
		return 0;

	memset(&rqd, 0, sizeof(struct nvm_rq));

	ret = nvm_set_rqd_ppalist(dev, &rqd, ppas, nr_ppas, 1);
	if (ret)
		return ret;

	nvm_generic_to_addr_mode(dev, &rqd);

	rqd.flags = flags;

	ret = dev->ops->erase_block(dev, &rqd);

	nvm_free_rqd_ppalist(dev, &rqd);

	return ret;
}
EXPORT_SYMBOL(nvm_erase_ppa);

void nvm_end_io(struct nvm_rq *rqd, int error)
void nvm_end_io(struct nvm_rq *rqd, int error)
{
{
	struct nvm_tgt_dev *tgt_dev = rqd->dev;
	struct nvm_tgt_dev *tgt_dev = rqd->dev;
+0 −1
Original line number Original line Diff line number Diff line
@@ -483,7 +483,6 @@ extern void nvm_addr_to_generic_mode(struct nvm_dev *, struct nvm_rq *);
extern int nvm_set_rqd_ppalist(struct nvm_dev *, struct nvm_rq *,
extern int nvm_set_rqd_ppalist(struct nvm_dev *, struct nvm_rq *,
					const struct ppa_addr *, int, int);
					const struct ppa_addr *, int, int);
extern void nvm_free_rqd_ppalist(struct nvm_dev *, struct nvm_rq *);
extern void nvm_free_rqd_ppalist(struct nvm_dev *, struct nvm_rq *);
extern int nvm_erase_ppa(struct nvm_dev *, struct ppa_addr *, int, int);
extern int nvm_erase_blk(struct nvm_tgt_dev *, struct ppa_addr *, int);
extern int nvm_erase_blk(struct nvm_tgt_dev *, struct ppa_addr *, int);
extern int nvm_get_l2p_tbl(struct nvm_tgt_dev *, u64, u32, nvm_l2p_update_fn *,
extern int nvm_get_l2p_tbl(struct nvm_tgt_dev *, u64, u32, nvm_l2p_update_fn *,
			   void *);
			   void *);