[tip:WIP.sched/cpusallowed 13/13] drivers/crypto/n2_core.c:1659:31: error: passing argument 2 of 'work_on_cpu_safe' from incompatible pointer type

From: kbuild test robot
Date: Thu Apr 13 2017 - 00:26:47 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git WIP.sched/cpusallowed
head: 4ba98c7ec4094a9123d0d6aabb4497290207b518
commit: 4ba98c7ec4094a9123d0d6aabb4497290207b518 [13/13] crypto: n2 - Use work_on_cpu() instead of affinity games
config: sparc64-allyesconfig (attached as .config)
compiler: sparc64-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout 4ba98c7ec4094a9123d0d6aabb4497290207b518
# save the attached .config to linux build tree
make.cross ARCH=sparc64

All error/warnings (new ones prefixed by >>):

drivers/crypto/n2_core.c: In function 'spu_queue_register':
>> drivers/crypto/n2_core.c:1659:31: error: passing argument 2 of 'work_on_cpu_safe' from incompatible pointer type [-Werror=incompatible-pointer-types]
return work_on_cpu_safe(cpu, &qr);
^
In file included from include/linux/srcu.h:34:0,
from include/linux/notifier.h:15,
from include/linux/memory_hotplug.h:6,
from include/linux/mmzone.h:749,
from include/linux/gfp.h:5,
from include/linux/kmod.h:22,
from include/linux/module.h:13,
from drivers/crypto/n2_core.c:9:
include/linux/workqueue.h:617:6: note: expected 'long int (*)(void *)' but argument is of type 'struct spu_qreg *'
long work_on_cpu_safe(int cpu, long (*fn)(void *), void *arg);
^~~~~~~~~~~~~~~~
>> drivers/crypto/n2_core.c:1659:9: error: too few arguments to function 'work_on_cpu_safe'
return work_on_cpu_safe(cpu, &qr);
^~~~~~~~~~~~~~~~
In file included from include/linux/srcu.h:34:0,
from include/linux/notifier.h:15,
from include/linux/memory_hotplug.h:6,
from include/linux/mmzone.h:749,
from include/linux/gfp.h:5,
from include/linux/kmod.h:22,
from include/linux/module.h:13,
from drivers/crypto/n2_core.c:9:
include/linux/workqueue.h:617:6: note: declared here
long work_on_cpu_safe(int cpu, long (*fn)(void *), void *arg);
^~~~~~~~~~~~~~~~
>> drivers/crypto/n2_core.c:1660:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
At top level:
drivers/crypto/n2_core.c:1639:13: warning: 'spu_queue_register_workfn' defined but not used [-Wunused-function]
static long spu_queue_register_workfn(void *arg)
^~~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors

vim +/work_on_cpu_safe +1659 drivers/crypto/n2_core.c

1653
1654 static int spu_queue_register(struct spu_queue *p, unsigned long q_type)
1655 {
1656 int cpu = cpumask_any_and(&p->sharing, cpu_online_mask);
1657 struct spu_qreg qr = { .queue = p, .type = q_type };
1658
> 1659 return work_on_cpu_safe(cpu, &qr);
> 1660 }
1661
1662 static int spu_queue_setup(struct spu_queue *p)
1663 {

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

Attachment: .config.gz
Description: application/gzip