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  linux-cve-announce  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:   Tue, 17 Oct 2017 11:58:46 +0800
From:   kbuild test robot <lkp@...el.com>
To:     Mario Limonciello <mario.limonciello@...l.com>
Cc:     kbuild-all@...org, dvhart@...radead.org,
        Andy Shevchenko <andy.shevchenko@...il.com>,
        LKML <linux-kernel@...r.kernel.org>,
        platform-driver-x86@...r.kernel.org,
        Andy Lutomirski <luto@...nel.org>, quasisec@...gle.com,
        pali.rohar@...il.com, rjw@...ysocki.net, mjg59@...gle.com,
        hch@....de, Greg KH <greg@...ah.com>,
        Alan Cox <gnomes@...rguk.ukuu.org.uk>,
        Mario Limonciello <mario.limonciello@...l.com>
Subject: Re: [PATCH v8 14/15] platform/x86: wmi: create userspace interface
 for drivers

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

Download attachment ".config.gz" of type "application/gzip" (29999 bytes)

Powered by blists - more mailing lists