• [PATCH 3/6] lightnvm: remove unused argument from nvm_set_tgt_bb_tb

    From =?utf-8?Q?Javier_Gonz=C3=A1lez?=@21:1/5 to All on Mon Oct 2 13:50:02 2017
    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>


    -----BEGIN PGP SIGNATURE-----

    iQIzBAEBCgAdFiEEm1mT7zen+vs9+T8kYx8FO3WZGMoFAlnSJbQACgkQYx8FO3WZ GMpV9BAAg9IjgV0HC2W+J4h5osF9PZkLZaCPtqo8fWnPLqXwrB4T5tV9FutAAl/1 CewK1RlXfnTpaVUNZg+YJS4at3V5A+wZbg4cXV1ujFAIViNbHyNhDcI9zdxhIFCs f5xWjK0msmuIWdVaZG9dahjZFrBfJYmCVYIur49nzv7Jzt57v6rq5iU5bhlOHSaC FaFN1yFAoQap/IcvZm8gzvMAwUwvd6wntbwU89B5VCsWfoLFb4Yc9weS9nUmsqMt 1dNPqL1ltBl7mh1qS48sOWR+TSSIpRdegIZG+fjsICsu18dtn/9NT5pEs7UieGq8 1rgUgoKGqcpv/UehXyMkE+CGRxskwoLL33uvsIhdq1AAgpFTb2bq32sGxNbIXmUN ghVvyZjp18QXjm48DobEUR4cvLwWP7Y2mecajCudva4wCseoeNnyvUsGBNxSPuE4 j3OES/1Pmjfe1/L1DxSFqSrjYUFN3LSw7tZ/40kr+43aMXqkfNHS7+gsL8eHTEsU TrFvakCKv+UwfH6qkYhLlcjsFFerPmwxTe4sbHo6e6L++u6OiVvBfDt8nQDFNfdg d/nkg7Lc2Tuu0n6LGCBrNrmJbQiunWOP4zEBAj0AI9uVIRByzeqcN5k3y8g6O+n2 kic+SbLLtajLp89qMNE+HdnsgOgDQgPAPHlfYd0GhCrY5qTtfcU=
    =Q8Mh
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)