diff mbox series

platform/x86: dell-wmi-sysman/think-lmi: Make fw_attr_class global static

Message ID 20210609145952.113393-1-hdegoede@redhat.com (mailing list archive)
State Accepted, archived
Headers show
Series platform/x86: dell-wmi-sysman/think-lmi: Make fw_attr_class global static | expand

Commit Message

Hans de Goede June 9, 2021, 2:59 p.m. UTC
The dell-wmi-sysman and think-lmi kernel modules both have a global
struct class *fw_attr_class variable, leading to the following compile
errors when both are builtin:

ld: drivers/platform/x86/think-lmi.o:(.bss+0x0): multiple definition of `fw_attr_class'; drivers/platform/x86/dell/dell-wmi-sysman/sysman.o:(.bss+0x0): first defined here

In both cases the variable is only used in the file where it is declared.
Make both declarations static to avoid the linker error.

Cc: Mark Pearson <markpearson@lenovo.com>
Cc: Dell.Client.Kernel@dell.com
Reported-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/platform/x86/dell/dell-wmi-sysman/sysman.c | 2 +-
 drivers/platform/x86/think-lmi.c                   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

Comments

Mark Pearson June 9, 2021, 3:25 p.m. UTC | #1
Thanks Hans - I should have caught that.

Looks good

On 2021-06-09 10:59 a.m., Hans de Goede wrote:
> The dell-wmi-sysman and think-lmi kernel modules both have a global
> struct class *fw_attr_class variable, leading to the following compile
> errors when both are builtin:
> 
> ld: drivers/platform/x86/think-lmi.o:(.bss+0x0): multiple definition of `fw_attr_class'; drivers/platform/x86/dell/dell-wmi-sysman/sysman.o:(.bss+0x0): first defined here
> 
> In both cases the variable is only used in the file where it is declared.
> Make both declarations static to avoid the linker error.
> 
> Cc: Mark Pearson <markpearson@lenovo.com>
> Cc: Dell.Client.Kernel@dell.com
> Reported-by: Nathan Chancellor <nathan@kernel.org>
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> ---
>  drivers/platform/x86/dell/dell-wmi-sysman/sysman.c | 2 +-
>  drivers/platform/x86/think-lmi.c                   | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/platform/x86/dell/dell-wmi-sysman/sysman.c b/drivers/platform/x86/dell/dell-wmi-sysman/sysman.c
> index 1378c1878658..636bdfa83284 100644
> --- a/drivers/platform/x86/dell/dell-wmi-sysman/sysman.c
> +++ b/drivers/platform/x86/dell/dell-wmi-sysman/sysman.c
> @@ -25,7 +25,7 @@ struct wmi_sysman_priv wmi_priv = {
>  /* reset bios to defaults */
>  static const char * const reset_types[] = {"builtinsafe", "lastknowngood", "factory", "custom"};
>  static int reset_option = -1;
> -struct class *fw_attr_class;
> +static struct class *fw_attr_class;
>  
>  
>  /**
> diff --git a/drivers/platform/x86/think-lmi.c b/drivers/platform/x86/think-lmi.c
> index 782d8e3fe7a1..c6413b906e4a 100644
> --- a/drivers/platform/x86/think-lmi.c
> +++ b/drivers/platform/x86/think-lmi.c
> @@ -134,7 +134,7 @@ static const char * const encoding_options[] = {
>  	[TLMI_ENCODING_SCANCODE] = "scancode",
>  };
>  static struct think_lmi tlmi_priv;
> -struct class *fw_attr_class;
> +static struct class *fw_attr_class;
>  
>  /* ------ Utility functions ------------*/
>  /* Convert BIOS WMI error string to suitable error code */
>
Nathan Chancellor June 9, 2021, 3:31 p.m. UTC | #2
On 6/9/2021 7:59 AM, Hans de Goede wrote:
> The dell-wmi-sysman and think-lmi kernel modules both have a global
> struct class *fw_attr_class variable, leading to the following compile
> errors when both are builtin:
> 
> ld: drivers/platform/x86/think-lmi.o:(.bss+0x0): multiple definition of `fw_attr_class'; drivers/platform/x86/dell/dell-wmi-sysman/sysman.o:(.bss+0x0): first defined here
> 
> In both cases the variable is only used in the file where it is declared.
> Make both declarations static to avoid the linker error.

I figured that would be the solution but I was not sure, hence just the 
report rather than this patch :)

> Cc: Mark Pearson <markpearson@lenovo.com>
> Cc: Dell.Client.Kernel@dell.com
> Reported-by: Nathan Chancellor <nathan@kernel.org>
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>

Reviewed-by: Nathan Chancellor <nathan@kernel.org>

> ---
>   drivers/platform/x86/dell/dell-wmi-sysman/sysman.c | 2 +-
>   drivers/platform/x86/think-lmi.c                   | 2 +-
>   2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/platform/x86/dell/dell-wmi-sysman/sysman.c b/drivers/platform/x86/dell/dell-wmi-sysman/sysman.c
> index 1378c1878658..636bdfa83284 100644
> --- a/drivers/platform/x86/dell/dell-wmi-sysman/sysman.c
> +++ b/drivers/platform/x86/dell/dell-wmi-sysman/sysman.c
> @@ -25,7 +25,7 @@ struct wmi_sysman_priv wmi_priv = {
>   /* reset bios to defaults */
>   static const char * const reset_types[] = {"builtinsafe", "lastknowngood", "factory", "custom"};
>   static int reset_option = -1;
> -struct class *fw_attr_class;
> +static struct class *fw_attr_class;
>   
>   
>   /**
> diff --git a/drivers/platform/x86/think-lmi.c b/drivers/platform/x86/think-lmi.c
> index 782d8e3fe7a1..c6413b906e4a 100644
> --- a/drivers/platform/x86/think-lmi.c
> +++ b/drivers/platform/x86/think-lmi.c
> @@ -134,7 +134,7 @@ static const char * const encoding_options[] = {
>   	[TLMI_ENCODING_SCANCODE] = "scancode",
>   };
>   static struct think_lmi tlmi_priv;
> -struct class *fw_attr_class;
> +static struct class *fw_attr_class;
>   
>   /* ------ Utility functions ------------*/
>   /* Convert BIOS WMI error string to suitable error code */
>
diff mbox series

Patch

diff --git a/drivers/platform/x86/dell/dell-wmi-sysman/sysman.c b/drivers/platform/x86/dell/dell-wmi-sysman/sysman.c
index 1378c1878658..636bdfa83284 100644
--- a/drivers/platform/x86/dell/dell-wmi-sysman/sysman.c
+++ b/drivers/platform/x86/dell/dell-wmi-sysman/sysman.c
@@ -25,7 +25,7 @@  struct wmi_sysman_priv wmi_priv = {
 /* reset bios to defaults */
 static const char * const reset_types[] = {"builtinsafe", "lastknowngood", "factory", "custom"};
 static int reset_option = -1;
-struct class *fw_attr_class;
+static struct class *fw_attr_class;
 
 
 /**
diff --git a/drivers/platform/x86/think-lmi.c b/drivers/platform/x86/think-lmi.c
index 782d8e3fe7a1..c6413b906e4a 100644
--- a/drivers/platform/x86/think-lmi.c
+++ b/drivers/platform/x86/think-lmi.c
@@ -134,7 +134,7 @@  static const char * const encoding_options[] = {
 	[TLMI_ENCODING_SCANCODE] = "scancode",
 };
 static struct think_lmi tlmi_priv;
-struct class *fw_attr_class;
+static struct class *fw_attr_class;
 
 /* ------ Utility functions ------------*/
 /* Convert BIOS WMI error string to suitable error code */