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 |
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 */ >
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 --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 */
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(-)