Hi Mario,

[auto build test WARNING on platform-drivers-x86/for-next]
[also build test WARNING on next-20171016]
[cannot apply to v4.14-rc5]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:    
https://github.com/0day-ci/linux/commits/Mario-Limonciello/Introduce-support-for-Dell-SMBIOS-over-WMI/20171017-103109
base:   git://git.infradead.org/users/dvhart/linux-platform-drivers-x86.git 
for-next
config: i386-randconfig-x002-201742 (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All warnings (new ones prefixed by >>):

   In file included from include/linux/ioport.h:12:0,
                    from include/linux/acpi.h:25,
                    from drivers/platform/x86/wmi.c:36:
   drivers/platform/x86/wmi.c: In function 'match_ioctl':
   drivers/platform/x86/wmi.c:861:14: error: 'struct wmi_driver' has no member 
named 'compat_ioctl'; did you mean 'unlocked_ioctl'?
      if (wdriver->compat_ioctl)
                 ^
   include/linux/compiler.h:156:30: note: in definition of macro '__trace_if'
     if (__builtin_constant_p(!!(cond)) ? !!(cond) :   \
                                 ^~~~
>> drivers/platform/x86/wmi.c:861:3: note: in expansion of macro 'if'
      if (wdriver->compat_ioctl)
      ^~
   drivers/platform/x86/wmi.c:861:14: error: 'struct wmi_driver' has no member 
named 'compat_ioctl'; did you mean 'unlocked_ioctl'?
      if (wdriver->compat_ioctl)
                 ^
   include/linux/compiler.h:156:42: note: in definition of macro '__trace_if'
     if (__builtin_constant_p(!!(cond)) ? !!(cond) :   \
                                             ^~~~
>> drivers/platform/x86/wmi.c:861:3: note: in expansion of macro 'if'
      if (wdriver->compat_ioctl)
      ^~
   drivers/platform/x86/wmi.c:861:14: error: 'struct wmi_driver' has no member 
named 'compat_ioctl'; did you mean 'unlocked_ioctl'?
      if (wdriver->compat_ioctl)
                 ^
   include/linux/compiler.h:167:16: note: in definition of macro '__trace_if'
      ______r = !!(cond);     \
                   ^~~~
>> drivers/platform/x86/wmi.c:861:3: note: in expansion of macro 'if'
      if (wdriver->compat_ioctl)
      ^~
   drivers/platform/x86/wmi.c:862:17: error: 'struct wmi_driver' has no member 
named 'compat_ioctl'; did you mean 'unlocked_ioctl'?
       ret = wdriver->compat_ioctl(&wblock->dev, cmd, arg);
                    ^~
   At top level:
   drivers/platform/x86/wmi.c:877:13: warning: 'wmi_compat_ioctl' defined but 
not used [-Wunused-function]
    static long wmi_compat_ioctl(struct file *filp, unsigned int cmd,
                ^~~~~~~~~~~~~~~~

vim +/if +861 drivers/platform/x86/wmi.c

   802  
   803  static long match_ioctl(struct file *filp, unsigned int cmd, unsigned 
long arg,
   804                          int compat)
   805  {
   806          struct wmi_ioctl_buffer __user *input =
   807                  (struct wmi_ioctl_buffer __user *) arg;
   808          struct wmi_driver *wdriver = NULL;
   809          struct wmi_block *wblock = NULL;
   810          struct wmi_block *next = NULL;
   811          const char *driver_name;
   812          u64 size;
   813          int ret;
   814  
   815          if (_IOC_TYPE(cmd) != WMI_IOC)
   816                  return -ENOTTY;
   817  
   818          driver_name = filp->f_path.dentry->d_iname;
   819  
   820          list_for_each_entry_safe(wblock, next, &wmi_block_list, list) {
   821                  wdriver = container_of(wblock->dev.dev.driver,
   822                                          struct wmi_driver, driver);
   823                  if (!wdriver)
   824                          continue;
   825                  if (strcmp(driver_name, wdriver->driver.name) == 0)
   826                          break;
   827          }
   828  
   829          if (!wdriver)
   830                  return -ENODEV;
   831  
   832          /* make sure we're not calling a higher instance than exists*/
   833          if (_IOC_NR(cmd) >= wblock->gblock.instance_count)
   834                  return -EINVAL;
   835  
   836          /* check that required buffer size was declared by driver */
   837          if (!wblock->req_buf_size) {
   838                  dev_err(&wblock->dev.dev, "Required buffer size not 
set\n");
   839                  return -EINVAL;
   840          }
   841          if (get_user(size, &input->length)) {
   842                  dev_dbg(&wblock->dev.dev, "Read length from user 
failed\n");
   843                  return -EFAULT;
   844          }
   845          /* if it's too small, abort */
   846          if (size < wblock->req_buf_size) {
   847                  dev_err(&wblock->dev.dev,
   848                          "Buffer %lld too small, need at least %lld\n",
   849                          size, wblock->req_buf_size);
   850                  return -EINVAL;
   851          }
   852          /* if it's too big, warn, driver will only use what is needed */
   853          if (size > wblock->req_buf_size)
   854                  dev_warn(&wblock->dev.dev,
   855                          "Buffer %lld is bigger than required %lld\n",
   856                          size, wblock->req_buf_size);
   857  
   858          if (!try_module_get(wdriver->driver.owner))
   859                  return -EBUSY;
   860          if (compat) {
 > 861                  if (wdriver->compat_ioctl)
   862                          ret = wdriver->compat_ioctl(&wblock->dev, cmd, 
arg);
   863                  else
   864                          ret = -ENODEV;
   865          } else
   866                  ret = wdriver->unlocked_ioctl(&wblock->dev, cmd, arg);
   867          module_put(wdriver->driver.owner);
   868  
   869          return ret;
   870  }
   871  static long wmi_unlocked_ioctl(struct file *filp, unsigned int cmd,
   872                                 unsigned long arg)
   873  {
   874          return match_ioctl(filp, cmd, arg, 0);
   875  }
   876  

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

Attachment: .config.gz
Description: application/gzip

Reply via email to