linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* drivers/platform/x86/dell-smbios-wmi.c:66: undefined reference to `wmidev_evaluate_method'
@ 2018-04-27 13:43 kbuild test robot
  2018-04-27 17:55 ` Randy Dunlap
  0 siblings, 1 reply; 6+ messages in thread
From: kbuild test robot @ 2018-04-27 13:43 UTC (permalink / raw)
  To: Mario Limonciello; +Cc: kbuild-all, linux-kernel, Darren Hart (VMware)

[-- Attachment #1: Type: text/plain, Size: 13355 bytes --]

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'

vim +66 drivers/platform/x86/dell-smbios-wmi.c

1a258e67 Mario Limonciello 2017-11-01   48  
1a258e67 Mario Limonciello 2017-11-01   49  static int run_smbios_call(struct wmi_device *wdev)
1a258e67 Mario Limonciello 2017-11-01   50  {
1a258e67 Mario Limonciello 2017-11-01   51  	struct acpi_buffer output = {ACPI_ALLOCATE_BUFFER, NULL};
1a258e67 Mario Limonciello 2017-11-01   52  	struct wmi_smbios_priv *priv;
1a258e67 Mario Limonciello 2017-11-01   53  	struct acpi_buffer input;
1a258e67 Mario Limonciello 2017-11-01   54  	union acpi_object *obj;
1a258e67 Mario Limonciello 2017-11-01   55  	acpi_status status;
1a258e67 Mario Limonciello 2017-11-01   56  
1a258e67 Mario Limonciello 2017-11-01   57  	priv = dev_get_drvdata(&wdev->dev);
1a258e67 Mario Limonciello 2017-11-01   58  	input.length = priv->req_buf_size - sizeof(u64);
1a258e67 Mario Limonciello 2017-11-01   59  	input.pointer = &priv->buf->std;
1a258e67 Mario Limonciello 2017-11-01   60  
1a258e67 Mario Limonciello 2017-11-01   61  	dev_dbg(&wdev->dev, "evaluating: %u/%u [%x,%x,%x,%x]\n",
1a258e67 Mario Limonciello 2017-11-01   62  		priv->buf->std.cmd_class, priv->buf->std.cmd_select,
1a258e67 Mario Limonciello 2017-11-01   63  		priv->buf->std.input[0], priv->buf->std.input[1],
1a258e67 Mario Limonciello 2017-11-01   64  		priv->buf->std.input[2], priv->buf->std.input[3]);
1a258e67 Mario Limonciello 2017-11-01   65  
1a258e67 Mario Limonciello 2017-11-01  @66  	status = wmidev_evaluate_method(wdev, 0, 1, &input, &output);
1a258e67 Mario Limonciello 2017-11-01   67  	if (ACPI_FAILURE(status))
1a258e67 Mario Limonciello 2017-11-01   68  		return -EIO;
1a258e67 Mario Limonciello 2017-11-01   69  	obj = (union acpi_object *)output.pointer;
1a258e67 Mario Limonciello 2017-11-01   70  	if (obj->type != ACPI_TYPE_BUFFER) {
1a258e67 Mario Limonciello 2017-11-01   71  		dev_dbg(&wdev->dev, "received type: %d\n", obj->type);
1a258e67 Mario Limonciello 2017-11-01   72  		if (obj->type == ACPI_TYPE_INTEGER)
1a258e67 Mario Limonciello 2017-11-01   73  			dev_dbg(&wdev->dev, "SMBIOS call failed: %llu\n",
1a258e67 Mario Limonciello 2017-11-01   74  				obj->integer.value);
1a258e67 Mario Limonciello 2017-11-01   75  		return -EIO;
1a258e67 Mario Limonciello 2017-11-01   76  	}
1a258e67 Mario Limonciello 2017-11-01   77  	memcpy(&priv->buf->std, obj->buffer.pointer, obj->buffer.length);
1a258e67 Mario Limonciello 2017-11-01   78  	dev_dbg(&wdev->dev, "result: [%08x,%08x,%08x,%08x]\n",
1a258e67 Mario Limonciello 2017-11-01   79  		priv->buf->std.output[0], priv->buf->std.output[1],
1a258e67 Mario Limonciello 2017-11-01   80  		priv->buf->std.output[2], priv->buf->std.output[3]);
1a258e67 Mario Limonciello 2017-11-01   81  
1a258e67 Mario Limonciello 2017-11-01   82  	return 0;
1a258e67 Mario Limonciello 2017-11-01   83  }
1a258e67 Mario Limonciello 2017-11-01   84  
1a258e67 Mario Limonciello 2017-11-01   85  int dell_smbios_wmi_call(struct calling_interface_buffer *buffer)
1a258e67 Mario Limonciello 2017-11-01   86  {
1a258e67 Mario Limonciello 2017-11-01   87  	struct wmi_smbios_priv *priv;
1a258e67 Mario Limonciello 2017-11-01   88  	size_t difference;
1a258e67 Mario Limonciello 2017-11-01   89  	size_t size;
1a258e67 Mario Limonciello 2017-11-01   90  	int ret;
1a258e67 Mario Limonciello 2017-11-01   91  
1a258e67 Mario Limonciello 2017-11-01   92  	mutex_lock(&call_mutex);
1a258e67 Mario Limonciello 2017-11-01   93  	priv = get_first_smbios_priv();
307ab2a9 Mario Limonciello 2017-11-05   94  	if (!priv) {
307ab2a9 Mario Limonciello 2017-11-05   95  		ret = -ENODEV;
307ab2a9 Mario Limonciello 2017-11-05   96  		goto out_wmi_call;
307ab2a9 Mario Limonciello 2017-11-05   97  	}
1a258e67 Mario Limonciello 2017-11-01   98  
1a258e67 Mario Limonciello 2017-11-01   99  	size = sizeof(struct calling_interface_buffer);
1a258e67 Mario Limonciello 2017-11-01  100  	difference = priv->req_buf_size - sizeof(u64) - size;
1a258e67 Mario Limonciello 2017-11-01  101  
1a258e67 Mario Limonciello 2017-11-01  102  	memset(&priv->buf->ext, 0, difference);
1a258e67 Mario Limonciello 2017-11-01  103  	memcpy(&priv->buf->std, buffer, size);
1a258e67 Mario Limonciello 2017-11-01  104  	ret = run_smbios_call(priv->wdev);
1a258e67 Mario Limonciello 2017-11-01  105  	memcpy(buffer, &priv->buf->std, size);
307ab2a9 Mario Limonciello 2017-11-05  106  out_wmi_call:
1a258e67 Mario Limonciello 2017-11-01  107  	mutex_unlock(&call_mutex);
1a258e67 Mario Limonciello 2017-11-01  108  
1a258e67 Mario Limonciello 2017-11-01  109  	return ret;
1a258e67 Mario Limonciello 2017-11-01  110  }
1a258e67 Mario Limonciello 2017-11-01  111  
f2645fa3 Mario Limonciello 2017-11-01  112  static long dell_smbios_wmi_filter(struct wmi_device *wdev, unsigned int cmd,
f2645fa3 Mario Limonciello 2017-11-01  113  				   struct wmi_ioctl_buffer *arg)
f2645fa3 Mario Limonciello 2017-11-01  114  {
f2645fa3 Mario Limonciello 2017-11-01  115  	struct wmi_smbios_priv *priv;
f2645fa3 Mario Limonciello 2017-11-01  116  	int ret = 0;
f2645fa3 Mario Limonciello 2017-11-01  117  
f2645fa3 Mario Limonciello 2017-11-01  118  	switch (cmd) {
f2645fa3 Mario Limonciello 2017-11-01  119  	case DELL_WMI_SMBIOS_CMD:
f2645fa3 Mario Limonciello 2017-11-01  120  		mutex_lock(&call_mutex);
f2645fa3 Mario Limonciello 2017-11-01  121  		priv = dev_get_drvdata(&wdev->dev);
f2645fa3 Mario Limonciello 2017-11-01  122  		if (!priv) {
f2645fa3 Mario Limonciello 2017-11-01  123  			ret = -ENODEV;
f2645fa3 Mario Limonciello 2017-11-01  124  			goto fail_smbios_cmd;
f2645fa3 Mario Limonciello 2017-11-01  125  		}
f2645fa3 Mario Limonciello 2017-11-01  126  		memcpy(priv->buf, arg, priv->req_buf_size);
f2645fa3 Mario Limonciello 2017-11-01  127  		if (dell_smbios_call_filter(&wdev->dev, &priv->buf->std)) {
f2645fa3 Mario Limonciello 2017-11-01  128  			dev_err(&wdev->dev, "Invalid call %d/%d:%8x\n",
f2645fa3 Mario Limonciello 2017-11-01  129  				priv->buf->std.cmd_class,
f2645fa3 Mario Limonciello 2017-11-01  130  				priv->buf->std.cmd_select,
f2645fa3 Mario Limonciello 2017-11-01  131  				priv->buf->std.input[0]);
f2645fa3 Mario Limonciello 2017-11-01  132  			ret = -EFAULT;
f2645fa3 Mario Limonciello 2017-11-01  133  			goto fail_smbios_cmd;
f2645fa3 Mario Limonciello 2017-11-01  134  		}
f2645fa3 Mario Limonciello 2017-11-01  135  		ret = run_smbios_call(priv->wdev);
f2645fa3 Mario Limonciello 2017-11-01  136  		if (ret)
f2645fa3 Mario Limonciello 2017-11-01  137  			goto fail_smbios_cmd;
f2645fa3 Mario Limonciello 2017-11-01  138  		memcpy(arg, priv->buf, priv->req_buf_size);
f2645fa3 Mario Limonciello 2017-11-01  139  fail_smbios_cmd:
f2645fa3 Mario Limonciello 2017-11-01  140  		mutex_unlock(&call_mutex);
f2645fa3 Mario Limonciello 2017-11-01  141  		break;
f2645fa3 Mario Limonciello 2017-11-01  142  	default:
f2645fa3 Mario Limonciello 2017-11-01  143  		ret = -ENOIOCTLCMD;
f2645fa3 Mario Limonciello 2017-11-01  144  	}
f2645fa3 Mario Limonciello 2017-11-01  145  	return ret;
f2645fa3 Mario Limonciello 2017-11-01  146  }
f2645fa3 Mario Limonciello 2017-11-01  147  
1a258e67 Mario Limonciello 2017-11-01  148  static int dell_smbios_wmi_probe(struct wmi_device *wdev)
1a258e67 Mario Limonciello 2017-11-01  149  {
4255c30f Mario Limonciello 2017-11-16  150  	struct wmi_driver *wdriver =
4255c30f Mario Limonciello 2017-11-16  151  		container_of(wdev->dev.driver, struct wmi_driver, driver);
1a258e67 Mario Limonciello 2017-11-01  152  	struct wmi_smbios_priv *priv;
4255c30f Mario Limonciello 2017-11-16  153  	u32 hotfix;
1a258e67 Mario Limonciello 2017-11-01  154  	int count;
1a258e67 Mario Limonciello 2017-11-01  155  	int ret;
1a258e67 Mario Limonciello 2017-11-01  156  
868b8d33 Mario Limonciello 2017-11-09 @157  	ret = dell_wmi_get_descriptor_valid();
868b8d33 Mario Limonciello 2017-11-09  158  	if (ret)
868b8d33 Mario Limonciello 2017-11-09  159  		return ret;
1a258e67 Mario Limonciello 2017-11-01  160  
1a258e67 Mario Limonciello 2017-11-01  161  	priv = devm_kzalloc(&wdev->dev, sizeof(struct wmi_smbios_priv),
1a258e67 Mario Limonciello 2017-11-01  162  			    GFP_KERNEL);
1a258e67 Mario Limonciello 2017-11-01  163  	if (!priv)
1a258e67 Mario Limonciello 2017-11-01  164  		return -ENOMEM;
1a258e67 Mario Limonciello 2017-11-01  165  
1a258e67 Mario Limonciello 2017-11-01  166  	/* WMI buffer size will be either 4k or 32k depending on machine */
1a258e67 Mario Limonciello 2017-11-01 @167  	if (!dell_wmi_get_size(&priv->req_buf_size))
1a258e67 Mario Limonciello 2017-11-01  168  		return -EPROBE_DEFER;
1a258e67 Mario Limonciello 2017-11-01  169  
4255c30f Mario Limonciello 2017-11-16  170  	/* some SMBIOS calls fail unless BIOS contains hotfix */
4255c30f Mario Limonciello 2017-11-16 @171  	if (!dell_wmi_get_hotfix(&hotfix))
4255c30f Mario Limonciello 2017-11-16  172  		return -EPROBE_DEFER;
4255c30f Mario Limonciello 2017-11-16  173  	if (!hotfix) {
4255c30f Mario Limonciello 2017-11-16  174  		dev_warn(&wdev->dev,
4255c30f Mario Limonciello 2017-11-16  175  			"WMI SMBIOS userspace interface not supported(%u), try upgrading to a newer BIOS\n",
4255c30f Mario Limonciello 2017-11-16  176  			hotfix);
4255c30f Mario Limonciello 2017-11-16  177  		wdriver->filter_callback = NULL;
4255c30f Mario Limonciello 2017-11-16  178  	}
4255c30f Mario Limonciello 2017-11-16  179  
f2645fa3 Mario Limonciello 2017-11-01  180  	/* add in the length object we will use internally with ioctl */
f2645fa3 Mario Limonciello 2017-11-01  181  	priv->req_buf_size += sizeof(u64);
f2645fa3 Mario Limonciello 2017-11-01 @182  	ret = set_required_buffer_size(wdev, priv->req_buf_size);
f2645fa3 Mario Limonciello 2017-11-01  183  	if (ret)
f2645fa3 Mario Limonciello 2017-11-01  184  		return ret;
f2645fa3 Mario Limonciello 2017-11-01  185  
1a258e67 Mario Limonciello 2017-11-01  186  	count = get_order(priv->req_buf_size);
1a258e67 Mario Limonciello 2017-11-01  187  	priv->buf = (void *)__get_free_pages(GFP_KERNEL, count);
1a258e67 Mario Limonciello 2017-11-01  188  	if (!priv->buf)
1a258e67 Mario Limonciello 2017-11-01  189  		return -ENOMEM;
1a258e67 Mario Limonciello 2017-11-01  190  
1a258e67 Mario Limonciello 2017-11-01  191  	/* ID is used by dell-smbios to set priority of drivers */
1a258e67 Mario Limonciello 2017-11-01  192  	wdev->dev.id = 1;
1a258e67 Mario Limonciello 2017-11-01  193  	ret = dell_smbios_register_device(&wdev->dev, &dell_smbios_wmi_call);
1a258e67 Mario Limonciello 2017-11-01  194  	if (ret)
1a258e67 Mario Limonciello 2017-11-01  195  		goto fail_register;
1a258e67 Mario Limonciello 2017-11-01  196  
1a258e67 Mario Limonciello 2017-11-01  197  	priv->wdev = wdev;
1a258e67 Mario Limonciello 2017-11-01  198  	dev_set_drvdata(&wdev->dev, priv);
1a258e67 Mario Limonciello 2017-11-01  199  	mutex_lock(&list_mutex);
1a258e67 Mario Limonciello 2017-11-01  200  	list_add_tail(&priv->list, &wmi_list);
1a258e67 Mario Limonciello 2017-11-01  201  	mutex_unlock(&list_mutex);
1a258e67 Mario Limonciello 2017-11-01  202  
1a258e67 Mario Limonciello 2017-11-01  203  	return 0;
1a258e67 Mario Limonciello 2017-11-01  204  
1a258e67 Mario Limonciello 2017-11-01  205  fail_register:
1a258e67 Mario Limonciello 2017-11-01  206  	free_pages((unsigned long)priv->buf, count);
1a258e67 Mario Limonciello 2017-11-01  207  	return ret;
1a258e67 Mario Limonciello 2017-11-01  208  }
1a258e67 Mario Limonciello 2017-11-01  209  

:::::: 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@dell.com>
:::::: CC: Darren Hart (VMware) <dvhart@infradead.org>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 25212 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: drivers/platform/x86/dell-smbios-wmi.c:66: undefined reference to `wmidev_evaluate_method'
  2018-04-27 13:43 drivers/platform/x86/dell-smbios-wmi.c:66: undefined reference to `wmidev_evaluate_method' kbuild test robot
@ 2018-04-27 17:55 ` Randy Dunlap
  2018-04-27 18:01   ` Mario.Limonciello
  0 siblings, 1 reply; 6+ messages in thread
From: Randy Dunlap @ 2018-04-27 17:55 UTC (permalink / raw)
  To: kbuild test robot, Mario Limonciello
  Cc: kbuild-all, linux-kernel, Darren Hart (VMware)

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@dell.com>
> :::::: CC: Darren Hart (VMware) <dvhart@infradead.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@dell.com


-- 
~Randy

^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: drivers/platform/x86/dell-smbios-wmi.c:66: undefined reference to `wmidev_evaluate_method'
  2018-04-27 17:55 ` Randy Dunlap
@ 2018-04-27 18:01   ` Mario.Limonciello
  2018-04-27 18:03     ` Randy Dunlap
  2018-04-27 21:57     ` Randy Dunlap
  0 siblings, 2 replies; 6+ messages in thread
From: Mario.Limonciello @ 2018-04-27 18:01 UTC (permalink / raw)
  To: rdunlap, lkp; +Cc: kbuild-all, linux-kernel, dvhart

> -----Original Message-----
> From: Randy Dunlap [mailto:rdunlap@infradead.org]
> Sent: Friday, April 27, 2018 12:56 PM
> To: kbuild test robot; Limonciello, Mario
> Cc: kbuild-all@01.org; linux-kernel@vger.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@dell.com>
> > :::::: CC: Darren Hart (VMware) <dvhart@infradead.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@dell.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..?

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: drivers/platform/x86/dell-smbios-wmi.c:66: undefined reference to `wmidev_evaluate_method'
  2018-04-27 18:01   ` Mario.Limonciello
@ 2018-04-27 18:03     ` Randy Dunlap
  2018-04-27 21:57     ` Randy Dunlap
  1 sibling, 0 replies; 6+ messages in thread
From: Randy Dunlap @ 2018-04-27 18:03 UTC (permalink / raw)
  To: Mario.Limonciello, lkp; +Cc: kbuild-all, linux-kernel, dvhart

On 04/27/2018 11:01 AM, Mario.Limonciello@dell.com wrote:
>> -----Original Message-----
>> From: Randy Dunlap [mailto:rdunlap@infradead.org]
>> Sent: Friday, April 27, 2018 12:56 PM
>> To: kbuild test robot; Limonciello, Mario
>> Cc: kbuild-all@01.org; linux-kernel@vger.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@dell.com>
>>> :::::: CC: Darren Hart (VMware) <dvhart@infradead.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@dell.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..?
> 

Maybe.  I tested with your recent patch applied, but I guess all that did
with "depends on" is restrict what is getting built.

I'll look at the dependencies again (without your recent patch applied).

-- 
~Randy

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: drivers/platform/x86/dell-smbios-wmi.c:66: undefined reference to `wmidev_evaluate_method'
  2018-04-27 18:01   ` Mario.Limonciello
  2018-04-27 18:03     ` Randy Dunlap
@ 2018-04-27 21:57     ` Randy Dunlap
  2018-04-28  4:28       ` Darren Hart
  1 sibling, 1 reply; 6+ messages in thread
From: Randy Dunlap @ 2018-04-27 21:57 UTC (permalink / raw)
  To: Mario.Limonciello, lkp; +Cc: kbuild-all, linux-kernel, dvhart

On 04/27/2018 11:01 AM, Mario.Limonciello@dell.com wrote:
>> -----Original Message-----
>> From: Randy Dunlap [mailto:rdunlap@infradead.org]
>> Sent: Friday, April 27, 2018 12:56 PM
>> To: kbuild test robot; Limonciello, Mario
>> Cc: kbuild-all@01.org; linux-kernel@vger.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@dell.com>
>>> :::::: CC: Darren Hart (VMware) <dvhart@infradead.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@dell.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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: drivers/platform/x86/dell-smbios-wmi.c:66: undefined reference to `wmidev_evaluate_method'
  2018-04-27 21:57     ` Randy Dunlap
@ 2018-04-28  4:28       ` Darren Hart
  0 siblings, 0 replies; 6+ messages in thread
From: Darren Hart @ 2018-04-28  4:28 UTC (permalink / raw)
  To: Randy Dunlap; +Cc: Mario.Limonciello, lkp, kbuild-all, linux-kernel

On Fri, Apr 27, 2018 at 02:57:21PM -0700, Randy Dunlap wrote:
> On 04/27/2018 11:01 AM, Mario.Limonciello@dell.com wrote:
...
> 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... :)

Sorry, comms fail on my part. This will be merged to for-next by tomorrow.

-- 
Darren Hart
VMware Open Source Technology Center

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2018-04-28  4:28 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-04-27 13:43 drivers/platform/x86/dell-smbios-wmi.c:66: undefined reference to `wmidev_evaluate_method' kbuild test robot
2018-04-27 17:55 ` Randy Dunlap
2018-04-27 18:01   ` Mario.Limonciello
2018-04-27 18:03     ` Randy Dunlap
2018-04-27 21:57     ` Randy Dunlap
2018-04-28  4:28       ` Darren Hart

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).