Re: [PATCH -next] nubus: Rename pde_data var to fix conflict with external function

From: Stephen Rothwell
Date: Thu Nov 25 2021 - 17:44:32 EST


Hi all,

On Thu, 25 Nov 2021 09:38:08 +0100 Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote:
>
> In file included from drivers/nubus/proc.c:24:
> drivers/nubus/proc.c: In function ‘nubus_proc_rsrc_show’:
> ./include/linux/proc_fs.h:123:21: error: called object ‘pde_data’ is not a function or function pointer
> 123 | #define PDE_DATA(i) pde_data(i)
> | ^~~~~~~~
> drivers/nubus/proc.c:112:13: note: in expansion of macro ‘PDE_DATA’
> 112 | pde_data = PDE_DATA(inode);
> | ^~~~~~~~
> drivers/nubus/proc.c:110:30: note: declared here
> 110 | struct nubus_proc_pde_data *pde_data;
> | ^~~~~~~~
>
> Fix this by renaming the local variable to "pde". Do this everywhere
> for consistency.
>
> Reported-by: noreply@xxxxxxxxxxxxxx
> Fixes: e7e935db128e724f ("fs: proc: store PDE()->data into inode->i_private")
> Signed-off-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
> ---
> Not fixed by commit 5de6353a96bec91d ("proc: remove PDE_DATA()
> completely"), which just removes the macro indirection.
> ---
> drivers/nubus/proc.c | 36 ++++++++++++++++++------------------
> 1 file changed, 18 insertions(+), 18 deletions(-)
>
> diff --git a/drivers/nubus/proc.c b/drivers/nubus/proc.c
> index 22fb11da519bfc43..aff1c5d257cd8183 100644
> --- a/drivers/nubus/proc.c
> +++ b/drivers/nubus/proc.c
> @@ -93,30 +93,30 @@ struct nubus_proc_pde_data {
> static struct nubus_proc_pde_data *
> nubus_proc_alloc_pde_data(unsigned char *ptr, unsigned int size)
> {
> - struct nubus_proc_pde_data *pde_data;
> + struct nubus_proc_pde_data *pde;
>
> - pde_data = kmalloc(sizeof(*pde_data), GFP_KERNEL);
> - if (!pde_data)
> + pde = kmalloc(sizeof(*pde), GFP_KERNEL);
> + if (!pde)
> return NULL;
>
> - pde_data->res_ptr = ptr;
> - pde_data->res_size = size;
> - return pde_data;
> + pde->res_ptr = ptr;
> + pde->res_size = size;
> + return pde;
> }
>
> static int nubus_proc_rsrc_show(struct seq_file *m, void *v)
> {
> struct inode *inode = m->private;
> - struct nubus_proc_pde_data *pde_data;
> + struct nubus_proc_pde_data *pde;
>
> - pde_data = pde_data(inode);
> - if (!pde_data)
> + pde = pde_data(inode);
> + if (!pde)
> return 0;
>
> - if (pde_data->res_size > m->size)
> + if (pde->res_size > m->size)
> return -EFBIG;
>
> - if (pde_data->res_size) {
> + if (pde->res_size) {
> int lanes = (int)proc_get_parent_data(inode);
> struct nubus_dirent ent;
>
> @@ -124,11 +124,11 @@ static int nubus_proc_rsrc_show(struct seq_file *m, void *v)
> return 0;
>
> ent.mask = lanes;
> - ent.base = pde_data->res_ptr;
> + ent.base = pde->res_ptr;
> ent.data = 0;
> - nubus_seq_write_rsrc_mem(m, &ent, pde_data->res_size);
> + nubus_seq_write_rsrc_mem(m, &ent, pde->res_size);
> } else {
> - unsigned int data = (unsigned int)pde_data->res_ptr;
> + unsigned int data = (unsigned int)pde->res_ptr;
>
> seq_putc(m, data >> 16);
> seq_putc(m, data >> 8);
> @@ -142,18 +142,18 @@ void nubus_proc_add_rsrc_mem(struct proc_dir_entry *procdir,
> unsigned int size)
> {
> char name[9];
> - struct nubus_proc_pde_data *pde_data;
> + struct nubus_proc_pde_data *pde;
>
> if (!procdir)
> return;
>
> snprintf(name, sizeof(name), "%x", ent->type);
> if (size)
> - pde_data = nubus_proc_alloc_pde_data(nubus_dirptr(ent), size);
> + pde = nubus_proc_alloc_pde_data(nubus_dirptr(ent), size);
> else
> - pde_data = NULL;
> + pde = NULL;
> proc_create_single_data(name, S_IFREG | 0444, procdir,
> - nubus_proc_rsrc_show, pde_data);
> + nubus_proc_rsrc_show, pde);
> }
>
> void nubus_proc_add_rsrc(struct proc_dir_entry *procdir,

I will apply that to linux-next today.

--
Cheers,
Stephen Rothwell

Attachment: pgpHuT_kKLO6P.pgp
Description: OpenPGP digital signature