[android-common:android17-6.18-kminext 0/18] kernel/sched/fair.c:8997:14: sparse: sparse: incorrect type in assignment (different address spaces)

kernel test robot <[email protected]>
Newsgroups dev.linux.lists.oe-kbuild-all
Message-ID <[email protected]>
tree:   https://android.googlesource.com/kernel/common android17-6.18-kminext
head:   e90350ec69a7f156c6eda15a13e6671cd731749d
commit: c5c86c524cdc66dfa5514855826d380b85ce7abd [0/18] FROMLIST: sched: Rework pick_next_task() and prev_balance() to avoid stale prev references
config: x86_64-randconfig-122-20260822 (https://download.01.org/0day-ci/archive/20260822/[email protected]/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260822/[email protected]/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <[email protected]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/

sparse warnings: (new ones prefixed by >>)
   kernel/sched/fair.c:1213:49: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct task_struct *running @@     got struct task_struct [noderef] __rcu *curr @@
   kernel/sched/fair.c:1213:49: sparse:     expected struct task_struct *running
   kernel/sched/fair.c:1213:49: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/fair.c:1247:33: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected struct sched_entity *se @@     got struct sched_entity [noderef] __rcu * @@
   kernel/sched/fair.c:1247:33: sparse:     expected struct sched_entity *se
   kernel/sched/fair.c:1247:33: sparse:     got struct sched_entity [noderef] __rcu *
   kernel/sched/fair.c:1305:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct sched_entity const *se @@     got struct sched_entity [noderef] __rcu * @@
   kernel/sched/fair.c:1305:34: sparse:     expected struct sched_entity const *se
   kernel/sched/fair.c:1305:34: sparse:     got struct sched_entity [noderef] __rcu *
   kernel/sched/fair.c:13025: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/fair.c:13025:9: sparse:     expected struct sched_domain *[assigned] sd
   kernel/sched/fair.c:13025:9: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/fair.c:7092:58: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected struct task_struct *p @@     got struct task_struct [noderef] __rcu *curr @@
   kernel/sched/fair.c:7092:58: sparse:     expected struct task_struct *p
   kernel/sched/fair.c:7092:58: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/fair.c:8494:20: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct sched_domain *[assigned] sd @@     got struct sched_domain [noderef] __rcu *parent @@
   kernel/sched/fair.c:8494:20: sparse:     expected struct sched_domain *[assigned] sd
   kernel/sched/fair.c:8494:20: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/fair.c:8707:9: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct sched_domain *[assigned] tmp @@     got struct sched_domain [noderef] __rcu *parent @@
   kernel/sched/fair.c:8707:9: sparse:     expected struct sched_domain *[assigned] tmp
   kernel/sched/fair.c:8707:9: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/fair.c:8849:39: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct task_struct *donor @@     got struct task_struct [noderef] __rcu *donor @@
   kernel/sched/fair.c:8849:39: sparse:     expected struct task_struct *donor
   kernel/sched/fair.c:8849:39: sparse:     got struct task_struct [noderef] __rcu *donor
   kernel/sched/fair.c:8883:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct task_struct *tsk @@     got struct task_struct [noderef] __rcu *curr @@
   kernel/sched/fair.c:8883:37: sparse:     expected struct task_struct *tsk
   kernel/sched/fair.c:8883:37: sparse:     got struct task_struct [noderef] __rcu *curr
>> kernel/sched/fair.c:8997:14: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct task_struct *prev @@     got struct task_struct [noderef] __rcu *donor @@
   kernel/sched/fair.c:8997:14: sparse:     expected struct task_struct *prev
   kernel/sched/fair.c:8997:14: sparse:     got struct task_struct [noderef] __rcu *donor
   kernel/sched/fair.c:9117:38: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct task_struct *curr @@     got struct task_struct [noderef] __rcu *donor @@
   kernel/sched/fair.c:9117:38: sparse:     expected struct task_struct *curr
   kernel/sched/fair.c:9117:38: sparse:     got struct task_struct [noderef] __rcu *donor
   kernel/sched/fair.c:10176:40: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct sched_domain *child @@     got struct sched_domain [noderef] __rcu *child @@
   kernel/sched/fair.c:10176:40: sparse:     expected struct sched_domain *child
   kernel/sched/fair.c:10176:40: sparse:     got struct sched_domain [noderef] __rcu *child
   kernel/sched/fair.c:10804:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/fair.c:10804:22: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/fair.c:10804:22: sparse:    struct task_struct *
   kernel/sched/fair.c:12257: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/fair.c:12257:9: sparse:     expected struct sched_domain *[assigned] sd
   kernel/sched/fair.c:12257:9: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/fair.c:11906:44: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct sched_domain *sd_parent @@     got struct sched_domain [noderef] __rcu *parent @@
   kernel/sched/fair.c:11906:44: sparse:     expected struct sched_domain *sd_parent
   kernel/sched/fair.c:11906:44: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/fair.c:12371: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/fair.c:12371:9: sparse:     expected struct sched_domain *[assigned] sd
   kernel/sched/fair.c:12371:9: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/fair.c:6796:35: sparse: sparse: marked inline, but without a definition
   kernel/sched/fair.c: note: in included file:
   kernel/sched/sched.h:2532:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2532:9: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2532:9: sparse:    struct task_struct *
   kernel/sched/sched.h:2321:26: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2321:26: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2321:26: sparse:    struct task_struct *
   kernel/sched/sched.h:2310:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2310:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2310:25: sparse:    struct task_struct *
   kernel/sched/sched.h:2321:26: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2321:26: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2321:26: sparse:    struct task_struct *
   kernel/sched/sched.h:2321:26: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2321:26: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2321:26: sparse:    struct task_struct *
   kernel/sched/sched.h:2321:26: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2321:26: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2321:26: sparse:    struct task_struct *

vim +8997 kernel/sched/fair.c

  8984	
  8985	struct task_struct *
  8986	pick_next_task_fair(struct rq *rq, struct rq_flags *rf)
  8987	{
  8988		struct sched_entity *se;
  8989		struct task_struct *p, *prev;
  8990		int new_tasks;
  8991	
  8992	again:
  8993		/*
  8994		 * Re-read rq->donor at the top as it may have
  8995		 * changed across a rq lock drop
  8996		 */
> 8997		prev = rq->donor;
  8998		p = pick_task_fair(rq);
  8999		trace_android_rvh_replace_next_task_fair(rq, &p, prev);
  9000	
  9001		if (!p)
  9002			goto idle;
  9003		se = &p->se;
  9004	

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.