* [PATCH 3/6] lightnvm: remove unused argument from nvm_set_tgt_bb_tbl
@ 2017-10-01 13:24 Rakesh Pandit
2017-10-02 11:40 ` Javier González
0 siblings, 1 reply; 2+ messages in thread
From: Rakesh Pandit @ 2017-10-01 13:24 UTC (permalink / raw)
To: Matias Bjørling, linux-block, linux-kernel; +Cc: Javier González
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>
---
drivers/lightnvm/core.c | 29 ++++++++++++-----------------
include/linux/lightnvm.h | 2 +-
2 files changed, 13 insertions(+), 18 deletions(-)
diff --git a/drivers/lightnvm/core.c b/drivers/lightnvm/core.c
index ddae430..9cd1c4b 100644
--- a/drivers/lightnvm/core.c
+++ b/drivers/lightnvm/core.c
@@ -616,7 +616,7 @@ int nvm_set_tgt_bb_tbl(struct nvm_tgt_dev *tgt_dev, struct ppa_addr *ppas,
memset(&rqd, 0, sizeof(struct nvm_rq));
- nvm_set_rqd_ppalist(tgt_dev, &rqd, ppas, nr_ppas, 1);
+ nvm_set_rqd_ppalist(tgt_dev, &rqd, ppas, nr_ppas);
nvm_rq_tgt_to_dev(tgt_dev, &rqd);
ret = dev->ops->set_bb_tbl(dev, &rqd.ppa_addr, rqd.nr_ppas, type);
@@ -680,7 +680,7 @@ int nvm_erase_sync(struct nvm_tgt_dev *tgt_dev, struct ppa_addr *ppas,
rqd.private = &wait;
rqd.flags = geo->plane_mode >> 1;
- ret = nvm_set_rqd_ppalist(tgt_dev, &rqd, ppas, nr_ppas, 1);
+ ret = nvm_set_rqd_ppalist(tgt_dev, &rqd, ppas, nr_ppas);
if (ret)
return ret;
@@ -776,14 +776,14 @@ void nvm_put_area(struct nvm_tgt_dev *tgt_dev, sector_t begin)
EXPORT_SYMBOL(nvm_put_area);
int nvm_set_rqd_ppalist(struct nvm_tgt_dev *tgt_dev, struct nvm_rq *rqd,
- const struct ppa_addr *ppas, int nr_ppas, int vblk)
+ const struct ppa_addr *ppas, int nr_ppas)
{
struct nvm_dev *dev = tgt_dev->parent;
struct nvm_geo *geo = &tgt_dev->geo;
int i, plane_cnt, pl_idx;
struct ppa_addr ppa;
- if ((!vblk || geo->plane_mode == NVM_PLANE_SINGLE) && nr_ppas == 1) {
+ if (geo->plane_mode == NVM_PLANE_SINGLE && nr_ppas == 1) {
rqd->nr_ppas = nr_ppas;
rqd->ppa_addr = ppas[0];
@@ -797,19 +797,14 @@ int nvm_set_rqd_ppalist(struct nvm_tgt_dev *tgt_dev, struct nvm_rq *rqd,
return -ENOMEM;
}
- if (!vblk) {
- for (i = 0; i < nr_ppas; i++)
- rqd->ppa_list[i] = ppas[i];
- } else {
- plane_cnt = geo->plane_mode;
- rqd->nr_ppas *= plane_cnt;
-
- for (i = 0; i < nr_ppas; i++) {
- for (pl_idx = 0; pl_idx < plane_cnt; pl_idx++) {
- ppa = ppas[i];
- ppa.g.pl = pl_idx;
- rqd->ppa_list[(pl_idx * nr_ppas) + i] = ppa;
- }
+ plane_cnt = geo->plane_mode;
+ rqd->nr_ppas *= plane_cnt;
+
+ for (i = 0; i < nr_ppas; i++) {
+ for (pl_idx = 0; pl_idx < plane_cnt; pl_idx++) {
+ ppa = ppas[i];
+ ppa.g.pl = pl_idx;
+ rqd->ppa_list[(pl_idx * nr_ppas) + i] = ppa;
}
}
diff --git a/include/linux/lightnvm.h b/include/linux/lightnvm.h
index 81b71c6d..c8c014b 100644
--- a/include/linux/lightnvm.h
+++ b/include/linux/lightnvm.h
@@ -481,7 +481,7 @@ extern int nvm_max_phys_sects(struct nvm_tgt_dev *);
extern int nvm_submit_io(struct nvm_tgt_dev *, struct nvm_rq *);
extern int nvm_erase_sync(struct nvm_tgt_dev *, struct ppa_addr *, int);
extern int nvm_set_rqd_ppalist(struct nvm_tgt_dev *, struct nvm_rq *,
- const struct ppa_addr *, int, int);
+ const struct ppa_addr *, int);
extern void nvm_free_rqd_ppalist(struct nvm_tgt_dev *, struct nvm_rq *);
extern int nvm_get_l2p_tbl(struct nvm_tgt_dev *, u64, u32, nvm_l2p_update_fn *,
void *);
--
2.7.4
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [PATCH 3/6] lightnvm: remove unused argument from nvm_set_tgt_bb_tbl
2017-10-01 13:24 [PATCH 3/6] lightnvm: remove unused argument from nvm_set_tgt_bb_tbl Rakesh Pandit
@ 2017-10-02 11:40 ` Javier González
0 siblings, 0 replies; 2+ messages in thread
From: Javier González @ 2017-10-02 11:40 UTC (permalink / raw)
To: Rakesh Pandit; +Cc: Matias Bjørling, linux-block, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 3866 bytes --]
> On 1 Oct 2017, at 15.24, Rakesh Pandit <rakesh@tuxera.com> wrote:
>
> 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>
> ---
> drivers/lightnvm/core.c | 29 ++++++++++++-----------------
> include/linux/lightnvm.h | 2 +-
> 2 files changed, 13 insertions(+), 18 deletions(-)
>
> diff --git a/drivers/lightnvm/core.c b/drivers/lightnvm/core.c
> index ddae430..9cd1c4b 100644
> --- a/drivers/lightnvm/core.c
> +++ b/drivers/lightnvm/core.c
> @@ -616,7 +616,7 @@ int nvm_set_tgt_bb_tbl(struct nvm_tgt_dev *tgt_dev, struct ppa_addr *ppas,
>
> memset(&rqd, 0, sizeof(struct nvm_rq));
>
> - nvm_set_rqd_ppalist(tgt_dev, &rqd, ppas, nr_ppas, 1);
> + nvm_set_rqd_ppalist(tgt_dev, &rqd, ppas, nr_ppas);
> nvm_rq_tgt_to_dev(tgt_dev, &rqd);
>
> ret = dev->ops->set_bb_tbl(dev, &rqd.ppa_addr, rqd.nr_ppas, type);
> @@ -680,7 +680,7 @@ int nvm_erase_sync(struct nvm_tgt_dev *tgt_dev, struct ppa_addr *ppas,
> rqd.private = &wait;
> rqd.flags = geo->plane_mode >> 1;
>
> - ret = nvm_set_rqd_ppalist(tgt_dev, &rqd, ppas, nr_ppas, 1);
> + ret = nvm_set_rqd_ppalist(tgt_dev, &rqd, ppas, nr_ppas);
> if (ret)
> return ret;
>
> @@ -776,14 +776,14 @@ void nvm_put_area(struct nvm_tgt_dev *tgt_dev, sector_t begin)
> EXPORT_SYMBOL(nvm_put_area);
>
> int nvm_set_rqd_ppalist(struct nvm_tgt_dev *tgt_dev, struct nvm_rq *rqd,
> - const struct ppa_addr *ppas, int nr_ppas, int vblk)
> + const struct ppa_addr *ppas, int nr_ppas)
> {
> struct nvm_dev *dev = tgt_dev->parent;
> struct nvm_geo *geo = &tgt_dev->geo;
> int i, plane_cnt, pl_idx;
> struct ppa_addr ppa;
>
> - if ((!vblk || geo->plane_mode == NVM_PLANE_SINGLE) && nr_ppas == 1) {
> + if (geo->plane_mode == NVM_PLANE_SINGLE && nr_ppas == 1) {
> rqd->nr_ppas = nr_ppas;
> rqd->ppa_addr = ppas[0];
>
> @@ -797,19 +797,14 @@ int nvm_set_rqd_ppalist(struct nvm_tgt_dev *tgt_dev, struct nvm_rq *rqd,
> return -ENOMEM;
> }
>
> - if (!vblk) {
> - for (i = 0; i < nr_ppas; i++)
> - rqd->ppa_list[i] = ppas[i];
> - } else {
> - plane_cnt = geo->plane_mode;
> - rqd->nr_ppas *= plane_cnt;
> -
> - for (i = 0; i < nr_ppas; i++) {
> - for (pl_idx = 0; pl_idx < plane_cnt; pl_idx++) {
> - ppa = ppas[i];
> - ppa.g.pl = pl_idx;
> - rqd->ppa_list[(pl_idx * nr_ppas) + i] = ppa;
> - }
> + plane_cnt = geo->plane_mode;
> + rqd->nr_ppas *= plane_cnt;
> +
> + for (i = 0; i < nr_ppas; i++) {
> + for (pl_idx = 0; pl_idx < plane_cnt; pl_idx++) {
> + ppa = ppas[i];
> + ppa.g.pl = pl_idx;
> + rqd->ppa_list[(pl_idx * nr_ppas) + i] = ppa;
> }
> }
>
> diff --git a/include/linux/lightnvm.h b/include/linux/lightnvm.h
> index 81b71c6d..c8c014b 100644
> --- a/include/linux/lightnvm.h
> +++ b/include/linux/lightnvm.h
> @@ -481,7 +481,7 @@ extern int nvm_max_phys_sects(struct nvm_tgt_dev *);
> extern int nvm_submit_io(struct nvm_tgt_dev *, struct nvm_rq *);
> extern int nvm_erase_sync(struct nvm_tgt_dev *, struct ppa_addr *, int);
> extern int nvm_set_rqd_ppalist(struct nvm_tgt_dev *, struct nvm_rq *,
> - const struct ppa_addr *, int, int);
> + const struct ppa_addr *, int);
> extern void nvm_free_rqd_ppalist(struct nvm_tgt_dev *, struct nvm_rq *);
> extern int nvm_get_l2p_tbl(struct nvm_tgt_dev *, u64, u32, nvm_l2p_update_fn *,
> void *);
> --
> 2.7.4
This was used when using MLC media as SLC back in the days, when we had
the host media manager (spec 1.2). We probably want to have a path to
use NAND as SLC, but I agree that it should be separated in order to
reduce the number of checks (considering that this is for a very
specific purpose).
Reviewed-by: Javier González <javier@cnexlabs.com>
[-- Attachment #2: Message signed with OpenPGP --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2017-10-02 11:40 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-10-01 13:24 [PATCH 3/6] lightnvm: remove unused argument from nvm_set_tgt_bb_tbl Rakesh Pandit
2017-10-02 11:40 ` Javier González
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).