lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Mon, 2 Oct 2017 13:42:33 +0200
From:   Javier González <jg@...htnvm.io>
To:     Rakesh Pandit <rakesh@...era.com>
Cc:     Matias Bjørling <mb@...htnvm.io>,
        linux-block@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 4/6] lightnvm: remove stable extern and unused exported
 symbols

> On 1 Oct 2017, at 15.25, Rakesh Pandit <rakesh@...era.com> wrote:
> 
> Not all exported symbols are being used outside core and there were
> some stable entries in lightnvm.h
> 
> Signed-off-by: Rakesh Pandit <rakesh@...era.com>
> ---
> drivers/lightnvm/core.c  | 129 +++++++++++++++++++++++------------------------
> include/linux/lightnvm.h |   7 ---
> 2 files changed, 64 insertions(+), 72 deletions(-)
> 
> diff --git a/drivers/lightnvm/core.c b/drivers/lightnvm/core.c
> index 9cd1c4b..2817b37 100644
> --- a/drivers/lightnvm/core.c
> +++ b/drivers/lightnvm/core.c
> @@ -226,6 +226,24 @@ static const struct block_device_operations nvm_fops = {
> 	.owner		= THIS_MODULE,
> };
> 
> +struct nvm_tgt_type *nvm_find_target_type(const char *name, int lock)
> +{
> +	struct nvm_tgt_type *tmp, *tt = NULL;
> +
> +	if (lock)
> +		down_write(&nvm_tgtt_lock);
> +
> +	list_for_each_entry(tmp, &nvm_tgt_types, list)
> +		if (!strcmp(name, tmp->name)) {
> +			tt = tmp;
> +			break;
> +		}
> +
> +	if (lock)
> +		up_write(&nvm_tgtt_lock);
> +	return tt;
> +}
> +
> static int nvm_create_tgt(struct nvm_dev *dev, struct nvm_ioctl_create *create)
> {
> 	struct nvm_ioctl_create_simple *s = &create->conf.s;
> @@ -532,25 +550,6 @@ void nvm_part_to_tgt(struct nvm_dev *dev, sector_t *entries,
> }
> EXPORT_SYMBOL(nvm_part_to_tgt);
> 
> -struct nvm_tgt_type *nvm_find_target_type(const char *name, int lock)
> -{
> -	struct nvm_tgt_type *tmp, *tt = NULL;
> -
> -	if (lock)
> -		down_write(&nvm_tgtt_lock);
> -
> -	list_for_each_entry(tmp, &nvm_tgt_types, list)
> -		if (!strcmp(name, tmp->name)) {
> -			tt = tmp;
> -			break;
> -		}
> -
> -	if (lock)
> -		up_write(&nvm_tgtt_lock);
> -	return tt;
> -}
> -EXPORT_SYMBOL(nvm_find_target_type);
> -
> int nvm_register_tgt_type(struct nvm_tgt_type *tt)
> {
> 	int ret = 0;
> @@ -602,6 +601,52 @@ static struct nvm_dev *nvm_find_nvm_dev(const char *name)
> 	return NULL;
> }
> 
> +static int nvm_set_rqd_ppalist(struct nvm_tgt_dev *tgt_dev, struct nvm_rq *rqd,
> +			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 (geo->plane_mode == NVM_PLANE_SINGLE && nr_ppas == 1) {
> +		rqd->nr_ppas = nr_ppas;
> +		rqd->ppa_addr = ppas[0];
> +
> +		return 0;
> +	}
> +
> +	rqd->nr_ppas = nr_ppas;
> +	rqd->ppa_list = nvm_dev_dma_alloc(dev, GFP_KERNEL, &rqd->dma_ppa_list);
> +	if (!rqd->ppa_list) {
> +		pr_err("nvm: failed to allocate dma memory\n");
> +		return -ENOMEM;
> +	}
> +
> +	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;
> +		}
> +	}
> +
> +	return 0;
> +}
> +
> +static void nvm_free_rqd_ppalist(struct nvm_tgt_dev *tgt_dev,
> +			struct nvm_rq *rqd)
> +{
> +	if (!rqd->ppa_list)
> +		return;
> +
> +	nvm_dev_dma_free(tgt_dev->parent, rqd->ppa_list, rqd->dma_ppa_list);
> +}
> +
> +
> int nvm_set_tgt_bb_tbl(struct nvm_tgt_dev *tgt_dev, struct ppa_addr *ppas,
> 		       int nr_ppas, int type)
> {
> @@ -775,52 +820,6 @@ 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)
> -{
> -	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 (geo->plane_mode == NVM_PLANE_SINGLE && nr_ppas == 1) {
> -		rqd->nr_ppas = nr_ppas;
> -		rqd->ppa_addr = ppas[0];
> -
> -		return 0;
> -	}
> -
> -	rqd->nr_ppas = nr_ppas;
> -	rqd->ppa_list = nvm_dev_dma_alloc(dev, GFP_KERNEL, &rqd->dma_ppa_list);
> -	if (!rqd->ppa_list) {
> -		pr_err("nvm: failed to allocate dma memory\n");
> -		return -ENOMEM;
> -	}
> -
> -	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;
> -		}
> -	}
> -
> -	return 0;
> -}
> -EXPORT_SYMBOL(nvm_set_rqd_ppalist);
> -
> -void nvm_free_rqd_ppalist(struct nvm_tgt_dev *tgt_dev, struct nvm_rq *rqd)
> -{
> -	if (!rqd->ppa_list)
> -		return;
> -
> -	nvm_dev_dma_free(tgt_dev->parent, rqd->ppa_list, rqd->dma_ppa_list);
> -}
> -EXPORT_SYMBOL(nvm_free_rqd_ppalist);
> -
> void nvm_end_io(struct nvm_rq *rqd)
> {
> 	struct nvm_tgt_dev *tgt_dev = rqd->dev;
> diff --git a/include/linux/lightnvm.h b/include/linux/lightnvm.h
> index c8c014b..dfd4829 100644
> --- a/include/linux/lightnvm.h
> +++ b/include/linux/lightnvm.h
> @@ -463,8 +463,6 @@ struct nvm_tgt_type {
> 	struct list_head list;
> };
> 
> -extern struct nvm_tgt_type *nvm_find_target_type(const char *, int);
> -
> extern int nvm_register_tgt_type(struct nvm_tgt_type *);
> extern void nvm_unregister_tgt_type(struct nvm_tgt_type *);
> 
> @@ -480,9 +478,6 @@ extern int nvm_set_tgt_bb_tbl(struct nvm_tgt_dev *, struct ppa_addr *,
> 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);
> -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 *);
> extern int nvm_get_area(struct nvm_tgt_dev *, sector_t *, sector_t);
> @@ -491,8 +486,6 @@ extern void nvm_end_io(struct nvm_rq *);
> extern int nvm_bb_tbl_fold(struct nvm_dev *, u8 *, int);
> extern int nvm_get_tgt_bb_tbl(struct nvm_tgt_dev *, struct ppa_addr, u8 *);
> 
> -extern int nvm_dev_factory(struct nvm_dev *, int flags);
> -
> extern void nvm_part_to_tgt(struct nvm_dev *, sector_t *, int);
> 
> #else /* CONFIG_NVM */
> --
> 2.7.4

LGTM (also stable > stale)

Reviewed-by: Javier González <javier@...xlabs.com>


Download attachment "signature.asc" of type "application/pgp-signature" (834 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ