Re: [PATCH] media: atmel: atmel-isc: fix i386 build error

From: Hans Verkuil
Date: Sat Jun 22 2019 - 03:44:25 EST


On 6/19/19 9:24 AM, Eugen.Hristev@xxxxxxxxxxxxx wrote:
> From: Eugen Hristev <eugen.hristev@xxxxxxxxxxxxx>
>
> ld: drivers/media/platform/atmel/atmel-isc-base.o:(.bss+0x0): multiple definition of `debug'; arch/x86/entry/entry_32.o:(.entry.text+0x21ac): first defined here
>
> Changed module parameters to static.
>
> Reported-by: kbuild test robot <lkp@xxxxxxxxx>
> Signed-off-by: Eugen Hristev <eugen.hristev@xxxxxxxxxxxxx>
> ---
>
> Hello Hans,
>
> Sorry for this, it looks like i386 has a stray weird 'debug' symbol which
> causes an error.
> I changed the module parameters of the atmel-isc to 'static' but now they
> cannot be accessed in the other module files.
> Will have to create a get function to be used in the other files if needed
> later. Any other way to make a symbol static to current module and not
> current file ? It would be useful for other config variables as well.
> I was not sure if you want to squash this over the faulty patch or add it
> as a separate patch.
> If you want me to squash it let me know and I will come up with a squashed
> new version.
>
> Thanks,
> Eugen
>
> drivers/media/platform/atmel/atmel-isc-base.c | 4 ++--
> drivers/media/platform/atmel/atmel-isc.h | 4 ----
> 2 files changed, 2 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/media/platform/atmel/atmel-isc-base.c b/drivers/media/platform/atmel/atmel-isc-base.c
> index eb1f5d4..c1c776b 100644
> --- a/drivers/media/platform/atmel/atmel-isc-base.c
> +++ b/drivers/media/platform/atmel/atmel-isc-base.c
> @@ -35,11 +35,11 @@
> #include "atmel-isc-regs.h"
> #include "atmel-isc.h"
>
> -unsigned int debug;
> +static unsigned int debug;
> module_param(debug, int, 0644);

You can also use module_param_named, or use dev_dbg as Sakari suggested.

In any case, I've added this patch to my pull request since it's urgent to
fix this issue.

Regards,

Hans

> MODULE_PARM_DESC(debug, "debug level (0-2)");
>
> -unsigned int sensor_preferred = 1;
> +static unsigned int sensor_preferred = 1;
> module_param(sensor_preferred, uint, 0644);
> MODULE_PARM_DESC(sensor_preferred,
> "Sensor is preferred to output the specified format (1-on 0-off), default 1");
> diff --git a/drivers/media/platform/atmel/atmel-isc.h b/drivers/media/platform/atmel/atmel-isc.h
> index f5f5932..bfaed2f 100644
> --- a/drivers/media/platform/atmel/atmel-isc.h
> +++ b/drivers/media/platform/atmel/atmel-isc.h
> @@ -230,10 +230,6 @@ struct isc_device {
>
> #define ATMEL_ISC_NAME "atmel-isc"
>
> -/* module parameters */
> -extern unsigned int debug;
> -extern unsigned int sensor_preferred;
> -
> extern struct isc_format formats_list[];
> extern const struct isc_format controller_formats[];
> extern const u32 isc_gamma_table[GAMMA_MAX + 1][GAMMA_ENTRIES];
>