2019-06-19 07:27:42

by Eugen Hristev

[permalink] [raw]
Subject: [PATCH] media: atmel: atmel-isc: fix i386 build error

From: Eugen Hristev <[email protected]>

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 <[email protected]>
Signed-off-by: Eugen Hristev <[email protected]>
---

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);
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];
--
2.7.4


2019-06-19 08:04:44

by Sakari Ailus

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

Hi Eugen,

On Wed, Jun 19, 2019 at 07:24:41AM +0000, [email protected] wrote:
> From: Eugen Hristev <[email protected]>
>
> 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 <[email protected]>
> Signed-off-by: Eugen Hristev <[email protected]>
> ---
>
> 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.

Please consider using dev_dbg() instead of a driver specific parameter for
debug.

For the patch:

Acked-by: Sakari Ailus <[email protected]>

--
Sakari Ailus

2019-06-22 07:44:44

by Hans Verkuil

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

On 6/19/19 9:24 AM, [email protected] wrote:
> From: Eugen Hristev <[email protected]>
>
> 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 <[email protected]>
> Signed-off-by: Eugen Hristev <[email protected]>
> ---
>
> 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];
>