[freescale-fslc:5.4-2.1.x-imx 8790/17134] drivers/remoteproc/remoteproc_core.c:85:59: error: macro "memcpy" passed 5 arguments, but takes just 3
by kernel test robot
Hi Peng,
FYI, the error/warning still remains.
tree: https://github.com/Freescale/linux-fslc 5.4-2.1.x-imx
head: eb6f11341a5495dbfc1f7824ee4ee165c3066b7e
commit: ad144fec7a113f7abafcf29e24aa841782d40935 [8790/17134] MLK-23754-19 remoteproc: add rproc_memcpy
config: i386-randconfig-m021-20210320 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/Freescale/linux-fslc/commit/ad144fec7a113f7abafcf29e24...
git remote add freescale-fslc https://github.com/Freescale/linux-fslc
git fetch --no-tags freescale-fslc 5.4-2.1.x-imx
git checkout ad144fec7a113f7abafcf29e24aa841782d40935
# save the attached .config to linux build tree
make W=1 ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
drivers/remoteproc/remoteproc_core.c: In function 'rproc_memcpy':
>> drivers/remoteproc/remoteproc_core.c:85:59: error: macro "memcpy" passed 5 arguments, but takes just 3
85 | return rproc->ops->memcpy(rproc, dest, src, count, flags);
| ^
In file included from arch/x86/include/asm/string.h:3,
from include/linux/string.h:20,
from arch/x86/include/asm/page_32.h:35,
from arch/x86/include/asm/page.h:14,
from arch/x86/include/asm/thread_info.h:12,
from include/linux/thread_info.h:38,
from arch/x86/include/asm/preempt.h:7,
from include/linux/preempt.h:78,
from include/linux/spinlock.h:51,
from include/linux/seqlock.h:36,
from include/linux/time.h:6,
from include/linux/stat.h:19,
from include/linux/module.h:10,
from drivers/remoteproc/remoteproc_core.c:20:
arch/x86/include/asm/string_32.h:182: note: macro "memcpy" defined here
182 | #define memcpy(t, f, n) __builtin_memcpy(t, f, n)
|
drivers/remoteproc/remoteproc_core.c: In function 'rproc_find_carveout_by_name':
drivers/remoteproc/remoteproc_core.c:271:2: warning: function 'rproc_find_carveout_by_name' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format]
271 | vsnprintf(_name, sizeof(_name), name, args);
| ^~~~~~~~~
drivers/remoteproc/remoteproc_core.c: In function 'rproc_mem_entry_init':
drivers/remoteproc/remoteproc_core.c:1000:2: warning: function 'rproc_mem_entry_init' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format]
1000 | vsnprintf(mem->name, sizeof(mem->name), name, args);
| ^~~~~~~~~
drivers/remoteproc/remoteproc_core.c: In function 'rproc_of_resm_mem_entry_init':
drivers/remoteproc/remoteproc_core.c:1036:2: warning: function 'rproc_of_resm_mem_entry_init' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format]
1036 | vsnprintf(mem->name, sizeof(mem->name), name, args);
| ^~~~~~~~~
vim +/memcpy +85 drivers/remoteproc/remoteproc_core.c
73
74 /*
75 * rproc_memcpy() - memcpy verison for remoteproc usage
76 * @flags:
77 * - 0 means to DA
78 * - 1 means from DA
79 *
80 */
81 void *rproc_memcpy(struct rproc *rproc, void *dest,
82 const void *src, size_t count, int flags)
83 {
84 if (rproc->ops->memcpy)
> 85 return rproc->ops->memcpy(rproc, dest, src, count, flags);
86
87 return memcpy(dest, src, count);
88 }
89 EXPORT_SYMBOL(rproc_memcpy);
90
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 6 months
[android-goldfish:android-3.18 381/397] fs/xfs/xfs_ioctl.c:440:13: sparse: sparse: incorrect type in argument 1 (different address spaces)
by kernel test robot
tree: https://android.googlesource.com/kernel/goldfish android-3.18
head: f8518c639e676ad220b502a48e9ca17f43cdf820
commit: 693b3a2d95ecb7e80d9e693f0fb51449d311d4c6 [381/397] xfs: in _attrlist_by_handle, copy the cursor back to userspace
config: m68k-randconfig-s032-20210318 (attached as .config)
compiler: m68k-linux-gcc (GCC) 5.5.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.3-277-gc089cd2d-dirty
git remote add android-goldfish https://android.googlesource.com/kernel/goldfish
git fetch --no-tags android-goldfish android-3.18
git checkout 693b3a2d95ecb7e80d9e693f0fb51449d311d4c6
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-5.5.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=m68k
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
fs/xfs/xfs_ioctl.c:125:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void * @@ got void [noderef] <asn:1> *[usertype] ohandle @@
fs/xfs/xfs_ioctl.c:125:13: sparse: expected void *
fs/xfs/xfs_ioctl.c:125:13: sparse: got void [noderef] <asn:1> *[usertype] ohandle
fs/xfs/xfs_ioctl.c:126:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void * @@ got unsigned int [noderef] [usertype] <asn:1> *[usertype] ohandlen @@
fs/xfs/xfs_ioctl.c:126:13: sparse: expected void *
fs/xfs/xfs_ioctl.c:126:13: sparse: got unsigned int [noderef] [usertype] <asn:1> *[usertype] ohandlen
fs/xfs/xfs_ioctl.c:171:13: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const * @@ got void [noderef] <asn:1> *uhandle @@
fs/xfs/xfs_ioctl.c:171:13: sparse: expected void const *
fs/xfs/xfs_ioctl.c:171:13: sparse: got void [noderef] <asn:1> *uhandle
fs/xfs/xfs_ioctl.c:297:13: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const * @@ got unsigned int [noderef] [usertype] <asn:1> *[usertype] ohandlen @@
fs/xfs/xfs_ioctl.c:297:13: sparse: expected void const *
fs/xfs/xfs_ioctl.c:297:13: sparse: got unsigned int [noderef] [usertype] <asn:1> *[usertype] ohandlen
fs/xfs/xfs_ioctl.c:368:13: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const * @@ got void [noderef] <asn:1> *arg @@
fs/xfs/xfs_ioctl.c:368:13: sparse: expected void const *
fs/xfs/xfs_ioctl.c:368:13: sparse: got void [noderef] <asn:1> *arg
fs/xfs/xfs_ioctl.c:386:13: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const * @@ got struct fsdmidata [noderef] <asn:1> *[addressable] [usertype] data @@
fs/xfs/xfs_ioctl.c:386:13: sparse: expected void const *
fs/xfs/xfs_ioctl.c:386:13: sparse: got struct fsdmidata [noderef] <asn:1> *[addressable] [usertype] data
fs/xfs/xfs_ioctl.c:414:13: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const * @@ got void [noderef] <asn:1> *arg @@
fs/xfs/xfs_ioctl.c:414:13: sparse: expected void const *
fs/xfs/xfs_ioctl.c:414:13: sparse: got void [noderef] <asn:1> *arg
>> fs/xfs/xfs_ioctl.c:440:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void * @@ got struct xfs_attrlist_cursor [noderef] <asn:1> * @@
fs/xfs/xfs_ioctl.c:440:13: sparse: expected void *
fs/xfs/xfs_ioctl.c:440:13: sparse: got struct xfs_attrlist_cursor [noderef] <asn:1> *
fs/xfs/xfs_ioctl.c:445:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void * @@ got void [noderef] <asn:1> *[addressable] [usertype] buffer @@
fs/xfs/xfs_ioctl.c:445:13: sparse: expected void *
fs/xfs/xfs_ioctl.c:445:13: sparse: got void [noderef] <asn:1> *[addressable] [usertype] buffer
fs/xfs/xfs_ioctl.c:476:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void * @@ got unsigned char [noderef] <asn:1> *ubuf @@
fs/xfs/xfs_ioctl.c:476:13: sparse: expected void *
fs/xfs/xfs_ioctl.c:476:13: sparse: got unsigned char [noderef] <asn:1> *ubuf
fs/xfs/xfs_ioctl.c:531:13: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const * @@ got void [noderef] <asn:1> *arg @@
fs/xfs/xfs_ioctl.c:531:13: sparse: expected void const *
fs/xfs/xfs_ioctl.c:531:13: sparse: got void [noderef] <asn:1> *arg
fs/xfs/xfs_ioctl.c:561:39: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected char const *src @@ got void [noderef] <asn:1> *[usertype] am_attrname @@
fs/xfs/xfs_ioctl.c:561:39: sparse: expected char const *src
fs/xfs/xfs_ioctl.c:561:39: sparse: got void [noderef] <asn:1> *[usertype] am_attrname
fs/xfs/xfs_ioctl.c:598:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void * @@ got struct xfs_attr_multiop [noderef] <asn:1> *[addressable] [usertype] ops @@
fs/xfs/xfs_ioctl.c:598:13: sparse: expected void *
fs/xfs/xfs_ioctl.c:598:13: sparse: got struct xfs_attr_multiop [noderef] <asn:1> *[addressable] [usertype] ops
fs/xfs/xfs_ioctl.c:789:13: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const * @@ got void [noderef] <asn:1> *arg @@
fs/xfs/xfs_ioctl.c:789:13: sparse: expected void const *
fs/xfs/xfs_ioctl.c:789:13: sparse: got void [noderef] <asn:1> *arg
fs/xfs/xfs_ioctl.c:792:13: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const * @@ got unsigned long long [noderef] [usertype] <asn:1> *[addressable] [usertype] lastip @@
fs/xfs/xfs_ioctl.c:792:13: sparse: expected void const *
fs/xfs/xfs_ioctl.c:792:13: sparse: got unsigned long long [noderef] [usertype] <asn:1> *[addressable] [usertype] lastip
fs/xfs/xfs_ioctl.c:816:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void * @@ got unsigned long long [noderef] [usertype] <asn:1> *[addressable] [usertype] lastip @@
fs/xfs/xfs_ioctl.c:816:21: sparse: expected void *
fs/xfs/xfs_ioctl.c:816:21: sparse: got unsigned long long [noderef] [usertype] <asn:1> *[addressable] [usertype] lastip
fs/xfs/xfs_ioctl.c:820:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void * @@ got signed int [noderef] [usertype] <asn:1> *[addressable] [usertype] ocount @@
fs/xfs/xfs_ioctl.c:820:21: sparse: expected void *
fs/xfs/xfs_ioctl.c:820:21: sparse: got signed int [noderef] [usertype] <asn:1> *[addressable] [usertype] ocount
fs/xfs/xfs_ioctl.c:844:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void * @@ got void [noderef] <asn:1> *arg @@
fs/xfs/xfs_ioctl.c:844:13: sparse: expected void *
fs/xfs/xfs_ioctl.c:844:13: sparse: got void [noderef] <asn:1> *arg
fs/xfs/xfs_ioctl.c:861:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void * @@ got void [noderef] <asn:1> *arg @@
fs/xfs/xfs_ioctl.c:861:13: sparse: expected void *
fs/xfs/xfs_ioctl.c:861:13: sparse: got void [noderef] <asn:1> *arg
fs/xfs/xfs_ioctl.c:953:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void * @@ got void [noderef] <asn:1> *arg @@
fs/xfs/xfs_ioctl.c:953:13: sparse: expected void *
fs/xfs/xfs_ioctl.c:953:13: sparse: got void [noderef] <asn:1> *arg
fs/xfs/xfs_ioctl.c:1307:13: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const * @@ got void [noderef] <asn:1> *arg @@
fs/xfs/xfs_ioctl.c:1307:13: sparse: expected void const *
fs/xfs/xfs_ioctl.c:1307:13: sparse: got void [noderef] <asn:1> *arg
fs/xfs/xfs_ioctl.c:1330:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void * @@ got void [noderef] <asn:1> *arg @@
fs/xfs/xfs_ioctl.c:1330:13: sparse: expected void *
fs/xfs/xfs_ioctl.c:1330:13: sparse: got void [noderef] <asn:1> *arg
fs/xfs/xfs_ioctl.c:1346:13: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const * @@ got void [noderef] <asn:1> *arg @@
fs/xfs/xfs_ioctl.c:1346:13: sparse: expected void const *
fs/xfs/xfs_ioctl.c:1346:13: sparse: got void [noderef] <asn:1> *arg
fs/xfs/xfs_ioctl.c:1373:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void * @@ got struct getbmap [noderef] <asn:1> *base @@
fs/xfs/xfs_ioctl.c:1373:13: sparse: expected void *
fs/xfs/xfs_ioctl.c:1373:13: sparse: got struct getbmap [noderef] <asn:1> *base
fs/xfs/xfs_ioctl.c:1391:13: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const * @@ got void [noderef] <asn:1> *arg @@
fs/xfs/xfs_ioctl.c:1391:13: sparse: expected void const *
fs/xfs/xfs_ioctl.c:1391:13: sparse: got void [noderef] <asn:1> *arg
fs/xfs/xfs_ioctl.c:1407:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void * @@ got void [noderef] <asn:1> *arg @@
fs/xfs/xfs_ioctl.c:1407:13: sparse: expected void *
fs/xfs/xfs_ioctl.c:1407:13: sparse: got void [noderef] <asn:1> *arg
fs/xfs/xfs_ioctl.c:1417:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void * @@ got struct getbmapx [noderef] <asn:1> *base @@
fs/xfs/xfs_ioctl.c:1417:13: sparse: expected void *
fs/xfs/xfs_ioctl.c:1417:13: sparse: got struct getbmapx [noderef] <asn:1> *base
fs/xfs/xfs_ioctl.c:1432:13: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const * @@ got void [noderef] <asn:1> *arg @@
fs/xfs/xfs_ioctl.c:1432:13: sparse: expected void const *
fs/xfs/xfs_ioctl.c:1432:13: sparse: got void [noderef] <asn:1> *arg
fs/xfs/xfs_ioctl.c:1447:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void * @@ got void [noderef] <asn:1> *arg @@
fs/xfs/xfs_ioctl.c:1447:13: sparse: expected void *
fs/xfs/xfs_ioctl.c:1447:13: sparse: got void [noderef] <asn:1> *arg
fs/xfs/xfs_ioctl.c:1560:21: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const * @@ got void [noderef] <asn:1> *arg @@
fs/xfs/xfs_ioctl.c:1560:21: sparse: expected void const *
fs/xfs/xfs_ioctl.c:1560:21: sparse: got void [noderef] <asn:1> *arg
fs/xfs/xfs_ioctl.c:1573:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void * @@ got void [noderef] <asn:1> *arg @@
fs/xfs/xfs_ioctl.c:1573:21: sparse: expected void *
fs/xfs/xfs_ioctl.c:1573:21: sparse: got void [noderef] <asn:1> *arg
fs/xfs/xfs_ioctl.c:1590:24: sparse: sparse: cast removes address space '<asn:1>' of expression
fs/xfs/xfs_ioctl.c:1590:24: sparse: sparse: cast removes address space '<asn:1>' of expression
fs/xfs/xfs_ioctl.c:1590:24: sparse: sparse: cast removes address space '<asn:1>' of expression
fs/xfs/xfs_ioctl.c:1590:24: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void * @@ got int [noderef] <asn:1> * @@
fs/xfs/xfs_ioctl.c:1590:24: sparse: expected void *
fs/xfs/xfs_ioctl.c:1590:24: sparse: got int [noderef] <asn:1> *
fs/xfs/xfs_ioctl.c:1606:21: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const * @@ got void [noderef] <asn:1> *arg @@
fs/xfs/xfs_ioctl.c:1606:21: sparse: expected void const *
fs/xfs/xfs_ioctl.c:1606:21: sparse: got void [noderef] <asn:1> *arg
fs/xfs/xfs_ioctl.c:1631:21: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const * @@ got void [noderef] <asn:1> *arg @@
fs/xfs/xfs_ioctl.c:1631:21: sparse: expected void const *
fs/xfs/xfs_ioctl.c:1631:21: sparse: got void [noderef] <asn:1> *arg
fs/xfs/xfs_ioctl.c:1638:21: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const * @@ got void [noderef] <asn:1> *arg @@
fs/xfs/xfs_ioctl.c:1638:21: sparse: expected void const *
fs/xfs/xfs_ioctl.c:1638:21: sparse: got void [noderef] <asn:1> *arg
fs/xfs/xfs_ioctl.c:1648:21: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const * @@ got void [noderef] <asn:1> *arg @@
fs/xfs/xfs_ioctl.c:1648:21: sparse: expected void const *
fs/xfs/xfs_ioctl.c:1648:21: sparse: got void [noderef] <asn:1> *arg
fs/xfs/xfs_ioctl.c:1661:21: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const * @@ got void [noderef] <asn:1> *arg @@
fs/xfs/xfs_ioctl.c:1661:21: sparse: expected void const *
fs/xfs/xfs_ioctl.c:1661:21: sparse: got void [noderef] <asn:1> *arg
fs/xfs/xfs_ioctl.c:1678:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void * @@ got void [noderef] <asn:1> *arg @@
fs/xfs/xfs_ioctl.c:1678:21: sparse: expected void *
fs/xfs/xfs_ioctl.c:1678:21: sparse: got void [noderef] <asn:1> *arg
fs/xfs/xfs_ioctl.c:1693:21: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const * @@ got void [noderef] <asn:1> *arg @@
fs/xfs/xfs_ioctl.c:1693:21: sparse: expected void const *
fs/xfs/xfs_ioctl.c:1693:21: sparse: got void [noderef] <asn:1> *arg
fs/xfs/xfs_ioctl.c:1707:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void * @@ got void [noderef] <asn:1> *arg @@
fs/xfs/xfs_ioctl.c:1707:21: sparse: expected void *
vim +440 fs/xfs/xfs_ioctl.c
399
400 STATIC int
401 xfs_attrlist_by_handle(
402 struct file *parfilp,
403 void __user *arg)
404 {
405 int error = -ENOMEM;
406 attrlist_cursor_kern_t *cursor;
407 struct xfs_fsop_attrlist_handlereq __user *p = arg;
408 xfs_fsop_attrlist_handlereq_t al_hreq;
409 struct dentry *dentry;
410 char *kbuf;
411
412 if (!capable(CAP_SYS_ADMIN))
413 return -EPERM;
414 if (copy_from_user(&al_hreq, arg, sizeof(xfs_fsop_attrlist_handlereq_t)))
415 return -EFAULT;
416 if (al_hreq.buflen < sizeof(struct attrlist) ||
417 al_hreq.buflen > XATTR_LIST_MAX)
418 return -EINVAL;
419
420 /*
421 * Reject flags, only allow namespaces.
422 */
423 if (al_hreq.flags & ~(ATTR_ROOT | ATTR_SECURE))
424 return -EINVAL;
425
426 dentry = xfs_handlereq_to_dentry(parfilp, &al_hreq.hreq);
427 if (IS_ERR(dentry))
428 return PTR_ERR(dentry);
429
430 kbuf = kmem_zalloc_large(al_hreq.buflen, KM_SLEEP);
431 if (!kbuf)
432 goto out_dput;
433
434 cursor = (attrlist_cursor_kern_t *)&al_hreq.pos;
435 error = xfs_attr_list(XFS_I(dentry->d_inode), kbuf, al_hreq.buflen,
436 al_hreq.flags, cursor);
437 if (error)
438 goto out_kfree;
439
> 440 if (copy_to_user(&p->pos, cursor, sizeof(attrlist_cursor_kern_t))) {
441 error = -EFAULT;
442 goto out_kfree;
443 }
444
445 if (copy_to_user(al_hreq.buffer, kbuf, al_hreq.buflen))
446 error = -EFAULT;
447
448 out_kfree:
449 kmem_free(kbuf);
450 out_dput:
451 dput(dentry);
452 return error;
453 }
454
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 6 months
[linux-stable-rc:linux-4.14.y 6067/9999] drivers/gpu/drm/i915/selftests/i915_gem_gtt.c:290:6: error: variable 'ignored' set but not used
by kernel test robot
Hi Paulo,
First bad commit (maybe != root cause):
tree: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.14.y
head: e1f7d50ae3a3ec342e87a9b1ce6787bfb8b3c08b
commit: 760f8522ce08a24abac3208290f93fe3fffc0d6c [6067/9999] selinux: use kernel linux/socket.h for genheaders and mdp
config: i386-allyesconfig (attached as .config)
compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0
reproduce (this is a W=1 build):
# https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gi...
git remote add linux-stable-rc https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
git fetch --no-tags linux-stable-rc linux-4.14.y
git checkout 760f8522ce08a24abac3208290f93fe3fffc0d6c
# save the attached .config to linux build tree
make W=1 ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
drivers/gpu/drm/i915/i915_gem_gtt.c: In function 'gen6_dump_ppgtt':
drivers/gpu/drm/i915/i915_gem_gtt.c:1396:26: error: variable 'unused' set but not used [-Werror=unused-but-set-variable]
struct i915_page_table *unused;
^~~~~~
drivers/gpu/drm/i915/i915_gem_gtt.c: In function 'gen6_scratch_va_range':
drivers/gpu/drm/i915/i915_gem_gtt.c:1781:26: error: variable 'unused' set but not used [-Werror=unused-but-set-variable]
struct i915_page_table *unused;
^~~~~~
In file included from drivers/gpu/drm/i915/i915_gem_gtt.c:3574:0:
drivers/gpu/drm/i915/selftests/i915_gem_gtt.c: In function 'close_object_list':
>> drivers/gpu/drm/i915/selftests/i915_gem_gtt.c:290:6: error: variable 'ignored' set but not used [-Werror=unused-but-set-variable]
int ignored;
^~~~~~~
cc1: all warnings being treated as errors
vim +/ignored +290 drivers/gpu/drm/i915/selftests/i915_gem_gtt.c
4a6f13fce1331d Chris Wilson 2017-02-13 285
8d28ba4568f497 Chris Wilson 2017-02-13 286 static void close_object_list(struct list_head *objects,
8d28ba4568f497 Chris Wilson 2017-02-13 287 struct i915_address_space *vm)
8d28ba4568f497 Chris Wilson 2017-02-13 288 {
8d28ba4568f497 Chris Wilson 2017-02-13 289 struct drm_i915_gem_object *obj, *on;
aae4a3d811753d Chris Wilson 2017-02-13 @290 int ignored;
8d28ba4568f497 Chris Wilson 2017-02-13 291
8d28ba4568f497 Chris Wilson 2017-02-13 292 list_for_each_entry_safe(obj, on, objects, st_link) {
8d28ba4568f497 Chris Wilson 2017-02-13 293 struct i915_vma *vma;
8d28ba4568f497 Chris Wilson 2017-02-13 294
8d28ba4568f497 Chris Wilson 2017-02-13 295 vma = i915_vma_instance(obj, vm, NULL);
aae4a3d811753d Chris Wilson 2017-02-13 296 if (!IS_ERR(vma))
aae4a3d811753d Chris Wilson 2017-02-13 297 ignored = i915_vma_unbind(vma);
62c981cfe78513 Chris Wilson 2017-02-13 298 /* Only ppgtt vma may be closed before the object is freed */
62c981cfe78513 Chris Wilson 2017-02-13 299 if (!IS_ERR(vma) && !i915_vma_is_ggtt(vma))
8d28ba4568f497 Chris Wilson 2017-02-13 300 i915_vma_close(vma);
8d28ba4568f497 Chris Wilson 2017-02-13 301
8d28ba4568f497 Chris Wilson 2017-02-13 302 list_del(&obj->st_link);
8d28ba4568f497 Chris Wilson 2017-02-13 303 i915_gem_object_put(obj);
8d28ba4568f497 Chris Wilson 2017-02-13 304 }
8d28ba4568f497 Chris Wilson 2017-02-13 305 }
8d28ba4568f497 Chris Wilson 2017-02-13 306
:::::: The code at line 290 was first introduced by commit
:::::: aae4a3d811753d3f79c43c932b8f7d1bcbf42fb0 drm/i915: Use fault-injection to force the shrinker to run in live GTT tests
:::::: TO: Chris Wilson <chris(a)chris-wilson.co.uk>
:::::: CC: Chris Wilson <chris(a)chris-wilson.co.uk>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 6 months
[sashal-linux-stable:queue-5.4 111/132] sound/usb/mixer.c:1300:27: error: implicit declaration of function 'mixer_ctrl_intf'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git queue-5.4
head: d2c5af89e80c5b71f1da59879464a930947306a2
commit: 713f282ba1b735b09b6af98f17f466cbc515b5a6 [111/132] ALSA: usb-audio: Drop bogus dB range in too low level
config: x86_64-randconfig-a001-20210318 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 436c6c9c20cc522c92a923440a5fc509c342a7db)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git/c...
git remote add sashal-linux-stable https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git
git fetch --no-tags sashal-linux-stable queue-5.4
git checkout 713f282ba1b735b09b6af98f17f466cbc515b5a6
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
>> sound/usb/mixer.c:1300:27: error: implicit declaration of function 'mixer_ctrl_intf' [-Werror,-Wimplicit-function-declaration]
cval->head.id, mixer_ctrl_intf(cval->head.mixer),
^
1 error generated.
vim +/mixer_ctrl_intf +1300 sound/usb/mixer.c
1186
1187 /*
1188 * retrieve the minimum and maximum values for the specified control
1189 */
1190 static int get_min_max_with_quirks(struct usb_mixer_elem_info *cval,
1191 int default_min, struct snd_kcontrol *kctl)
1192 {
1193 /* for failsafe */
1194 cval->min = default_min;
1195 cval->max = cval->min + 1;
1196 cval->res = 1;
1197 cval->dBmin = cval->dBmax = 0;
1198
1199 if (cval->val_type == USB_MIXER_BOOLEAN ||
1200 cval->val_type == USB_MIXER_INV_BOOLEAN) {
1201 cval->initialized = 1;
1202 } else {
1203 int minchn = 0;
1204 if (cval->cmask) {
1205 int i;
1206 for (i = 0; i < MAX_CHANNELS; i++)
1207 if (cval->cmask & (1 << i)) {
1208 minchn = i + 1;
1209 break;
1210 }
1211 }
1212 if (get_ctl_value(cval, UAC_GET_MAX, (cval->control << 8) | minchn, &cval->max) < 0 ||
1213 get_ctl_value(cval, UAC_GET_MIN, (cval->control << 8) | minchn, &cval->min) < 0) {
1214 usb_audio_err(cval->head.mixer->chip,
1215 "%d:%d: cannot get min/max values for control %d (id %d)\n",
1216 cval->head.id, snd_usb_ctrl_intf(cval->head.mixer->chip),
1217 cval->control, cval->head.id);
1218 return -EINVAL;
1219 }
1220 if (get_ctl_value(cval, UAC_GET_RES,
1221 (cval->control << 8) | minchn,
1222 &cval->res) < 0) {
1223 cval->res = 1;
1224 } else {
1225 int last_valid_res = cval->res;
1226
1227 while (cval->res > 1) {
1228 if (snd_usb_mixer_set_ctl_value(cval, UAC_SET_RES,
1229 (cval->control << 8) | minchn,
1230 cval->res / 2) < 0)
1231 break;
1232 cval->res /= 2;
1233 }
1234 if (get_ctl_value(cval, UAC_GET_RES,
1235 (cval->control << 8) | minchn, &cval->res) < 0)
1236 cval->res = last_valid_res;
1237 }
1238 if (cval->res == 0)
1239 cval->res = 1;
1240
1241 /* Additional checks for the proper resolution
1242 *
1243 * Some devices report smaller resolutions than actually
1244 * reacting. They don't return errors but simply clip
1245 * to the lower aligned value.
1246 */
1247 if (cval->min + cval->res < cval->max) {
1248 int last_valid_res = cval->res;
1249 int saved, test, check;
1250 if (get_cur_mix_raw(cval, minchn, &saved) < 0)
1251 goto no_res_check;
1252 for (;;) {
1253 test = saved;
1254 if (test < cval->max)
1255 test += cval->res;
1256 else
1257 test -= cval->res;
1258 if (test < cval->min || test > cval->max ||
1259 snd_usb_set_cur_mix_value(cval, minchn, 0, test) ||
1260 get_cur_mix_raw(cval, minchn, &check)) {
1261 cval->res = last_valid_res;
1262 break;
1263 }
1264 if (test == check)
1265 break;
1266 cval->res *= 2;
1267 }
1268 snd_usb_set_cur_mix_value(cval, minchn, 0, saved);
1269 }
1270
1271 no_res_check:
1272 cval->initialized = 1;
1273 }
1274
1275 if (kctl)
1276 volume_control_quirks(cval, kctl);
1277
1278 /* USB descriptions contain the dB scale in 1/256 dB unit
1279 * while ALSA TLV contains in 1/100 dB unit
1280 */
1281 cval->dBmin = (convert_signed_value(cval, cval->min) * 100) / 256;
1282 cval->dBmax = (convert_signed_value(cval, cval->max) * 100) / 256;
1283 if (cval->dBmin > cval->dBmax) {
1284 /* something is wrong; assume it's either from/to 0dB */
1285 if (cval->dBmin < 0)
1286 cval->dBmax = 0;
1287 else if (cval->dBmin > 0)
1288 cval->dBmin = 0;
1289 if (cval->dBmin > cval->dBmax) {
1290 /* totally crap, return an error */
1291 return -EINVAL;
1292 }
1293 } else {
1294 /* if the max volume is too low, it's likely a bogus range;
1295 * here we use -96dB as the threshold
1296 */
1297 if (cval->dBmax <= -9600) {
1298 usb_audio_info(cval->head.mixer->chip,
1299 "%d:%d: bogus dB values (%d/%d), disabling dB reporting\n",
> 1300 cval->head.id, mixer_ctrl_intf(cval->head.mixer),
1301 cval->dBmin, cval->dBmax);
1302 cval->dBmin = cval->dBmax = 0;
1303 }
1304 }
1305
1306 return 0;
1307 }
1308
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 6 months
[sashal-linux-stable:queue-5.4 104/132] drivers/misc/mei/pci-me.c:116:36: error: use of undeclared identifier 'MEI_ME_PCH15_CFG'; did you mean
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git queue-5.4
head: d2c5af89e80c5b71f1da59879464a930947306a2
commit: e3d6e47be1642041264e9adf79c9b7037ac3ab93 [104/132] mei: me: add adler lake point S DID
config: x86_64-randconfig-a005-20210318 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 436c6c9c20cc522c92a923440a5fc509c342a7db)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git/c...
git remote add sashal-linux-stable https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git
git fetch --no-tags sashal-linux-stable queue-5.4
git checkout e3d6e47be1642041264e9adf79c9b7037ac3ab93
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
drivers/misc/mei/pci-me.c:114:34: error: use of undeclared identifier 'MEI_ME_PCH15_SPS_CFG'; did you mean 'MEI_ME_PCH8_SPS_CFG'?
{MEI_PCI_DEVICE(MEI_DEV_ID_EBG, MEI_ME_PCH15_SPS_CFG)},
^~~~~~~~~~~~~~~~~~~~
MEI_ME_PCH8_SPS_CFG
drivers/misc/mei/hw-me.h:36:34: note: expanded from macro 'MEI_PCI_DEVICE'
.driver_data = (kernel_ulong_t)(cfg),
^
drivers/misc/mei/hw-me.h:87:2: note: 'MEI_ME_PCH8_SPS_CFG' declared here
MEI_ME_PCH8_SPS_CFG,
^
>> drivers/misc/mei/pci-me.c:116:36: error: use of undeclared identifier 'MEI_ME_PCH15_CFG'; did you mean 'MEI_ME_PCH12_CFG'?
{MEI_PCI_DEVICE(MEI_DEV_ID_ADP_S, MEI_ME_PCH15_CFG)},
^~~~~~~~~~~~~~~~
MEI_ME_PCH12_CFG
drivers/misc/mei/hw-me.h:36:34: note: expanded from macro 'MEI_PCI_DEVICE'
.driver_data = (kernel_ulong_t)(cfg),
^
drivers/misc/mei/hw-me.h:88:2: note: 'MEI_ME_PCH12_CFG' declared here
MEI_ME_PCH12_CFG,
^
drivers/misc/mei/pci-me.c:189:31: warning: shift count >= width of type [-Wshift-count-overflow]
if (dma_set_mask(&pdev->dev, DMA_BIT_MASK(64)) ||
^~~~~~~~~~~~~~~~
include/linux/dma-mapping.h:142:54: note: expanded from macro 'DMA_BIT_MASK'
#define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
^ ~~~
drivers/misc/mei/pci-me.c:190:40: warning: shift count >= width of type [-Wshift-count-overflow]
dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64))) {
^~~~~~~~~~~~~~~~
include/linux/dma-mapping.h:142:54: note: expanded from macro 'DMA_BIT_MASK'
#define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
^ ~~~
2 warnings and 2 errors generated.
vim +116 drivers/misc/mei/pci-me.c
34
35 /* mei_pci_tbl - PCI Device ID Table */
36 static const struct pci_device_id mei_me_pci_tbl[] = {
37 {MEI_PCI_DEVICE(MEI_DEV_ID_82946GZ, MEI_ME_ICH_CFG)},
38 {MEI_PCI_DEVICE(MEI_DEV_ID_82G35, MEI_ME_ICH_CFG)},
39 {MEI_PCI_DEVICE(MEI_DEV_ID_82Q965, MEI_ME_ICH_CFG)},
40 {MEI_PCI_DEVICE(MEI_DEV_ID_82G965, MEI_ME_ICH_CFG)},
41 {MEI_PCI_DEVICE(MEI_DEV_ID_82GM965, MEI_ME_ICH_CFG)},
42 {MEI_PCI_DEVICE(MEI_DEV_ID_82GME965, MEI_ME_ICH_CFG)},
43 {MEI_PCI_DEVICE(MEI_DEV_ID_ICH9_82Q35, MEI_ME_ICH_CFG)},
44 {MEI_PCI_DEVICE(MEI_DEV_ID_ICH9_82G33, MEI_ME_ICH_CFG)},
45 {MEI_PCI_DEVICE(MEI_DEV_ID_ICH9_82Q33, MEI_ME_ICH_CFG)},
46 {MEI_PCI_DEVICE(MEI_DEV_ID_ICH9_82X38, MEI_ME_ICH_CFG)},
47 {MEI_PCI_DEVICE(MEI_DEV_ID_ICH9_3200, MEI_ME_ICH_CFG)},
48
49 {MEI_PCI_DEVICE(MEI_DEV_ID_ICH9_6, MEI_ME_ICH_CFG)},
50 {MEI_PCI_DEVICE(MEI_DEV_ID_ICH9_7, MEI_ME_ICH_CFG)},
51 {MEI_PCI_DEVICE(MEI_DEV_ID_ICH9_8, MEI_ME_ICH_CFG)},
52 {MEI_PCI_DEVICE(MEI_DEV_ID_ICH9_9, MEI_ME_ICH_CFG)},
53 {MEI_PCI_DEVICE(MEI_DEV_ID_ICH9_10, MEI_ME_ICH_CFG)},
54 {MEI_PCI_DEVICE(MEI_DEV_ID_ICH9M_1, MEI_ME_ICH_CFG)},
55 {MEI_PCI_DEVICE(MEI_DEV_ID_ICH9M_2, MEI_ME_ICH_CFG)},
56 {MEI_PCI_DEVICE(MEI_DEV_ID_ICH9M_3, MEI_ME_ICH_CFG)},
57 {MEI_PCI_DEVICE(MEI_DEV_ID_ICH9M_4, MEI_ME_ICH_CFG)},
58
59 {MEI_PCI_DEVICE(MEI_DEV_ID_ICH10_1, MEI_ME_ICH10_CFG)},
60 {MEI_PCI_DEVICE(MEI_DEV_ID_ICH10_2, MEI_ME_ICH10_CFG)},
61 {MEI_PCI_DEVICE(MEI_DEV_ID_ICH10_3, MEI_ME_ICH10_CFG)},
62 {MEI_PCI_DEVICE(MEI_DEV_ID_ICH10_4, MEI_ME_ICH10_CFG)},
63
64 {MEI_PCI_DEVICE(MEI_DEV_ID_IBXPK_1, MEI_ME_PCH6_CFG)},
65 {MEI_PCI_DEVICE(MEI_DEV_ID_IBXPK_2, MEI_ME_PCH6_CFG)},
66 {MEI_PCI_DEVICE(MEI_DEV_ID_CPT_1, MEI_ME_PCH_CPT_PBG_CFG)},
67 {MEI_PCI_DEVICE(MEI_DEV_ID_PBG_1, MEI_ME_PCH_CPT_PBG_CFG)},
68 {MEI_PCI_DEVICE(MEI_DEV_ID_PPT_1, MEI_ME_PCH7_CFG)},
69 {MEI_PCI_DEVICE(MEI_DEV_ID_PPT_2, MEI_ME_PCH7_CFG)},
70 {MEI_PCI_DEVICE(MEI_DEV_ID_PPT_3, MEI_ME_PCH7_CFG)},
71 {MEI_PCI_DEVICE(MEI_DEV_ID_LPT_H, MEI_ME_PCH8_SPS_CFG)},
72 {MEI_PCI_DEVICE(MEI_DEV_ID_LPT_W, MEI_ME_PCH8_SPS_CFG)},
73 {MEI_PCI_DEVICE(MEI_DEV_ID_LPT_LP, MEI_ME_PCH8_CFG)},
74 {MEI_PCI_DEVICE(MEI_DEV_ID_LPT_HR, MEI_ME_PCH8_SPS_CFG)},
75 {MEI_PCI_DEVICE(MEI_DEV_ID_WPT_LP, MEI_ME_PCH8_CFG)},
76 {MEI_PCI_DEVICE(MEI_DEV_ID_WPT_LP_2, MEI_ME_PCH8_CFG)},
77
78 {MEI_PCI_DEVICE(MEI_DEV_ID_SPT, MEI_ME_PCH8_CFG)},
79 {MEI_PCI_DEVICE(MEI_DEV_ID_SPT_2, MEI_ME_PCH8_CFG)},
80 {MEI_PCI_DEVICE(MEI_DEV_ID_SPT_H, MEI_ME_PCH8_SPS_CFG)},
81 {MEI_PCI_DEVICE(MEI_DEV_ID_SPT_H_2, MEI_ME_PCH8_SPS_CFG)},
82 {MEI_PCI_DEVICE(MEI_DEV_ID_LBG, MEI_ME_PCH12_CFG)},
83
84 {MEI_PCI_DEVICE(MEI_DEV_ID_BXT_M, MEI_ME_PCH8_CFG)},
85 {MEI_PCI_DEVICE(MEI_DEV_ID_APL_I, MEI_ME_PCH8_CFG)},
86
87 {MEI_PCI_DEVICE(MEI_DEV_ID_DNV_IE, MEI_ME_PCH8_CFG)},
88
89 {MEI_PCI_DEVICE(MEI_DEV_ID_GLK, MEI_ME_PCH8_CFG)},
90
91 {MEI_PCI_DEVICE(MEI_DEV_ID_KBP, MEI_ME_PCH8_CFG)},
92 {MEI_PCI_DEVICE(MEI_DEV_ID_KBP_2, MEI_ME_PCH8_CFG)},
93
94 {MEI_PCI_DEVICE(MEI_DEV_ID_CNP_LP, MEI_ME_PCH12_CFG)},
95 {MEI_PCI_DEVICE(MEI_DEV_ID_CNP_LP_4, MEI_ME_PCH8_CFG)},
96 {MEI_PCI_DEVICE(MEI_DEV_ID_CNP_H, MEI_ME_PCH12_CFG)},
97 {MEI_PCI_DEVICE(MEI_DEV_ID_CNP_H_4, MEI_ME_PCH8_CFG)},
98
99 {MEI_PCI_DEVICE(MEI_DEV_ID_CMP_LP, MEI_ME_PCH12_CFG)},
100 {MEI_PCI_DEVICE(MEI_DEV_ID_CMP_LP_3, MEI_ME_PCH8_CFG)},
101 {MEI_PCI_DEVICE(MEI_DEV_ID_CMP_V, MEI_ME_PCH12_CFG)},
102 {MEI_PCI_DEVICE(MEI_DEV_ID_CMP_H, MEI_ME_PCH12_CFG)},
103 {MEI_PCI_DEVICE(MEI_DEV_ID_CMP_H_3, MEI_ME_PCH8_CFG)},
104
105 {MEI_PCI_DEVICE(MEI_DEV_ID_ICP_LP, MEI_ME_PCH12_CFG)},
106
107 {MEI_PCI_DEVICE(MEI_DEV_ID_TGP_LP, MEI_ME_PCH12_CFG)},
108
109 {MEI_PCI_DEVICE(MEI_DEV_ID_MCC, MEI_ME_PCH12_CFG)},
110 {MEI_PCI_DEVICE(MEI_DEV_ID_MCC_4, MEI_ME_PCH8_CFG)},
111
112 {MEI_PCI_DEVICE(MEI_DEV_ID_CDF, MEI_ME_PCH8_CFG)},
113
114 {MEI_PCI_DEVICE(MEI_DEV_ID_EBG, MEI_ME_PCH15_SPS_CFG)},
115
> 116 {MEI_PCI_DEVICE(MEI_DEV_ID_ADP_S, MEI_ME_PCH15_CFG)},
117
118 /* required last entry */
119 {0, }
120 };
121
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 6 months
Re: [PATCH v6 13/14] drm/bridge: imx: Add LDB support for i.MX8qm
by kernel test robot
Hi Liu,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on shawnguo/for-next]
[also build test ERROR on robh/for-next drm-intel/for-linux-next drm-tip/drm-tip drm-exynos/exynos-drm-next tegra-drm/drm/tegra/for-next linus/master v5.12-rc3 next-20210319]
[cannot apply to drm/drm-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Liu-Ying/Add-some-DRM-bridge-dri...
base: https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux.git for-next
config: x86_64-allyesconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/0day-ci/linux/commit/2a10a7804cc3ac91a22aca483e6883260...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Liu-Ying/Add-some-DRM-bridge-drivers-support-for-i-MX8qm-qxp-SoCs/20210317-115847
git checkout 2a10a7804cc3ac91a22aca483e688326082219fa
# save the attached .config to linux build tree
make W=1 ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c:69:15: warning: 'struct phy_configure_opts_lvds' declared inside parameter list will not be visible outside of this definition or declaration
69 | struct phy_configure_opts_lvds *phy_cfg)
| ^~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c: In function 'imx8qm_ldb_set_phy_cfg':
>> drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c:71:9: error: dereferencing pointer to incomplete type 'struct phy_configure_opts_lvds'
71 | phy_cfg->bits_per_lane_and_dclk_cycle = 7;
| ^~
drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c: In function 'imx8qm_ldb_bridge_atomic_check':
>> drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c:91:49: error: 'union phy_configure_opts' has no member named 'lvds'
91 | struct phy_configure_opts_lvds *phy_cfg = &opts.lvds;
| ^
>> drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c:99:62: error: passing argument 5 of 'imx8qm_ldb_set_phy_cfg' from incompatible pointer type [-Werror=incompatible-pointer-types]
99 | imx8qm_ldb_set_phy_cfg(imx8qm_ldb, di_clk, is_split, false, phy_cfg);
| ^~~~~~~
| |
| struct phy_configure_opts_lvds *
drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c:69:40: note: expected 'struct phy_configure_opts_lvds *' but argument is of type 'struct phy_configure_opts_lvds *'
69 | struct phy_configure_opts_lvds *phy_cfg)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c:111:10: error: passing argument 5 of 'imx8qm_ldb_set_phy_cfg' from incompatible pointer type [-Werror=incompatible-pointer-types]
111 | phy_cfg);
| ^~~~~~~
| |
| struct phy_configure_opts_lvds *
drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c:69:40: note: expected 'struct phy_configure_opts_lvds *' but argument is of type 'struct phy_configure_opts_lvds *'
69 | struct phy_configure_opts_lvds *phy_cfg)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c: In function 'imx8qm_ldb_bridge_mode_set':
drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c:137:49: error: 'union phy_configure_opts' has no member named 'lvds'
137 | struct phy_configure_opts_lvds *phy_cfg = &opts.lvds;
| ^
drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c:152:62: error: passing argument 5 of 'imx8qm_ldb_set_phy_cfg' from incompatible pointer type [-Werror=incompatible-pointer-types]
152 | imx8qm_ldb_set_phy_cfg(imx8qm_ldb, di_clk, is_split, false, phy_cfg);
| ^~~~~~~
| |
| struct phy_configure_opts_lvds *
drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c:69:40: note: expected 'struct phy_configure_opts_lvds *' but argument is of type 'struct phy_configure_opts_lvds *'
69 | struct phy_configure_opts_lvds *phy_cfg)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c:161:10: error: passing argument 5 of 'imx8qm_ldb_set_phy_cfg' from incompatible pointer type [-Werror=incompatible-pointer-types]
161 | phy_cfg);
| ^~~~~~~
| |
| struct phy_configure_opts_lvds *
drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c:69:40: note: expected 'struct phy_configure_opts_lvds *' but argument is of type 'struct phy_configure_opts_lvds *'
69 | struct phy_configure_opts_lvds *phy_cfg)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
cc1: some warnings being treated as errors
vim +71 drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c
65
66 static void imx8qm_ldb_set_phy_cfg(struct imx8qm_ldb *imx8qm_ldb,
67 unsigned long di_clk,
68 bool is_split, bool is_slave,
> 69 struct phy_configure_opts_lvds *phy_cfg)
70 {
> 71 phy_cfg->bits_per_lane_and_dclk_cycle = 7;
72 phy_cfg->lanes = 4;
73 phy_cfg->differential_clk_rate = is_split ? di_clk / 2 : di_clk;
74 phy_cfg->is_slave = is_slave;
75 }
76
77 static int imx8qm_ldb_bridge_atomic_check(struct drm_bridge *bridge,
78 struct drm_bridge_state *bridge_state,
79 struct drm_crtc_state *crtc_state,
80 struct drm_connector_state *conn_state)
81 {
82 struct ldb_channel *ldb_ch = bridge->driver_private;
83 struct ldb *ldb = ldb_ch->ldb;
84 struct imx8qm_ldb_channel *imx8qm_ldb_ch =
85 base_to_imx8qm_ldb_channel(ldb_ch);
86 struct imx8qm_ldb *imx8qm_ldb = base_to_imx8qm_ldb(ldb);
87 struct drm_display_mode *adj = &crtc_state->adjusted_mode;
88 unsigned long di_clk = adj->clock * 1000;
89 bool is_split = ldb_channel_is_split_link(ldb_ch);
90 union phy_configure_opts opts = { };
> 91 struct phy_configure_opts_lvds *phy_cfg = &opts.lvds;
92 int ret;
93
94 ret = ldb_bridge_atomic_check_helper(bridge, bridge_state,
95 crtc_state, conn_state);
96 if (ret)
97 return ret;
98
> 99 imx8qm_ldb_set_phy_cfg(imx8qm_ldb, di_clk, is_split, false, phy_cfg);
100 ret = phy_validate(imx8qm_ldb_ch->phy, PHY_MODE_LVDS, 0, &opts);
101 if (ret < 0) {
102 DRM_DEV_DEBUG_DRIVER(imx8qm_ldb->dev,
103 "failed to validate PHY: %d\n", ret);
104 return ret;
105 }
106
107 if (is_split) {
108 imx8qm_ldb_ch =
109 &imx8qm_ldb->channel[imx8qm_ldb->active_chno ^ 1];
110 imx8qm_ldb_set_phy_cfg(imx8qm_ldb, di_clk, is_split, true,
111 phy_cfg);
112 ret = phy_validate(imx8qm_ldb_ch->phy, PHY_MODE_LVDS, 0, &opts);
113 if (ret < 0) {
114 DRM_DEV_DEBUG_DRIVER(imx8qm_ldb->dev,
115 "failed to validate slave PHY: %d\n", ret);
116 return ret;
117 }
118 }
119
120 return ret;
121 }
122
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 6 months
[sashal-linux-stable:queue-5.4 103/132] drivers/misc/mei/pci-me.c:114:34: error: use of undeclared identifier 'MEI_ME_PCH15_SPS_CFG'; did you mean
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git queue-5.4
head: d2c5af89e80c5b71f1da59879464a930947306a2
commit: e597d09e89f8a7ea76ebce97489beea3cc9267a7 [103/132] mei: me: emmitsburg workstation DID
config: x86_64-randconfig-a005-20210318 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 436c6c9c20cc522c92a923440a5fc509c342a7db)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git/c...
git remote add sashal-linux-stable https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git
git fetch --no-tags sashal-linux-stable queue-5.4
git checkout e597d09e89f8a7ea76ebce97489beea3cc9267a7
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All error/warnings (new ones prefixed by >>):
>> drivers/misc/mei/pci-me.c:114:34: error: use of undeclared identifier 'MEI_ME_PCH15_SPS_CFG'; did you mean 'MEI_ME_PCH8_SPS_CFG'?
{MEI_PCI_DEVICE(MEI_DEV_ID_EBG, MEI_ME_PCH15_SPS_CFG)},
^~~~~~~~~~~~~~~~~~~~
MEI_ME_PCH8_SPS_CFG
drivers/misc/mei/hw-me.h:36:34: note: expanded from macro 'MEI_PCI_DEVICE'
.driver_data = (kernel_ulong_t)(cfg),
^
drivers/misc/mei/hw-me.h:87:2: note: 'MEI_ME_PCH8_SPS_CFG' declared here
MEI_ME_PCH8_SPS_CFG,
^
>> drivers/misc/mei/pci-me.c:187:31: warning: shift count >= width of type [-Wshift-count-overflow]
if (dma_set_mask(&pdev->dev, DMA_BIT_MASK(64)) ||
^~~~~~~~~~~~~~~~
include/linux/dma-mapping.h:142:54: note: expanded from macro 'DMA_BIT_MASK'
#define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
^ ~~~
drivers/misc/mei/pci-me.c:188:40: warning: shift count >= width of type [-Wshift-count-overflow]
dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64))) {
^~~~~~~~~~~~~~~~
include/linux/dma-mapping.h:142:54: note: expanded from macro 'DMA_BIT_MASK'
#define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
^ ~~~
2 warnings and 1 error generated.
vim +114 drivers/misc/mei/pci-me.c
34
35 /* mei_pci_tbl - PCI Device ID Table */
36 static const struct pci_device_id mei_me_pci_tbl[] = {
37 {MEI_PCI_DEVICE(MEI_DEV_ID_82946GZ, MEI_ME_ICH_CFG)},
38 {MEI_PCI_DEVICE(MEI_DEV_ID_82G35, MEI_ME_ICH_CFG)},
39 {MEI_PCI_DEVICE(MEI_DEV_ID_82Q965, MEI_ME_ICH_CFG)},
40 {MEI_PCI_DEVICE(MEI_DEV_ID_82G965, MEI_ME_ICH_CFG)},
41 {MEI_PCI_DEVICE(MEI_DEV_ID_82GM965, MEI_ME_ICH_CFG)},
42 {MEI_PCI_DEVICE(MEI_DEV_ID_82GME965, MEI_ME_ICH_CFG)},
43 {MEI_PCI_DEVICE(MEI_DEV_ID_ICH9_82Q35, MEI_ME_ICH_CFG)},
44 {MEI_PCI_DEVICE(MEI_DEV_ID_ICH9_82G33, MEI_ME_ICH_CFG)},
45 {MEI_PCI_DEVICE(MEI_DEV_ID_ICH9_82Q33, MEI_ME_ICH_CFG)},
46 {MEI_PCI_DEVICE(MEI_DEV_ID_ICH9_82X38, MEI_ME_ICH_CFG)},
47 {MEI_PCI_DEVICE(MEI_DEV_ID_ICH9_3200, MEI_ME_ICH_CFG)},
48
49 {MEI_PCI_DEVICE(MEI_DEV_ID_ICH9_6, MEI_ME_ICH_CFG)},
50 {MEI_PCI_DEVICE(MEI_DEV_ID_ICH9_7, MEI_ME_ICH_CFG)},
51 {MEI_PCI_DEVICE(MEI_DEV_ID_ICH9_8, MEI_ME_ICH_CFG)},
52 {MEI_PCI_DEVICE(MEI_DEV_ID_ICH9_9, MEI_ME_ICH_CFG)},
53 {MEI_PCI_DEVICE(MEI_DEV_ID_ICH9_10, MEI_ME_ICH_CFG)},
54 {MEI_PCI_DEVICE(MEI_DEV_ID_ICH9M_1, MEI_ME_ICH_CFG)},
55 {MEI_PCI_DEVICE(MEI_DEV_ID_ICH9M_2, MEI_ME_ICH_CFG)},
56 {MEI_PCI_DEVICE(MEI_DEV_ID_ICH9M_3, MEI_ME_ICH_CFG)},
57 {MEI_PCI_DEVICE(MEI_DEV_ID_ICH9M_4, MEI_ME_ICH_CFG)},
58
59 {MEI_PCI_DEVICE(MEI_DEV_ID_ICH10_1, MEI_ME_ICH10_CFG)},
60 {MEI_PCI_DEVICE(MEI_DEV_ID_ICH10_2, MEI_ME_ICH10_CFG)},
61 {MEI_PCI_DEVICE(MEI_DEV_ID_ICH10_3, MEI_ME_ICH10_CFG)},
62 {MEI_PCI_DEVICE(MEI_DEV_ID_ICH10_4, MEI_ME_ICH10_CFG)},
63
64 {MEI_PCI_DEVICE(MEI_DEV_ID_IBXPK_1, MEI_ME_PCH6_CFG)},
65 {MEI_PCI_DEVICE(MEI_DEV_ID_IBXPK_2, MEI_ME_PCH6_CFG)},
66 {MEI_PCI_DEVICE(MEI_DEV_ID_CPT_1, MEI_ME_PCH_CPT_PBG_CFG)},
67 {MEI_PCI_DEVICE(MEI_DEV_ID_PBG_1, MEI_ME_PCH_CPT_PBG_CFG)},
68 {MEI_PCI_DEVICE(MEI_DEV_ID_PPT_1, MEI_ME_PCH7_CFG)},
69 {MEI_PCI_DEVICE(MEI_DEV_ID_PPT_2, MEI_ME_PCH7_CFG)},
70 {MEI_PCI_DEVICE(MEI_DEV_ID_PPT_3, MEI_ME_PCH7_CFG)},
71 {MEI_PCI_DEVICE(MEI_DEV_ID_LPT_H, MEI_ME_PCH8_SPS_CFG)},
72 {MEI_PCI_DEVICE(MEI_DEV_ID_LPT_W, MEI_ME_PCH8_SPS_CFG)},
73 {MEI_PCI_DEVICE(MEI_DEV_ID_LPT_LP, MEI_ME_PCH8_CFG)},
74 {MEI_PCI_DEVICE(MEI_DEV_ID_LPT_HR, MEI_ME_PCH8_SPS_CFG)},
75 {MEI_PCI_DEVICE(MEI_DEV_ID_WPT_LP, MEI_ME_PCH8_CFG)},
76 {MEI_PCI_DEVICE(MEI_DEV_ID_WPT_LP_2, MEI_ME_PCH8_CFG)},
77
78 {MEI_PCI_DEVICE(MEI_DEV_ID_SPT, MEI_ME_PCH8_CFG)},
79 {MEI_PCI_DEVICE(MEI_DEV_ID_SPT_2, MEI_ME_PCH8_CFG)},
80 {MEI_PCI_DEVICE(MEI_DEV_ID_SPT_H, MEI_ME_PCH8_SPS_CFG)},
81 {MEI_PCI_DEVICE(MEI_DEV_ID_SPT_H_2, MEI_ME_PCH8_SPS_CFG)},
82 {MEI_PCI_DEVICE(MEI_DEV_ID_LBG, MEI_ME_PCH12_CFG)},
83
84 {MEI_PCI_DEVICE(MEI_DEV_ID_BXT_M, MEI_ME_PCH8_CFG)},
85 {MEI_PCI_DEVICE(MEI_DEV_ID_APL_I, MEI_ME_PCH8_CFG)},
86
87 {MEI_PCI_DEVICE(MEI_DEV_ID_DNV_IE, MEI_ME_PCH8_CFG)},
88
89 {MEI_PCI_DEVICE(MEI_DEV_ID_GLK, MEI_ME_PCH8_CFG)},
90
91 {MEI_PCI_DEVICE(MEI_DEV_ID_KBP, MEI_ME_PCH8_CFG)},
92 {MEI_PCI_DEVICE(MEI_DEV_ID_KBP_2, MEI_ME_PCH8_CFG)},
93
94 {MEI_PCI_DEVICE(MEI_DEV_ID_CNP_LP, MEI_ME_PCH12_CFG)},
95 {MEI_PCI_DEVICE(MEI_DEV_ID_CNP_LP_4, MEI_ME_PCH8_CFG)},
96 {MEI_PCI_DEVICE(MEI_DEV_ID_CNP_H, MEI_ME_PCH12_CFG)},
97 {MEI_PCI_DEVICE(MEI_DEV_ID_CNP_H_4, MEI_ME_PCH8_CFG)},
98
99 {MEI_PCI_DEVICE(MEI_DEV_ID_CMP_LP, MEI_ME_PCH12_CFG)},
100 {MEI_PCI_DEVICE(MEI_DEV_ID_CMP_LP_3, MEI_ME_PCH8_CFG)},
101 {MEI_PCI_DEVICE(MEI_DEV_ID_CMP_V, MEI_ME_PCH12_CFG)},
102 {MEI_PCI_DEVICE(MEI_DEV_ID_CMP_H, MEI_ME_PCH12_CFG)},
103 {MEI_PCI_DEVICE(MEI_DEV_ID_CMP_H_3, MEI_ME_PCH8_CFG)},
104
105 {MEI_PCI_DEVICE(MEI_DEV_ID_ICP_LP, MEI_ME_PCH12_CFG)},
106
107 {MEI_PCI_DEVICE(MEI_DEV_ID_TGP_LP, MEI_ME_PCH12_CFG)},
108
109 {MEI_PCI_DEVICE(MEI_DEV_ID_MCC, MEI_ME_PCH12_CFG)},
110 {MEI_PCI_DEVICE(MEI_DEV_ID_MCC_4, MEI_ME_PCH8_CFG)},
111
112 {MEI_PCI_DEVICE(MEI_DEV_ID_CDF, MEI_ME_PCH8_CFG)},
113
> 114 {MEI_PCI_DEVICE(MEI_DEV_ID_EBG, MEI_ME_PCH15_SPS_CFG)},
115
116 /* required last entry */
117 {0, }
118 };
119
120 MODULE_DEVICE_TABLE(pci, mei_me_pci_tbl);
121
122 #ifdef CONFIG_PM
123 static inline void mei_me_set_pm_domain(struct mei_device *dev);
124 static inline void mei_me_unset_pm_domain(struct mei_device *dev);
125 #else
126 static inline void mei_me_set_pm_domain(struct mei_device *dev) {}
127 static inline void mei_me_unset_pm_domain(struct mei_device *dev) {}
128 #endif /* CONFIG_PM */
129
130 /**
131 * mei_me_quirk_probe - probe for devices that doesn't valid ME interface
132 *
133 * @pdev: PCI device structure
134 * @cfg: per generation config
135 *
136 * Return: true if ME Interface is valid, false otherwise
137 */
138 static bool mei_me_quirk_probe(struct pci_dev *pdev,
139 const struct mei_cfg *cfg)
140 {
141 if (cfg->quirk_probe && cfg->quirk_probe(pdev)) {
142 dev_info(&pdev->dev, "Device doesn't have valid ME Interface\n");
143 return false;
144 }
145
146 return true;
147 }
148
149 /**
150 * mei_me_probe - Device Initialization Routine
151 *
152 * @pdev: PCI device structure
153 * @ent: entry in kcs_pci_tbl
154 *
155 * Return: 0 on success, <0 on failure.
156 */
157 static int mei_me_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
158 {
159 const struct mei_cfg *cfg;
160 struct mei_device *dev;
161 struct mei_me_hw *hw;
162 unsigned int irqflags;
163 int err;
164
165 cfg = mei_me_get_cfg(ent->driver_data);
166 if (!cfg)
167 return -ENODEV;
168
169 if (!mei_me_quirk_probe(pdev, cfg))
170 return -ENODEV;
171
172 /* enable pci dev */
173 err = pcim_enable_device(pdev);
174 if (err) {
175 dev_err(&pdev->dev, "failed to enable pci device.\n");
176 goto end;
177 }
178 /* set PCI host mastering */
179 pci_set_master(pdev);
180 /* pci request regions and mapping IO device memory for mei driver */
181 err = pcim_iomap_regions(pdev, BIT(0), KBUILD_MODNAME);
182 if (err) {
183 dev_err(&pdev->dev, "failed to get pci regions.\n");
184 goto end;
185 }
186
> 187 if (dma_set_mask(&pdev->dev, DMA_BIT_MASK(64)) ||
188 dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64))) {
189
190 err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
191 if (err)
192 err = dma_set_coherent_mask(&pdev->dev,
193 DMA_BIT_MASK(32));
194 }
195 if (err) {
196 dev_err(&pdev->dev, "No usable DMA configuration, aborting\n");
197 goto end;
198 }
199
200 /* allocates and initializes the mei dev structure */
201 dev = mei_me_dev_init(pdev, cfg);
202 if (!dev) {
203 err = -ENOMEM;
204 goto end;
205 }
206 hw = to_me_hw(dev);
207 hw->mem_addr = pcim_iomap_table(pdev)[0];
208
209 pci_enable_msi(pdev);
210
211 /* request and enable interrupt */
212 irqflags = pci_dev_msi_enabled(pdev) ? IRQF_ONESHOT : IRQF_SHARED;
213
214 err = request_threaded_irq(pdev->irq,
215 mei_me_irq_quick_handler,
216 mei_me_irq_thread_handler,
217 irqflags, KBUILD_MODNAME, dev);
218 if (err) {
219 dev_err(&pdev->dev, "request_threaded_irq failure. irq = %d\n",
220 pdev->irq);
221 goto end;
222 }
223
224 if (mei_start(dev)) {
225 dev_err(&pdev->dev, "init hw failure.\n");
226 err = -ENODEV;
227 goto release_irq;
228 }
229
230 pm_runtime_set_autosuspend_delay(&pdev->dev, MEI_ME_RPM_TIMEOUT);
231 pm_runtime_use_autosuspend(&pdev->dev);
232
233 err = mei_register(dev, &pdev->dev);
234 if (err)
235 goto stop;
236
237 pci_set_drvdata(pdev, dev);
238
239 /*
240 * MEI requires to resume from runtime suspend mode
241 * in order to perform link reset flow upon system suspend.
242 */
243 dev_pm_set_driver_flags(&pdev->dev, DPM_FLAG_NEVER_SKIP);
244
245 /*
246 * ME maps runtime suspend/resume to D0i states,
247 * hence we need to go around native PCI runtime service which
248 * eventually brings the device into D3cold/hot state,
249 * but the mei device cannot wake up from D3 unlike from D0i3.
250 * To get around the PCI device native runtime pm,
251 * ME uses runtime pm domain handlers which take precedence
252 * over the driver's pm handlers.
253 */
254 mei_me_set_pm_domain(dev);
255
256 if (mei_pg_is_enabled(dev)) {
257 pm_runtime_put_noidle(&pdev->dev);
258 if (hw->d0i3_supported)
259 pm_runtime_allow(&pdev->dev);
260 }
261
262 dev_dbg(&pdev->dev, "initialization successful.\n");
263
264 return 0;
265
266 stop:
267 mei_stop(dev);
268 release_irq:
269 mei_cancel_work(dev);
270 mei_disable_interrupts(dev);
271 free_irq(pdev->irq, dev);
272 end:
273 dev_err(&pdev->dev, "initialization failed.\n");
274 return err;
275 }
276
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 6 months