drivers/video/fbdev/aty/atyfb_base.c:2002:7: error: implicit declaration of function 'aty_ld_lcd'; did you mean
by kernel test robot
Hi Vaibhav,
FYI, the error/warning still remains.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: f40ddce88593482919761f74910f42f4b84c004b
commit: 348b2956d5e6d9876b567226184de598d00c9bd1 fbdev: aty: use generic power management
date: 5 months ago
config: powerpc64-randconfig-r031-20210216 (attached as .config)
compiler: powerpc64-linux-gcc (GCC) 9.3.0
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
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 348b2956d5e6d9876b567226184de598d00c9bd1
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=powerpc64
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/video/fbdev/aty/atyfb_base.c: In function 'aty_power_mgmt':
>> drivers/video/fbdev/aty/atyfb_base.c:2002:7: error: implicit declaration of function 'aty_ld_lcd'; did you mean 'aty_ld_8'? [-Werror=implicit-function-declaration]
2002 | pm = aty_ld_lcd(POWER_MANAGEMENT, par);
| ^~~~~~~~~~
| aty_ld_8
>> drivers/video/fbdev/aty/atyfb_base.c:2004:2: error: implicit declaration of function 'aty_st_lcd'; did you mean 'aty_st_8'? [-Werror=implicit-function-declaration]
2004 | aty_st_lcd(POWER_MANAGEMENT, pm, par);
| ^~~~~~~~~~
| aty_st_8
drivers/video/fbdev/aty/atyfb_base.c: In function 'aty_init':
drivers/video/fbdev/aty/atyfb_base.c:2363:6: warning: variable 'dac_type' set but not used [-Wunused-but-set-variable]
2363 | u8 dac_type, dac_subtype, clk_type;
| ^~~~~~~~
cc1: some warnings being treated as errors
vim +2002 drivers/video/fbdev/aty/atyfb_base.c
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 1993
efc08a75d3a2d4 drivers/video/aty/atyfb_base.c Ville Syrjala 2006-12-08 1994 #ifdef CONFIG_PPC_PMAC
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 1995 /* Power management routines. Those are used for PowerBook sleep.
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 1996 */
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 1997 static int aty_power_mgmt(int sleep, struct atyfb_par *par)
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 1998 {
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 1999 u32 pm;
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2000 int timeout;
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2001
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 @2002 pm = aty_ld_lcd(POWER_MANAGEMENT, par);
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2003 pm = (pm & ~PWR_MGT_MODE_MASK) | PWR_MGT_MODE_REG;
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 @2004 aty_st_lcd(POWER_MANAGEMENT, pm, par);
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2005 pm = aty_ld_lcd(POWER_MANAGEMENT, par);
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2006
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2007 timeout = 2000;
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2008 if (sleep) {
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2009 /* Sleep */
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2010 pm &= ~PWR_MGT_ON;
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2011 aty_st_lcd(POWER_MANAGEMENT, pm, par);
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2012 pm = aty_ld_lcd(POWER_MANAGEMENT, par);
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2013 udelay(10);
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2014 pm &= ~(PWR_BLON | AUTO_PWR_UP);
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2015 pm |= SUSPEND_NOW;
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2016 aty_st_lcd(POWER_MANAGEMENT, pm, par);
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2017 pm = aty_ld_lcd(POWER_MANAGEMENT, par);
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2018 udelay(10);
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2019 pm |= PWR_MGT_ON;
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2020 aty_st_lcd(POWER_MANAGEMENT, pm, par);
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2021 do {
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2022 pm = aty_ld_lcd(POWER_MANAGEMENT, par);
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2023 mdelay(1);
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2024 if ((--timeout) == 0)
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2025 break;
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2026 } while ((pm & PWR_MGT_STATUS_MASK) != PWR_MGT_STATUS_SUSPEND);
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2027 } else {
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2028 /* Wakeup */
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2029 pm &= ~PWR_MGT_ON;
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2030 aty_st_lcd(POWER_MANAGEMENT, pm, par);
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2031 pm = aty_ld_lcd(POWER_MANAGEMENT, par);
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2032 udelay(10);
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2033 pm &= ~SUSPEND_NOW;
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2034 pm |= (PWR_BLON | AUTO_PWR_UP);
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2035 aty_st_lcd(POWER_MANAGEMENT, pm, par);
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2036 pm = aty_ld_lcd(POWER_MANAGEMENT, par);
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2037 udelay(10);
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2038 pm |= PWR_MGT_ON;
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2039 aty_st_lcd(POWER_MANAGEMENT, pm, par);
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2040 do {
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2041 pm = aty_ld_lcd(POWER_MANAGEMENT, par);
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2042 mdelay(1);
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2043 if ((--timeout) == 0)
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2044 break;
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2045 } while ((pm & PWR_MGT_STATUS_MASK) != 0);
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2046 }
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2047 mdelay(500);
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2048
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2049 return timeout ? 0 : -EIO;
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2050 }
b7468168631e03 drivers/video/aty/atyfb_base.c Benjamin Herrenschmidt 2009-02-05 2051 #endif /* CONFIG_PPC_PMAC */
^1da177e4c3f41 drivers/video/aty/atyfb_base.c Linus Torvalds 2005-04-16 2052
:::::: The code at line 2002 was first introduced by commit
:::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2
:::::: TO: Linus Torvalds <torvalds(a)ppc970.osdl.org>
:::::: CC: Linus Torvalds <torvalds(a)ppc970.osdl.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 7 months
[block:io_uring-worker 10/17] fs/io-wq.c:499:2: error: implicit declaration of function 'set_cpus_allowed_common'; did you mean
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git io_uring-worker
head: 57ea9801528571943b503bbe9b70a9504793d90e
commit: 276f31457f375639fd79c9eaf975593e750cd7f2 [10/17] io-wq: fork worker threads from original task
config: x86_64-randconfig-s022-20210216 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.3-215-g0fb77bb6-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git/com...
git remote add block https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git
git fetch --no-tags block io_uring-worker
git checkout 276f31457f375639fd79c9eaf975593e750cd7f2
# save the attached .config to linux build tree
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' 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 >>):
fs/io-wq.c: In function 'task_thread':
>> fs/io-wq.c:499:2: error: implicit declaration of function 'set_cpus_allowed_common'; did you mean 'set_cpus_allowed_ptr'? [-Werror=implicit-function-declaration]
499 | set_cpus_allowed_common(current, cpumask_of_node(wqe->node), 0);
| ^~~~~~~~~~~~~~~~~~~~~~~
| set_cpus_allowed_ptr
cc1: some warnings being treated as errors
vim +499 fs/io-wq.c
485
486 static int task_thread(void *data, int index)
487 {
488 struct io_worker *worker = data;
489 struct io_wqe *wqe = worker->wqe;
490 struct io_wqe_acct *acct = &wqe->acct[index];
491 struct io_wq *wq = wqe->wq;
492 unsigned long flags;
493
494 current->flags &= ~PF_KTHREAD;
495 current->pf_io_worker = worker;
496 worker->task = current;
497
498 raw_spin_lock_irqsave(¤t->pi_lock, flags);
> 499 set_cpus_allowed_common(current, cpumask_of_node(wqe->node), 0);
500 current->flags |= PF_NO_SETAFFINITY;
501 raw_spin_unlock_irqrestore(¤t->pi_lock, flags);
502
503 raw_spin_lock_irq(&wqe->lock);
504 hlist_nulls_add_head_rcu(&worker->nulls_node, &wqe->free_list);
505 list_add_tail_rcu(&worker->all_list, &wqe->all_list);
506 worker->flags |= IO_WORKER_F_FREE;
507 if (index == IO_WQ_ACCT_BOUND)
508 worker->flags |= IO_WORKER_F_BOUND;
509 if (!acct->nr_workers && (worker->flags & IO_WORKER_F_BOUND))
510 worker->flags |= IO_WORKER_F_FIXED;
511 acct->nr_workers++;
512 raw_spin_unlock_irq(&wqe->lock);
513
514 if (index == IO_WQ_ACCT_UNBOUND)
515 atomic_inc(&wq->user->processes);
516
517 io_wqe_worker(data);
518 do_exit(0);
519 }
520
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 7 months
[block:io_uring-worker 10/17] fs/io-wq.c:499:2: error: implicit declaration of function 'set_cpus_allowed_common'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git io_uring-worker
head: 57ea9801528571943b503bbe9b70a9504793d90e
commit: 276f31457f375639fd79c9eaf975593e750cd7f2 [10/17] io-wq: fork worker threads from original task
config: powerpc-randconfig-r023-20210216 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project c9439ca36342fb6013187d0a69aef92736951476)
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 powerpc cross compiling tool for clang build
# apt-get install binutils-powerpc-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git/com...
git remote add block https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git
git fetch --no-tags block io_uring-worker
git checkout 276f31457f375639fd79c9eaf975593e750cd7f2
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc
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 >>):
>> fs/io-wq.c:499:2: error: implicit declaration of function 'set_cpus_allowed_common' [-Werror,-Wimplicit-function-declaration]
set_cpus_allowed_common(current, cpumask_of_node(wqe->node), 0);
^
fs/io-wq.c:499:2: note: did you mean 'set_cpus_allowed_ptr'?
include/linux/sched.h:1683:19: note: 'set_cpus_allowed_ptr' declared here
static inline int set_cpus_allowed_ptr(struct task_struct *p, const struct cpumask *new_mask)
^
1 error generated.
vim +/set_cpus_allowed_common +499 fs/io-wq.c
485
486 static int task_thread(void *data, int index)
487 {
488 struct io_worker *worker = data;
489 struct io_wqe *wqe = worker->wqe;
490 struct io_wqe_acct *acct = &wqe->acct[index];
491 struct io_wq *wq = wqe->wq;
492 unsigned long flags;
493
494 current->flags &= ~PF_KTHREAD;
495 current->pf_io_worker = worker;
496 worker->task = current;
497
498 raw_spin_lock_irqsave(¤t->pi_lock, flags);
> 499 set_cpus_allowed_common(current, cpumask_of_node(wqe->node), 0);
500 current->flags |= PF_NO_SETAFFINITY;
501 raw_spin_unlock_irqrestore(¤t->pi_lock, flags);
502
503 raw_spin_lock_irq(&wqe->lock);
504 hlist_nulls_add_head_rcu(&worker->nulls_node, &wqe->free_list);
505 list_add_tail_rcu(&worker->all_list, &wqe->all_list);
506 worker->flags |= IO_WORKER_F_FREE;
507 if (index == IO_WQ_ACCT_BOUND)
508 worker->flags |= IO_WORKER_F_BOUND;
509 if (!acct->nr_workers && (worker->flags & IO_WORKER_F_BOUND))
510 worker->flags |= IO_WORKER_F_FIXED;
511 acct->nr_workers++;
512 raw_spin_unlock_irq(&wqe->lock);
513
514 if (index == IO_WQ_ACCT_UNBOUND)
515 atomic_inc(&wq->user->processes);
516
517 io_wqe_worker(data);
518 do_exit(0);
519 }
520
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 7 months
ld.lld: error: main.c:(.text+0xE8): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
by kernel test robot
CC: linux-kernel(a)vger.kernel.org
TO: "Steven Rostedt (VMware)" <rostedt(a)goodmis.org>
CC: Ingo Molnar <mingo(a)kernel.org>
CC: "Peter Zijlstra (Intel)" <peterz(a)infradead.org>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: f40ddce88593482919761f74910f42f4b84c004b
commit: d25e37d89dd2f41d7acae0429039d2f0ae8b4a07 tracepoint: Optimize using static_call()
date: 6 months ago
config: riscv-randconfig-r024-20210216 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project c9439ca36342fb6013187d0a69aef92736951476)
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 riscv cross compiling tool for clang build
# apt-get install binutils-riscv64-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout d25e37d89dd2f41d7acae0429039d2f0ae8b4a07
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv
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 >>):
ld.lld: error: arch/riscv/kernel/head.o:(.head.text+0x0): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
ld.lld: error: arch/riscv/kernel/head.o:(.head.text+0xA): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
ld.lld: error: arch/riscv/kernel/head.o:(.head.text+0x40): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
ld.lld: error: arch/riscv/kernel/head.o:(.head.text+0x4A): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
ld.lld: error: arch/riscv/kernel/head.o:(.head.text+0x88): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
ld.lld: error: arch/riscv/kernel/head.o:(.head.text+0xA8): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
ld.lld: error: arch/riscv/kernel/head.o:(.init.text+0x0): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
ld.lld: error: main.c:(.text+0x0): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
ld.lld: error: main.c:(.text+0x74): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
>> ld.lld: error: main.c:(.text+0xE8): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
ld.lld: error: main.c:(.text+0x168): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
ld.lld: error: main.c:(.text+0x33E): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
ld.lld: error: main.c:(.text+0x4E2): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
ld.lld: error: main.c:(.text+0x692): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
ld.lld: error: main.c:(.text+0xA96): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
ld.lld: error: main.c:(.text+0xFD8): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
ld.lld: error: main.c:(.text+0x1526): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
ld.lld: error: main.c:(.text+0x15B4): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
ld.lld: error: main.c:(.text+0x167C): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
ld.lld: error: main.c:(.text+0x1740): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
ld.lld: error: too many errors emitted, stopping now (use -error-limit=0 to see all errors)
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 7 months
Re: [RFC PATCH 02/13] futex2: Add support for shared futexes
by kernel test robot
Hi "André,
[FYI, it's a private test report for your RFC patch.]
[auto build test WARNING on tip/locking/core]
[also build test WARNING on tip/x86/asm arm64/for-next/core tip/perf/core linus/master v5.11]
[cannot apply to next-20210215]
[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/Andr-Almeida/Add-futex2-syscalls...
base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 3765d01bab73bdb920ef711203978f02cd26e4da
config: x86_64-randconfig-s022-20210215 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.3-215-g0fb77bb6-dirty
# https://github.com/0day-ci/linux/commit/d1b45b031c4017655fa7507e130260a54...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Andr-Almeida/Add-futex2-syscalls/20210215-233004
git checkout d1b45b031c4017655fa7507e130260a5419e791b
# save the attached .config to linux build tree
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=x86_64
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 >>)"
kernel/futex2.c:107:21: sparse: sparse: symbol 'futex_table' was not declared. Should it be static?
kernel/futex2.c:108:14: sparse: sparse: symbol 'futex2_hashsize' was not declared. Should it be static?
kernel/futex2.c:354:13: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned long [usertype] address @@
kernel/futex2.c:354:13: sparse: expected void const volatile [noderef] __user *ptr
kernel/futex2.c:354:13: sparse: got unsigned long [usertype] address
>> kernel/futex2.c:513:51: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *uaddr @@ got void * @@
kernel/futex2.c:513:51: sparse: expected void [noderef] __user *uaddr
kernel/futex2.c:513:51: sparse: got void *
kernel/futex2.c:528:45: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected unsigned int [noderef] [usertype] __user *uaddr @@ got unsigned int [usertype] *[assigned] uaddr @@
kernel/futex2.c:528:45: sparse: expected unsigned int [noderef] [usertype] __user *uaddr
kernel/futex2.c:528:45: sparse: got unsigned int [usertype] *[assigned] uaddr
kernel/futex2.c:537:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned int [usertype] *[assigned] uaddr @@
kernel/futex2.c:537:29: sparse: expected void const volatile [noderef] __user *ptr
kernel/futex2.c:537:29: sparse: got unsigned int [usertype] *[assigned] uaddr
vim +513 kernel/futex2.c
456
457 /**
458 * futex_enqueue - Check the value and enqueue a futex on a wait list
459 *
460 * @futexv: List of futexes
461 * @nr_futexes: Number of futexes in the list
462 * @awakened: If a futex was awakened during enqueueing, store the index here
463 *
464 * Get the value from the userspace address and compares with the expected one.
465 *
466 * Getting the value from user futex address:
467 *
468 * Since we are in a hurry, we use a spin lock and we can't sleep.
469 * Try to get the value with page fault disabled (when enable, we might
470 * sleep).
471 *
472 * If we fail, we aren't sure if the address is invalid or is just a
473 * page fault. Then, release the lock (so we can sleep) and try to get
474 * the value with page fault enabled. In order to trigger a page fault
475 * handling, we just call __get_user() again. If we sleep with enqueued
476 * futexes, we might miss a wake, so dequeue everything before sleeping.
477 *
478 * If get_user succeeds, this mean that the address is valid and we do
479 * the work again. Since we just handled the page fault, the page is
480 * likely pinned in memory and we should be luckier this time and be
481 * able to get the value. If we fail anyway, we will try again.
482 *
483 * If even with page faults enabled we get and error, this means that
484 * the address is not valid and we return from the syscall.
485 *
486 * If we got an unexpected value or need to treat a page fault and realized that
487 * a futex was awakened, we can priority this and return success.
488 *
489 * In success, enqueue the futex in the correct bucket
490 *
491 * Return:
492 * * 1 - We were awake in the process and nothing is enqueued
493 * * 0 - Everything is enqueued and we are ready to sleep
494 * * 0< - Something went wrong, nothing is enqueued, return error code
495 */
496 static int futex_enqueue(struct futexv_head *futexv, unsigned int nr_futexes,
497 int *awakened)
498 {
499 int i, ret;
500 bool retry = false;
501 u32 uval, *uaddr, val;
502 struct futex_bucket *bucket;
503
504 retry:
505 set_current_state(TASK_INTERRUPTIBLE);
506
507 for (i = 0; i < nr_futexes; i++) {
508 uaddr = (u32 * __user)futexv->objects[i].uaddr;
509 val = (u32)futexv->objects[i].val;
510
511 if (is_object_shared && retry) {
512 struct futex_bucket *tmp =
> 513 futex_get_bucket((void *)uaddr,
514 &futexv->objects[i].key, true);
515 if (IS_ERR(tmp)) {
516 __set_current_state(TASK_RUNNING);
517 futex_dequeue_multiple(futexv, i);
518 return PTR_ERR(tmp);
519 }
520 futexv->objects[i].bucket = tmp;
521 }
522
523 bucket = futexv->objects[i].bucket;
524
525 bucket_inc_waiters(bucket);
526 spin_lock(&bucket->lock);
527
528 ret = futex_get_user(&uval, uaddr);
529
530 if (unlikely(ret)) {
531 spin_unlock(&bucket->lock);
532
533 bucket_dec_waiters(bucket);
534 __set_current_state(TASK_RUNNING);
535 *awakened = futex_dequeue_multiple(futexv, i);
536
537 if (__get_user(uval, uaddr))
538 return -EFAULT;
539
540 if (*awakened >= 0)
541 return 1;
542
543 retry = true;
544 goto retry;
545 }
546
547 if (uval != val) {
548 spin_unlock(&bucket->lock);
549
550 bucket_dec_waiters(bucket);
551 __set_current_state(TASK_RUNNING);
552 *awakened = futex_dequeue_multiple(futexv, i);
553
554 if (*awakened >= 0)
555 return 1;
556
557 return -EAGAIN;
558 }
559
560 list_add_tail(&futexv->objects[i].list, &bucket->list);
561 spin_unlock(&bucket->lock);
562 }
563
564 return 0;
565 }
566
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 7 months
[sashal-linux-stable:queue-5.4 26/47] kernel/cgroup/cgroup-v1.c:927:12: error: implicit declaration of function 'invalfc'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git queue-5.4
head: 72cf0d8c01acc7aa359dae193ac04980479036f2
commit: 85fb22459cd84a3cee1a1d36a32ba119f7b1c5e7 [26/47] cgroup-v1: add disabled controller check in cgroup1_parse_param()
config: powerpc64-randconfig-r013-20210216 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project c9439ca36342fb6013187d0a69aef92736951476)
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 powerpc64 cross compiling tool for clang build
# apt-get install binutils-powerpc64-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 85fb22459cd84a3cee1a1d36a32ba119f7b1c5e7
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc64
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 >>):
arch/powerpc/include/asm/io-defs.h:45:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
DEF_PCI_AC_NORET(insw, (unsigned long p, void *b, unsigned long c),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/powerpc/include/asm/io.h:602:3: note: expanded from macro 'DEF_PCI_AC_NORET'
__do_##name al; \
^~~~~~~~~~~~~~
<scratch space>:58:1: note: expanded from here
__do_insw
^
arch/powerpc/include/asm/io.h:543:56: note: expanded from macro '__do_insw'
#define __do_insw(p, b, n) readsw((PCI_IO_ADDR)_IO_BASE+(p), (b), (n))
~~~~~~~~~~~~~~~~~~~~~^
In file included from kernel/cgroup/cgroup-v1.c:2:
In file included from kernel/cgroup/cgroup-internal.h:5:
In file included from include/linux/cgroup.h:26:
In file included from include/linux/kernel_stat.h:9:
In file included from include/linux/interrupt.h:11:
In file included from include/linux/hardirq.h:9:
In file included from arch/powerpc/include/asm/hardirq.h:6:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/powerpc/include/asm/io.h:605:
arch/powerpc/include/asm/io-defs.h:47:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
DEF_PCI_AC_NORET(insl, (unsigned long p, void *b, unsigned long c),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/powerpc/include/asm/io.h:602:3: note: expanded from macro 'DEF_PCI_AC_NORET'
__do_##name al; \
^~~~~~~~~~~~~~
<scratch space>:60:1: note: expanded from here
__do_insl
^
arch/powerpc/include/asm/io.h:544:56: note: expanded from macro '__do_insl'
#define __do_insl(p, b, n) readsl((PCI_IO_ADDR)_IO_BASE+(p), (b), (n))
~~~~~~~~~~~~~~~~~~~~~^
In file included from kernel/cgroup/cgroup-v1.c:2:
In file included from kernel/cgroup/cgroup-internal.h:5:
In file included from include/linux/cgroup.h:26:
In file included from include/linux/kernel_stat.h:9:
In file included from include/linux/interrupt.h:11:
In file included from include/linux/hardirq.h:9:
In file included from arch/powerpc/include/asm/hardirq.h:6:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/powerpc/include/asm/io.h:605:
arch/powerpc/include/asm/io-defs.h:49:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
DEF_PCI_AC_NORET(outsb, (unsigned long p, const void *b, unsigned long c),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/powerpc/include/asm/io.h:602:3: note: expanded from macro 'DEF_PCI_AC_NORET'
__do_##name al; \
^~~~~~~~~~~~~~
<scratch space>:62:1: note: expanded from here
__do_outsb
^
arch/powerpc/include/asm/io.h:545:58: note: expanded from macro '__do_outsb'
#define __do_outsb(p, b, n) writesb((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
~~~~~~~~~~~~~~~~~~~~~^
In file included from kernel/cgroup/cgroup-v1.c:2:
In file included from kernel/cgroup/cgroup-internal.h:5:
In file included from include/linux/cgroup.h:26:
In file included from include/linux/kernel_stat.h:9:
In file included from include/linux/interrupt.h:11:
In file included from include/linux/hardirq.h:9:
In file included from arch/powerpc/include/asm/hardirq.h:6:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/powerpc/include/asm/io.h:605:
arch/powerpc/include/asm/io-defs.h:51:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
DEF_PCI_AC_NORET(outsw, (unsigned long p, const void *b, unsigned long c),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/powerpc/include/asm/io.h:602:3: note: expanded from macro 'DEF_PCI_AC_NORET'
__do_##name al; \
^~~~~~~~~~~~~~
<scratch space>:64:1: note: expanded from here
__do_outsw
^
arch/powerpc/include/asm/io.h:546:58: note: expanded from macro '__do_outsw'
#define __do_outsw(p, b, n) writesw((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
~~~~~~~~~~~~~~~~~~~~~^
In file included from kernel/cgroup/cgroup-v1.c:2:
In file included from kernel/cgroup/cgroup-internal.h:5:
In file included from include/linux/cgroup.h:26:
In file included from include/linux/kernel_stat.h:9:
In file included from include/linux/interrupt.h:11:
In file included from include/linux/hardirq.h:9:
In file included from arch/powerpc/include/asm/hardirq.h:6:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/powerpc/include/asm/io.h:605:
arch/powerpc/include/asm/io-defs.h:53:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
DEF_PCI_AC_NORET(outsl, (unsigned long p, const void *b, unsigned long c),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/powerpc/include/asm/io.h:602:3: note: expanded from macro 'DEF_PCI_AC_NORET'
__do_##name al; \
^~~~~~~~~~~~~~
<scratch space>:66:1: note: expanded from here
__do_outsl
^
arch/powerpc/include/asm/io.h:547:58: note: expanded from macro '__do_outsl'
#define __do_outsl(p, b, n) writesl((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
~~~~~~~~~~~~~~~~~~~~~^
>> kernel/cgroup/cgroup-v1.c:927:12: error: implicit declaration of function 'invalfc' [-Werror,-Wimplicit-function-declaration]
return invalfc(fc, "Disabled controller '%s'",
^
6 warnings and 1 error generated.
vim +/invalfc +927 kernel/cgroup/cgroup-v1.c
906
907 int cgroup1_parse_param(struct fs_context *fc, struct fs_parameter *param)
908 {
909 struct cgroup_fs_context *ctx = cgroup_fc2context(fc);
910 struct cgroup_subsys *ss;
911 struct fs_parse_result result;
912 int opt, i;
913
914 opt = fs_parse(fc, &cgroup1_fs_parameters, param, &result);
915 if (opt == -ENOPARAM) {
916 if (strcmp(param->key, "source") == 0) {
917 if (fc->source)
918 return invalf(fc, "Multiple sources not supported");
919 fc->source = param->string;
920 param->string = NULL;
921 return 0;
922 }
923 for_each_subsys(ss, i) {
924 if (strcmp(param->key, ss->legacy_name))
925 continue;
926 if (!cgroup_ssid_enabled(i) || cgroup1_ssid_disabled(i))
> 927 return invalfc(fc, "Disabled controller '%s'",
928 param->key);
929 ctx->subsys_mask |= (1 << i);
930 return 0;
931 }
932 return cg_invalf(fc, "cgroup1: Unknown subsys name '%s'", param->key);
933 }
934 if (opt < 0)
935 return opt;
936
937 switch (opt) {
938 case Opt_none:
939 /* Explicitly have no subsystems */
940 ctx->none = true;
941 break;
942 case Opt_all:
943 ctx->all_ss = true;
944 break;
945 case Opt_noprefix:
946 ctx->flags |= CGRP_ROOT_NOPREFIX;
947 break;
948 case Opt_clone_children:
949 ctx->cpuset_clone_children = true;
950 break;
951 case Opt_cpuset_v2_mode:
952 ctx->flags |= CGRP_ROOT_CPUSET_V2_MODE;
953 break;
954 case Opt_xattr:
955 ctx->flags |= CGRP_ROOT_XATTR;
956 break;
957 case Opt_release_agent:
958 /* Specifying two release agents is forbidden */
959 if (ctx->release_agent)
960 return cg_invalf(fc, "cgroup1: release_agent respecified");
961 ctx->release_agent = param->string;
962 param->string = NULL;
963 break;
964 case Opt_name:
965 /* blocked by boot param? */
966 if (cgroup_no_v1_named)
967 return -ENOENT;
968 /* Can't specify an empty name */
969 if (!param->size)
970 return cg_invalf(fc, "cgroup1: Empty name");
971 if (param->size > MAX_CGROUP_ROOT_NAMELEN - 1)
972 return cg_invalf(fc, "cgroup1: Name too long");
973 /* Must match [\w.-]+ */
974 for (i = 0; i < param->size; i++) {
975 char c = param->string[i];
976 if (isalnum(c))
977 continue;
978 if ((c == '.') || (c == '-') || (c == '_'))
979 continue;
980 return cg_invalf(fc, "cgroup1: Invalid name");
981 }
982 /* Specifying two names is forbidden */
983 if (ctx->name)
984 return cg_invalf(fc, "cgroup1: name respecified");
985 ctx->name = param->string;
986 param->string = NULL;
987 break;
988 }
989 return 0;
990 }
991
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 7 months
[sashal-linux-stable:queue-5.4 26/47] kernel/cgroup/cgroup-v1.c:927:12: error: implicit declaration of function 'invalfc'; 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: 72cf0d8c01acc7aa359dae193ac04980479036f2
commit: 85fb22459cd84a3cee1a1d36a32ba119f7b1c5e7 [26/47] cgroup-v1: add disabled controller check in cgroup1_parse_param()
config: arm64-randconfig-s032-20210216 (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.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-215-g0fb77bb6-dirty
# 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 85fb22459cd84a3cee1a1d36a32ba119f7b1c5e7
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=arm64
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 >>):
kernel/cgroup/cgroup-v1.c: In function 'cgroup1_parse_param':
>> kernel/cgroup/cgroup-v1.c:927:12: error: implicit declaration of function 'invalfc'; did you mean 'invalf'? [-Werror=implicit-function-declaration]
927 | return invalfc(fc, "Disabled controller '%s'",
| ^~~~~~~
| invalf
cc1: some warnings being treated as errors
vim +927 kernel/cgroup/cgroup-v1.c
906
907 int cgroup1_parse_param(struct fs_context *fc, struct fs_parameter *param)
908 {
909 struct cgroup_fs_context *ctx = cgroup_fc2context(fc);
910 struct cgroup_subsys *ss;
911 struct fs_parse_result result;
912 int opt, i;
913
914 opt = fs_parse(fc, &cgroup1_fs_parameters, param, &result);
915 if (opt == -ENOPARAM) {
916 if (strcmp(param->key, "source") == 0) {
917 if (fc->source)
918 return invalf(fc, "Multiple sources not supported");
919 fc->source = param->string;
920 param->string = NULL;
921 return 0;
922 }
923 for_each_subsys(ss, i) {
924 if (strcmp(param->key, ss->legacy_name))
925 continue;
926 if (!cgroup_ssid_enabled(i) || cgroup1_ssid_disabled(i))
> 927 return invalfc(fc, "Disabled controller '%s'",
928 param->key);
929 ctx->subsys_mask |= (1 << i);
930 return 0;
931 }
932 return cg_invalf(fc, "cgroup1: Unknown subsys name '%s'", param->key);
933 }
934 if (opt < 0)
935 return opt;
936
937 switch (opt) {
938 case Opt_none:
939 /* Explicitly have no subsystems */
940 ctx->none = true;
941 break;
942 case Opt_all:
943 ctx->all_ss = true;
944 break;
945 case Opt_noprefix:
946 ctx->flags |= CGRP_ROOT_NOPREFIX;
947 break;
948 case Opt_clone_children:
949 ctx->cpuset_clone_children = true;
950 break;
951 case Opt_cpuset_v2_mode:
952 ctx->flags |= CGRP_ROOT_CPUSET_V2_MODE;
953 break;
954 case Opt_xattr:
955 ctx->flags |= CGRP_ROOT_XATTR;
956 break;
957 case Opt_release_agent:
958 /* Specifying two release agents is forbidden */
959 if (ctx->release_agent)
960 return cg_invalf(fc, "cgroup1: release_agent respecified");
961 ctx->release_agent = param->string;
962 param->string = NULL;
963 break;
964 case Opt_name:
965 /* blocked by boot param? */
966 if (cgroup_no_v1_named)
967 return -ENOENT;
968 /* Can't specify an empty name */
969 if (!param->size)
970 return cg_invalf(fc, "cgroup1: Empty name");
971 if (param->size > MAX_CGROUP_ROOT_NAMELEN - 1)
972 return cg_invalf(fc, "cgroup1: Name too long");
973 /* Must match [\w.-]+ */
974 for (i = 0; i < param->size; i++) {
975 char c = param->string[i];
976 if (isalnum(c))
977 continue;
978 if ((c == '.') || (c == '-') || (c == '_'))
979 continue;
980 return cg_invalf(fc, "cgroup1: Invalid name");
981 }
982 /* Specifying two names is forbidden */
983 if (ctx->name)
984 return cg_invalf(fc, "cgroup1: name respecified");
985 ctx->name = param->string;
986 param->string = NULL;
987 break;
988 }
989 return 0;
990 }
991
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 7 months
[peterz-queue:sched/cleanup 54/54] kernel/rcu/tree.c:1380:5: error: implicit declaration of function 'irq_work_queue_remote'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git sched/cleanup
head: ee09193893ed40f5e3bd2aeb7b7dc8617b8bea36
commit: ee09193893ed40f5e3bd2aeb7b7dc8617b8bea36 [54/54] rcu/tree: Use irq_work_queue_remote()
config: x86_64-randconfig-a005-20210215 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project c9439ca36342fb6013187d0a69aef92736951476)
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/peterz/queue.git/commit/?...
git remote add peterz-queue https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git
git fetch --no-tags peterz-queue sched/cleanup
git checkout ee09193893ed40f5e3bd2aeb7b7dc8617b8bea36
# 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 >>):
>> kernel/rcu/tree.c:1380:5: error: implicit declaration of function 'irq_work_queue_remote' [-Werror,-Wimplicit-function-declaration]
irq_work_queue_remote(rdp->cpu, &rdp->rcu_iw);
^
kernel/rcu/tree.c:1380:5: note: did you mean 'irq_work_queue_on'?
include/linux/irq_work.h:52:6: note: 'irq_work_queue_on' declared here
bool irq_work_queue_on(struct irq_work *work, int cpu);
^
1 error generated.
vim +/irq_work_queue_remote +1380 kernel/rcu/tree.c
1255
1256 /*
1257 * Return true if the specified CPU has passed through a quiescent
1258 * state by virtue of being in or having passed through an dynticks
1259 * idle state since the last call to dyntick_save_progress_counter()
1260 * for this same CPU, or by virtue of having been offline.
1261 */
1262 static int rcu_implicit_dynticks_qs(struct rcu_data *rdp)
1263 {
1264 unsigned long jtsq;
1265 bool *rnhqp;
1266 bool *ruqp;
1267 struct rcu_node *rnp = rdp->mynode;
1268
1269 raw_lockdep_assert_held_rcu_node(rnp);
1270
1271 /*
1272 * If the CPU passed through or entered a dynticks idle phase with
1273 * no active irq/NMI handlers, then we can safely pretend that the CPU
1274 * already acknowledged the request to pass through a quiescent
1275 * state. Either way, that CPU cannot possibly be in an RCU
1276 * read-side critical section that started before the beginning
1277 * of the current RCU grace period.
1278 */
1279 if (rcu_dynticks_in_eqs_since(rdp, rdp->dynticks_snap)) {
1280 trace_rcu_fqs(rcu_state.name, rdp->gp_seq, rdp->cpu, TPS("dti"));
1281 rcu_gpnum_ovf(rnp, rdp);
1282 return 1;
1283 }
1284
1285 /*
1286 * Complain if a CPU that is considered to be offline from RCU's
1287 * perspective has not yet reported a quiescent state. After all,
1288 * the offline CPU should have reported a quiescent state during
1289 * the CPU-offline process, or, failing that, by rcu_gp_init()
1290 * if it ran concurrently with either the CPU going offline or the
1291 * last task on a leaf rcu_node structure exiting its RCU read-side
1292 * critical section while all CPUs corresponding to that structure
1293 * are offline. This added warning detects bugs in any of these
1294 * code paths.
1295 *
1296 * The rcu_node structure's ->lock is held here, which excludes
1297 * the relevant portions the CPU-hotplug code, the grace-period
1298 * initialization code, and the rcu_read_unlock() code paths.
1299 *
1300 * For more detail, please refer to the "Hotplug CPU" section
1301 * of RCU's Requirements documentation.
1302 */
1303 if (WARN_ON_ONCE(!(rdp->grpmask & rcu_rnp_online_cpus(rnp)))) {
1304 bool onl;
1305 struct rcu_node *rnp1;
1306
1307 pr_info("%s: grp: %d-%d level: %d ->gp_seq %ld ->completedqs %ld\n",
1308 __func__, rnp->grplo, rnp->grphi, rnp->level,
1309 (long)rnp->gp_seq, (long)rnp->completedqs);
1310 for (rnp1 = rnp; rnp1; rnp1 = rnp1->parent)
1311 pr_info("%s: %d:%d ->qsmask %#lx ->qsmaskinit %#lx ->qsmaskinitnext %#lx ->rcu_gp_init_mask %#lx\n",
1312 __func__, rnp1->grplo, rnp1->grphi, rnp1->qsmask, rnp1->qsmaskinit, rnp1->qsmaskinitnext, rnp1->rcu_gp_init_mask);
1313 onl = !!(rdp->grpmask & rcu_rnp_online_cpus(rnp));
1314 pr_info("%s %d: %c online: %ld(%d) offline: %ld(%d)\n",
1315 __func__, rdp->cpu, ".o"[onl],
1316 (long)rdp->rcu_onl_gp_seq, rdp->rcu_onl_gp_flags,
1317 (long)rdp->rcu_ofl_gp_seq, rdp->rcu_ofl_gp_flags);
1318 return 1; /* Break things loose after complaining. */
1319 }
1320
1321 /*
1322 * A CPU running for an extended time within the kernel can
1323 * delay RCU grace periods: (1) At age jiffies_to_sched_qs,
1324 * set .rcu_urgent_qs, (2) At age 2*jiffies_to_sched_qs, set
1325 * both .rcu_need_heavy_qs and .rcu_urgent_qs. Note that the
1326 * unsynchronized assignments to the per-CPU rcu_need_heavy_qs
1327 * variable are safe because the assignments are repeated if this
1328 * CPU failed to pass through a quiescent state. This code
1329 * also checks .jiffies_resched in case jiffies_to_sched_qs
1330 * is set way high.
1331 */
1332 jtsq = READ_ONCE(jiffies_to_sched_qs);
1333 ruqp = per_cpu_ptr(&rcu_data.rcu_urgent_qs, rdp->cpu);
1334 rnhqp = &per_cpu(rcu_data.rcu_need_heavy_qs, rdp->cpu);
1335 if (!READ_ONCE(*rnhqp) &&
1336 (time_after(jiffies, rcu_state.gp_start + jtsq * 2) ||
1337 time_after(jiffies, rcu_state.jiffies_resched) ||
1338 rcu_state.cbovld)) {
1339 WRITE_ONCE(*rnhqp, true);
1340 /* Store rcu_need_heavy_qs before rcu_urgent_qs. */
1341 smp_store_release(ruqp, true);
1342 } else if (time_after(jiffies, rcu_state.gp_start + jtsq)) {
1343 WRITE_ONCE(*ruqp, true);
1344 }
1345
1346 /*
1347 * NO_HZ_FULL CPUs can run in-kernel without rcu_sched_clock_irq!
1348 * The above code handles this, but only for straight cond_resched().
1349 * And some in-kernel loops check need_resched() before calling
1350 * cond_resched(), which defeats the above code for CPUs that are
1351 * running in-kernel with scheduling-clock interrupts disabled.
1352 * So hit them over the head with the resched_cpu() hammer!
1353 */
1354 if (tick_nohz_full_cpu(rdp->cpu) &&
1355 (time_after(jiffies, READ_ONCE(rdp->last_fqs_resched) + jtsq * 3) ||
1356 rcu_state.cbovld)) {
1357 WRITE_ONCE(*ruqp, true);
1358 resched_cpu(rdp->cpu);
1359 WRITE_ONCE(rdp->last_fqs_resched, jiffies);
1360 }
1361
1362 /*
1363 * If more than halfway to RCU CPU stall-warning time, invoke
1364 * resched_cpu() more frequently to try to loosen things up a bit.
1365 * Also check to see if the CPU is getting hammered with interrupts,
1366 * but only once per grace period, just to keep the IPIs down to
1367 * a dull roar.
1368 */
1369 if (time_after(jiffies, rcu_state.jiffies_resched)) {
1370 if (time_after(jiffies,
1371 READ_ONCE(rdp->last_fqs_resched) + jtsq)) {
1372 resched_cpu(rdp->cpu);
1373 WRITE_ONCE(rdp->last_fqs_resched, jiffies);
1374 }
1375 if (!rdp->rcu_iw_pending && rdp->rcu_iw_gp_seq != rnp->gp_seq &&
1376 (rnp->ffmask & rdp->grpmask)) {
1377 rdp->rcu_iw_gp_seq = rnp->gp_seq;
1378 if (likely(rdp->cpu != smp_processor_id())) {
1379 rdp->rcu_iw_pending = true;
> 1380 irq_work_queue_remote(rdp->cpu, &rdp->rcu_iw);
1381 }
1382 }
1383 }
1384
1385 return 0;
1386 }
1387
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 7 months
[zen-kernel-zen-kernel:5.11/clearlinux 12/19] kernel/module.c:4537:21: error: invalid use of undefined type 'struct boot_params'
by kernel test robot
tree: https://github.com/zen-kernel/zen-kernel 5.11/clearlinux
head: fede6bb5df1f596da7a69493ea8698cef4b93f68
commit: 54544f9be0f2cca74caa5c23a3a22f28e9d656e2 [12/19] add boot option to allow unsigned modules
config: nios2-allyesconfig (attached as .config)
compiler: nios2-linux-gcc (GCC) 9.3.0
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
# https://github.com/zen-kernel/zen-kernel/commit/54544f9be0f2cca74caa5c23a...
git remote add zen-kernel-zen-kernel https://github.com/zen-kernel/zen-kernel
git fetch --no-tags zen-kernel-zen-kernel 5.11/clearlinux
git checkout 54544f9be0f2cca74caa5c23a3a22f28e9d656e2
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=nios2
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 >>):
kernel/module.c: In function 'proc_modules_init':
>> kernel/module.c:4537:21: error: invalid use of undefined type 'struct boot_params'
4537 | switch (boot_params.secure_boot) {
| ^
kernel/module.c: At top level:
kernel/module.c:4686:6: warning: no previous prototype for 'module_layout' [-Wmissing-prototypes]
4686 | void module_layout(struct module *mod,
| ^~~~~~~~~~~~~
vim +4537 kernel/module.c
4531
4532 static int __init proc_modules_init(void)
4533 {
4534 proc_create("modules", 0, NULL, &modules_proc_ops);
4535
4536 #ifdef CONFIG_MODULE_SIG_FORCE
> 4537 switch (boot_params.secure_boot) {
4538 case efi_secureboot_mode_unset:
4539 case efi_secureboot_mode_unknown:
4540 case efi_secureboot_mode_disabled:
4541 /*
4542 * sig_unenforce is only applied if SecureBoot is not
4543 * enabled.
4544 */
4545 sig_enforce = !sig_unenforce;
4546 }
4547 #endif
4548 return 0;
4549 }
4550 module_init(proc_modules_init);
4551 #endif
4552
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 7 months
[congwang:sockmap1 6/7] include/linux/skmsg.h:475:16: error: assignment of member 'sk_redir' in read-only object
by kernel test robot
tree: https://github.com/congwang/linux.git sockmap1
head: b2dfda210226f6718a7bab6ba27fca4958cf5fde
commit: a2a4da967b9c6fb5571d8cc68866812503806f85 [6/7] fix
config: arm-randconfig-r005-20210215 (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 9.3.0
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
# https://github.com/congwang/linux/commit/a2a4da967b9c6fb5571d8cc688668125...
git remote add congwang https://github.com/congwang/linux.git
git fetch --no-tags congwang sockmap1
git checkout a2a4da967b9c6fb5571d8cc68866812503806f85
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm
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 >>):
In file included from include/net/espintcp.h:6,
from net/ipv4/esp4.c:22:
include/linux/skmsg.h: In function 'skb_bpf_set_ingress':
>> include/linux/skmsg.h:475:16: error: assignment of member 'sk_redir' in read-only object
475 | skb->sk_redir |= BPF_F_INGRESS;
| ^~
include/linux/skmsg.h: In function 'skb_bpf_set_redir':
include/linux/skmsg.h:481:16: error: assignment of member 'sk_redir' in read-only object
481 | skb->sk_redir = (unsigned long)sk_redir;
| ^
include/linux/skmsg.h:483:17: error: assignment of member 'sk_redir' in read-only object
483 | skb->sk_redir |= BPF_F_INGRESS;
| ^~
--
In file included from net/ipv4/tcp_bpf.c:4:
include/linux/skmsg.h: In function 'skb_bpf_set_ingress':
>> include/linux/skmsg.h:475:16: error: assignment of member 'sk_redir' in read-only object
475 | skb->sk_redir |= BPF_F_INGRESS;
| ^~
include/linux/skmsg.h: In function 'skb_bpf_set_redir':
include/linux/skmsg.h:481:16: error: assignment of member 'sk_redir' in read-only object
481 | skb->sk_redir = (unsigned long)sk_redir;
| ^
include/linux/skmsg.h:483:17: error: assignment of member 'sk_redir' in read-only object
483 | skb->sk_redir |= BPF_F_INGRESS;
| ^~
net/ipv4/tcp_bpf.c: In function 'tcp_bpf_rebuild_protos':
net/ipv4/tcp_bpf.c:563:31: error: 'sock_map_unhash' undeclared (first use in this function)
563 | prot[TCP_BPF_BASE].unhash = sock_map_unhash;
| ^~~~~~~~~~~~~~~
net/ipv4/tcp_bpf.c:563:31: note: each undeclared identifier is reported only once for each function it appears in
net/ipv4/tcp_bpf.c:564:30: error: 'sock_map_close' undeclared (first use in this function); did you mean 'sk_msg_clone'?
564 | prot[TCP_BPF_BASE].close = sock_map_close;
| ^~~~~~~~~~~~~~
| sk_msg_clone
--
In file included from net/ipv4/udp_bpf.c:4:
include/linux/skmsg.h: In function 'skb_bpf_set_ingress':
>> include/linux/skmsg.h:475:16: error: assignment of member 'sk_redir' in read-only object
475 | skb->sk_redir |= BPF_F_INGRESS;
| ^~
include/linux/skmsg.h: In function 'skb_bpf_set_redir':
include/linux/skmsg.h:481:16: error: assignment of member 'sk_redir' in read-only object
481 | skb->sk_redir = (unsigned long)sk_redir;
| ^
include/linux/skmsg.h:483:17: error: assignment of member 'sk_redir' in read-only object
483 | skb->sk_redir |= BPF_F_INGRESS;
| ^~
net/ipv4/udp_bpf.c: In function 'udp_bpf_rebuild_protos':
net/ipv4/udp_bpf.c:21:17: error: 'sock_map_unhash' undeclared (first use in this function)
21 | prot->unhash = sock_map_unhash;
| ^~~~~~~~~~~~~~~
net/ipv4/udp_bpf.c:21:17: note: each undeclared identifier is reported only once for each function it appears in
net/ipv4/udp_bpf.c:22:17: error: 'sock_map_close' undeclared (first use in this function); did you mean 'sk_msg_clone'?
22 | prot->close = sock_map_close;
| ^~~~~~~~~~~~~~
| sk_msg_clone
vim +/sk_redir +475 include/linux/skmsg.h
471
472 static inline
473 void skb_bpf_set_ingress(const struct sk_buff *skb)
474 {
> 475 skb->sk_redir |= BPF_F_INGRESS;
476 }
477
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 7 months