[tip:sched/core 7/13] kernel/sched/core.c:8677:1: sparse: sparse: symbol 'sched_dynamic_mutex' was not declared. Should it be static?

From: kernel test robot
Date: Thu Apr 06 2023 - 11:17:14 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git sched/core
head: d82caa273565b45fcf103148950549af76c314b0
commit: e3ff7c609f39671d1aaff4fb4a8594e14f3e03f8 [7/13] livepatch,sched: Add livepatch task switching to cond_resched()
config: arm64-randconfig-s053-20230406 (https://download.01.org/0day-ci/archive/20230406/202304062335.tNuUjgsl-lkp@xxxxxxxxx/config)
compiler: aarch64-linux-gcc (GCC) 12.1.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.4-39-gce1a6720-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/commit/?id=e3ff7c609f39671d1aaff4fb4a8594e14f3e03f8
git remote add tip https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git
git fetch --no-tags tip sched/core
git checkout e3ff7c609f39671d1aaff4fb4a8594e14f3e03f8
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=arm64 olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=arm64 SHELL=/bin/bash drivers/remoteproc/ kernel/sched/ lib/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Link: https://lore.kernel.org/oe-kbuild-all/202304062335.tNuUjgsl-lkp@xxxxxxxxx/

sparse warnings: (new ones prefixed by >>)
kernel/sched/core.c:791:48: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected struct task_struct *p @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/core.c:791:48: sparse: expected struct task_struct *p
kernel/sched/core.c:791:48: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/core.c:1038:38: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/core.c:1038:38: sparse: expected struct task_struct *curr
kernel/sched/core.c:1038:38: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/core.c:1096:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/core.c:1096:9: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/core.c:1096:9: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/core.c:2202:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct task_struct *p @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/core.c:2202:33: sparse: expected struct task_struct *p
kernel/sched/core.c:2202:33: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/core.c:2202:68: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct task_struct *tsk @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/core.c:2202:68: sparse: expected struct task_struct *tsk
kernel/sched/core.c:2202:68: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/core.c:3674:17: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/core.c:3674:17: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/core.c:3674:17: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/core.c:3881:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct task_struct const *p @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/core.c:3881:28: sparse: expected struct task_struct const *p
kernel/sched/core.c:3881:28: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/core.c:9401:43: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *push_task @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/core.c:9401:43: sparse: expected struct task_struct *push_task
kernel/sched/core.c:9401:43: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/core.c:5582:38: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/core.c:5582:38: sparse: expected struct task_struct *curr
kernel/sched/core.c:5582:38: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/core.c:6536:14: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct task_struct *prev @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/core.c:6536:14: sparse: expected struct task_struct *prev
kernel/sched/core.c:6536:14: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/core.c:7062:17: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/core.c:7062:17: sparse: struct task_struct *
kernel/sched/core.c:7062:17: sparse: struct task_struct [noderef] __rcu *
kernel/sched/core.c:7278:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/core.c:7278:22: sparse: struct task_struct [noderef] __rcu *
kernel/sched/core.c:7278:22: sparse: struct task_struct *
>> kernel/sched/core.c:8677:1: sparse: sparse: symbol 'sched_dynamic_mutex' was not declared. Should it be static?
kernel/sched/core.c:11419:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct task_struct *p @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/core.c:11419:25: sparse: expected struct task_struct *p
kernel/sched/core.c:11419:25: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/core.c:547:6: sparse: sparse: context imbalance in 'raw_spin_rq_lock_nested' - wrong count at exit
kernel/sched/core.c:572:6: sparse: sparse: context imbalance in 'raw_spin_rq_trylock' - wrong count at exit
kernel/sched/core.c:596:6: sparse: sparse: context imbalance in 'raw_spin_rq_unlock' - unexpected unlock
kernel/sched/core.c: note: in included file:
kernel/sched/sched.h:1582:9: sparse: sparse: context imbalance in '__task_rq_lock' - wrong count at exit
kernel/sched/sched.h:1582:9: sparse: sparse: context imbalance in 'task_rq_lock' - wrong count at exit
kernel/sched/core.c: note: in included file:
kernel/sched/pelt.h:97:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct task_struct const *p @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/pelt.h:97:13: sparse: expected struct task_struct const *p
kernel/sched/pelt.h:97:13: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/core.c:791:11: sparse: sparse: dereference of noderef expression
kernel/sched/core.c:2193:33: sparse: sparse: dereference of noderef expression
kernel/sched/core.c:2194:19: sparse: sparse: dereference of noderef expression
kernel/sched/core.c:2195:18: sparse: sparse: dereference of noderef expression
kernel/sched/core.c: note: in included file:
kernel/sched/sched.h:2073:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2073:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2073:25: sparse: struct task_struct *
kernel/sched/sched.h:2235:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2235:9: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2235:9: sparse: struct task_struct *
kernel/sched/core.c:2168:38: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/core.c:2168:38: sparse: struct task_struct [noderef] __rcu *
kernel/sched/core.c:2168:38: sparse: struct task_struct const *
kernel/sched/sched.h:2073:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2073:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2073:25: sparse: struct task_struct *
kernel/sched/sched.h:2235:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2235:9: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2235:9: sparse: struct task_struct *
kernel/sched/sched.h:2235:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2235:9: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2235:9: sparse: struct task_struct *
kernel/sched/sched.h:2073:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2073:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2073:25: sparse: struct task_struct *
kernel/sched/sched.h:2235:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2235:9: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2235:9: sparse: struct task_struct *
kernel/sched/sched.h:2073:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2073:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2073:25: sparse: struct task_struct *
kernel/sched/sched.h:2235:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2235:9: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2235:9: sparse: struct task_struct *
kernel/sched/sched.h:2073:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2073:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2073:25: sparse: struct task_struct *
kernel/sched/sched.h:2235:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2235:9: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2235:9: sparse: struct task_struct *
kernel/sched/sched.h:2073:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2073:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2073:25: sparse: struct task_struct *
kernel/sched/sched.h:2235:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2235:9: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2235:9: sparse: struct task_struct *

vim +/sched_dynamic_mutex +8677 kernel/sched/core.c

8676
> 8677 DEFINE_MUTEX(sched_dynamic_mutex);
8678 static bool klp_override;
8679

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests