lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 27 Apr 2018 14:57:21 -0700
From:   Randy Dunlap <rdunlap@...radead.org>
To:     Mario.Limonciello@...l.com, lkp@...el.com
Cc:     kbuild-all@...org, linux-kernel@...r.kernel.org,
        dvhart@...radead.org
Subject: Re: drivers/platform/x86/dell-smbios-wmi.c:66: undefined reference to
 `wmidev_evaluate_method'

On 04/27/2018 11:01 AM, Mario.Limonciello@...l.com wrote:
>> -----Original Message-----
>> From: Randy Dunlap [mailto:rdunlap@...radead.org]
>> Sent: Friday, April 27, 2018 12:56 PM
>> To: kbuild test robot; Limonciello, Mario
>> Cc: kbuild-all@...org; linux-kernel@...r.kernel.org; Darren Hart (VMware)
>> Subject: Re: drivers/platform/x86/dell-smbios-wmi.c:66: undefined reference to
>> `wmidev_evaluate_method'
>>
>> On 04/27/2018 06:43 AM, kbuild test robot wrote:
>>> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
>>> head:   0644f186fc9d77bb5bd198369e59fb28927a3692
>>> commit: 25d47027e1003546bfd8964b4423cb39bc2d53e9 platform/x86: dell-
>> smbios: Link all dell-smbios-* modules together
>>> date:   7 weeks ago
>>> config: x86_64-randconfig-b0-04271930 (attached as .config)
>>> compiler: gcc-7 (Debian 7.3.0-16) 7.3.0
>>> reproduce:
>>>         git checkout 25d47027e1003546bfd8964b4423cb39bc2d53e9
>>>         # save the attached .config to linux build tree
>>>         make ARCH=x86_64
>>>
>>> All errors (new ones prefixed by >>):
>>>
>>>    drivers/platform/x86/dell-smbios-wmi.o: In function `run_smbios_call':
>>>>> drivers/platform/x86/dell-smbios-wmi.c:66: undefined reference to
>> `wmidev_evaluate_method'
>>>    drivers/platform/x86/dell-smbios-wmi.o: In function `dell_smbios_wmi_probe':
>>>>> drivers/platform/x86/dell-smbios-wmi.c:157: undefined reference to
>> `dell_wmi_get_descriptor_valid'
>>>>> drivers/platform/x86/dell-smbios-wmi.c:167: undefined reference to
>> `dell_wmi_get_size'
>>>>> drivers/platform/x86/dell-smbios-wmi.c:171: undefined reference to
>> `dell_wmi_get_hotfix'
>>>>> drivers/platform/x86/dell-smbios-wmi.c:182: undefined reference to
>> `set_required_buffer_size'
>>>    drivers/platform/x86/dell-smbios-wmi.o: In function `init_dell_smbios_wmi':
>>>>> drivers/platform/x86/dell-smbios-wmi.c:271: undefined reference to
>> `__wmi_driver_register'
>>>    drivers/platform/x86/dell-smbios-wmi.o: In function `exit_dell_smbios_wmi':
>>>>> drivers/platform/x86/dell-smbios-wmi.c:276: undefined reference to
>> `wmi_driver_unregister'
>>>
>>>
>>> :::::: The code at line 66 was first introduced by commit
>>> :::::: 1a258e670434f404a4500b65ba1afea2c2b29bba platform/x86: dell-smbios-
>> wmi: Add new WMI dispatcher driver
>>>
>>> :::::: TO: Mario Limonciello <mario.limonciello@...l.com>
>>> :::::: CC: Darren Hart (VMware) <dvhart@...radead.org>
>>
>> Hi,
>>
>> To anyone contemplating this build error, there is already a fix for it from
>> Mario on 2018-04-20.  (Seems odd that the patch does not show up on
>> https://patchwork.kernel.org/project/platform-driver-x86/list/ )
>>
>> See lkml.kernel.org/r/1524246131-17621-1-git-send-email-
>> mario.limonciello@...l.com
>>
>>
>> --
> 
> I'm wondering if that is enough of a fix though.  This "new" build error is actually
> with WMI stuff which might need adjusting too..?
> 

Hi,

CONFIG_DELL_SMBIOS=y
CONFIG_DELL_SMBIOS_WMI=y
# CONFIG_DELL_SMBIOS_SMM is not set
CONFIG_DELL_LAPTOP=y
# CONFIG_DELL_WMI is not set
CONFIG_DELL_WMI_DESCRIPTOR=m
# CONFIG_DELL_WMI_AIO is not set
CONFIG_DELL_WMI_LED=m
CONFIG_ACPI_WMI=m

kconfig tells us:

WARNING: unmet direct dependencies detected for DELL_SMBIOS
  Depends on [m]: X86 [=y] && X86_PLATFORM_DEVICES [=y] && (DCDBAS [=y] || DCDBAS [=y]=n) && (ACPI_WMI [=m] || ACPI_WMI [=m]=n)
  Selected by [y]:
  - DELL_LAPTOP [=y] && X86 [=y] && X86_PLATFORM_DEVICES [=y] && DMI [=y] && BACKLIGHT_CLASS_DEVICE [=y] && (ACPI_VIDEO [=n] || ACPI_VIDEO [=n]=n) && (RFKILL [=y] || RFKILL [=y]=n) && SERIO_I8042 [=y]


The crux of the problem is that DELL_SMBIOS=y (is builtin) but DELL_WMI_DESCRIPTOR=m,
so calls from dell-smbios-wmi.c cannot see the dell-wmi-descriptor.c APIs.

DELL_WMI_DESCRIPTOR depends on ACPI_WMI [which =m in the problem .config],
so ... Wait!

DELL_SMBIOS depends on ACPI_WMI so when ACPI_WMI=m, DELL_SMBIOS should never =y.
Your DELL_LAPTOP Kconfig patch does fix this, I believe, because when DELL_LAPTOP=y,
its select DELL_SMBIOS incorrectly makes DELL_SMBIOS=y.


so if we can get your patch merged, we can see if any more breakage happens... :)

-- 
~Randy

Powered by blists - more mailing lists