lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202601131712.6kt0EBmN-lkp@intel.com>
Date: Tue, 13 Jan 2026 18:04:05 +0800
From: kernel test robot <lkp@...el.com>
To: Ingo Molnar <mingo@...nel.org>
Cc: oe-kbuild-all@...ts.linux.dev, linux-kernel@...r.kernel.org
Subject: kernel/sched/topology.c:744:29: sparse: sparse: incorrect
 type in assignment (different address spaces)

Hi Ingo,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   b71e635feefc852405b14620a7fc58c4c80c0f73
commit: cac5cefbade90ff0bb0b393d301fa3b5234cf056 sched/smp: Make SMP unconditional
date:   7 months ago
config: sparc64-randconfig-r112-20260113 (https://download.01.org/0day-ci/archive/20260113/202601131712.6kt0EBmN-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260113/202601131712.6kt0EBmN-lkp@intel.com/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 <lkp@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202601131712.6kt0EBmN-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
   kernel/sched/build_utility.c: note: in included file:
   kernel/sched/debug.c:632: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/debug.c:632:17: sparse:     expected struct sched_domain *[assigned] sd
   kernel/sched/debug.c:632:17: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/debug.c:964:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct task_struct *tsk @@     got struct task_struct [noderef] __rcu *curr @@
   kernel/sched/debug.c:964:9: sparse:     expected struct task_struct *tsk
   kernel/sched/debug.c:964:9: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/debug.c:964:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct task_struct *tsk @@     got struct task_struct [noderef] __rcu *curr @@
   kernel/sched/debug.c:964:9: sparse:     expected struct task_struct *tsk
   kernel/sched/debug.c:964:9: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/build_utility.c: note: in included file:
   kernel/sched/topology.c:115:56: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct sched_domain *sd @@     got struct sched_domain [noderef] __rcu *child @@
   kernel/sched/topology.c:115:56: sparse:     expected struct sched_domain *sd
   kernel/sched/topology.c:115:56: sparse:     got struct sched_domain [noderef] __rcu *child
   kernel/sched/topology.c:134:60: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct sched_domain *sd @@     got struct sched_domain [noderef] __rcu *parent @@
   kernel/sched/topology.c:134:60: sparse:     expected struct sched_domain *sd
   kernel/sched/topology.c:134:60: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/topology.c:157:20: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct sched_domain *sd @@     got struct sched_domain [noderef] __rcu *parent @@
   kernel/sched/topology.c:157:20: sparse:     expected struct sched_domain *sd
   kernel/sched/topology.c:157:20: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/topology.c:468:19: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct perf_domain *pd @@     got struct perf_domain [noderef] __rcu *pd @@
   kernel/sched/topology.c:468:19: sparse:     expected struct perf_domain *pd
   kernel/sched/topology.c:468:19: sparse:     got struct perf_domain [noderef] __rcu *pd
   kernel/sched/topology.c:638:49: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct sched_domain *parent @@     got struct sched_domain [noderef] __rcu *parent @@
   kernel/sched/topology.c:638:49: sparse:     expected struct sched_domain *parent
   kernel/sched/topology.c:638:49: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/topology.c:723:50: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct sched_domain *parent @@     got struct sched_domain [noderef] __rcu *parent @@
   kernel/sched/topology.c:723:50: sparse:     expected struct sched_domain *parent
   kernel/sched/topology.c:723:50: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/topology.c:731:55: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct sched_domain [noderef] __rcu *[noderef] __rcu child @@     got struct sched_domain *[assigned] tmp @@
   kernel/sched/topology.c:731:55: sparse:     expected struct sched_domain [noderef] __rcu *[noderef] __rcu child
   kernel/sched/topology.c:731:55: sparse:     got struct sched_domain *[assigned] tmp
>> kernel/sched/topology.c:744:29: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct sched_domain *[assigned] tmp @@     got struct sched_domain [noderef] __rcu *parent @@
   kernel/sched/topology.c:744:29: sparse:     expected struct sched_domain *[assigned] tmp
   kernel/sched/topology.c:744:29: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/topology.c:749:20: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct sched_domain *sd @@     got struct sched_domain [noderef] __rcu *parent @@
   kernel/sched/topology.c:749:20: sparse:     expected struct sched_domain *sd
   kernel/sched/topology.c:749:20: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/topology.c:770:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct sched_domain *[assigned] tmp @@     got struct sched_domain [noderef] __rcu *sd @@
   kernel/sched/topology.c:770:13: sparse:     expected struct sched_domain *[assigned] tmp
   kernel/sched/topology.c:770:13: sparse:     got struct sched_domain [noderef] __rcu *sd
   kernel/sched/topology.c:932:70: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct sched_domain *sd @@     got struct sched_domain [noderef] __rcu *child @@
   kernel/sched/topology.c:932:70: sparse:     expected struct sched_domain *sd
   kernel/sched/topology.c:932:70: sparse:     got struct sched_domain [noderef] __rcu *child
   kernel/sched/topology.c:961:59: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct sched_domain *sd @@     got struct sched_domain [noderef] __rcu *child @@
   kernel/sched/topology.c:961:59: sparse:     expected struct sched_domain *sd
   kernel/sched/topology.c:961:59: sparse:     got struct sched_domain [noderef] __rcu *child
   kernel/sched/topology.c:1007:57: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct sched_domain *sd @@     got struct sched_domain [noderef] __rcu *child @@
   kernel/sched/topology.c:1007:57: sparse:     expected struct sched_domain *sd
   kernel/sched/topology.c:1007:57: sparse:     got struct sched_domain [noderef] __rcu *child
   kernel/sched/topology.c:1009:25: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct sched_domain *sibling @@     got struct sched_domain [noderef] __rcu *child @@
   kernel/sched/topology.c:1009:25: sparse:     expected struct sched_domain *sibling
   kernel/sched/topology.c:1009:25: sparse:     got struct sched_domain [noderef] __rcu *child
   kernel/sched/topology.c:1017:55: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct sched_domain *sd @@     got struct sched_domain [noderef] __rcu *child @@
   kernel/sched/topology.c:1017:55: sparse:     expected struct sched_domain *sd
   kernel/sched/topology.c:1017:55: sparse:     got struct sched_domain [noderef] __rcu *child
   kernel/sched/topology.c:1019:25: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct sched_domain *sibling @@     got struct sched_domain [noderef] __rcu *child @@
   kernel/sched/topology.c:1019:25: sparse:     expected struct sched_domain *sibling
   kernel/sched/topology.c:1019:25: sparse:     got struct sched_domain [noderef] __rcu *child
   kernel/sched/topology.c:1089:62: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct sched_domain *sd @@     got struct sched_domain [noderef] __rcu *child @@
   kernel/sched/topology.c:1089:62: sparse:     expected struct sched_domain *sd
   kernel/sched/topology.c:1089:62: sparse:     got struct sched_domain [noderef] __rcu *child
   kernel/sched/topology.c:1193:40: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct sched_domain *child @@     got struct sched_domain [noderef] __rcu *child @@
   kernel/sched/topology.c:1193:40: sparse:     expected struct sched_domain *child
   kernel/sched/topology.c:1193:40: sparse:     got struct sched_domain [noderef] __rcu *child
   kernel/sched/topology.c:1677:43: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct sched_domain [noderef] __rcu *child @@     got struct sched_domain *child @@
   kernel/sched/topology.c:1677:43: sparse:     expected struct sched_domain [noderef] __rcu *child
   kernel/sched/topology.c:1677:43: sparse:     got struct sched_domain *child
   kernel/sched/topology.c:2372:31: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct sched_domain [noderef] __rcu *parent @@     got struct sched_domain *sd @@
   kernel/sched/topology.c:2372:31: sparse:     expected struct sched_domain [noderef] __rcu *parent
   kernel/sched/topology.c:2372:31: sparse:     got struct sched_domain *sd
   kernel/sched/topology.c:2491:57: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct sched_domain *[assigned] sd @@     got struct sched_domain [noderef] __rcu *parent @@
   kernel/sched/topology.c:2491:57: sparse:     expected struct sched_domain *[assigned] sd
   kernel/sched/topology.c:2491:57: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/topology.c:2512:56: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct sched_domain *child @@     got struct sched_domain [noderef] __rcu *child @@
   kernel/sched/topology.c:2512:56: sparse:     expected struct sched_domain *child
   kernel/sched/topology.c:2512:56: sparse:     got struct sched_domain [noderef] __rcu *child
   kernel/sched/topology.c:2511:57: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct sched_domain *[assigned] sd @@     got struct sched_domain [noderef] __rcu *parent @@
   kernel/sched/topology.c:2511:57: sparse:     expected struct sched_domain *[assigned] sd
   kernel/sched/topology.c:2511:57: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/topology.c:2566:57: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct sched_domain *[assigned] sd @@     got struct sched_domain [noderef] __rcu *parent @@
   kernel/sched/topology.c:2566:57: sparse:     expected struct sched_domain *[assigned] sd
   kernel/sched/topology.c:2566:57: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/build_utility.c: note: in included file:
   kernel/sched/build_utility.c: note: in included file:
   kernel/sched/sched.h:2239:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2239:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2239:25: sparse:    struct task_struct *

vim +744 kernel/sched/topology.c

f2cb13609d5397 Ingo Molnar    2017-02-01  710  
f2cb13609d5397 Ingo Molnar    2017-02-01  711  /*
f2cb13609d5397 Ingo Molnar    2017-02-01  712   * Attach the domain 'sd' to 'cpu' as its base domain. Callers must
f2cb13609d5397 Ingo Molnar    2017-02-01  713   * hold the hotplug lock.
f2cb13609d5397 Ingo Molnar    2017-02-01  714   */
f2cb13609d5397 Ingo Molnar    2017-02-01  715  static void
f2cb13609d5397 Ingo Molnar    2017-02-01  716  cpu_attach_domain(struct sched_domain *sd, struct root_domain *rd, int cpu)
f2cb13609d5397 Ingo Molnar    2017-02-01  717  {
f2cb13609d5397 Ingo Molnar    2017-02-01  718  	struct rq *rq = cpu_rq(cpu);
f2cb13609d5397 Ingo Molnar    2017-02-01  719  	struct sched_domain *tmp;
f2cb13609d5397 Ingo Molnar    2017-02-01  720  
f2cb13609d5397 Ingo Molnar    2017-02-01  721  	/* Remove the sched domains which do not contribute to scheduling. */
f2cb13609d5397 Ingo Molnar    2017-02-01  722  	for (tmp = sd; tmp; ) {
f2cb13609d5397 Ingo Molnar    2017-02-01  723  		struct sched_domain *parent = tmp->parent;
f2cb13609d5397 Ingo Molnar    2017-02-01  724  		if (!parent)
f2cb13609d5397 Ingo Molnar    2017-02-01  725  			break;
f2cb13609d5397 Ingo Molnar    2017-02-01  726  
f2cb13609d5397 Ingo Molnar    2017-02-01  727  		if (sd_parent_degenerate(tmp, parent)) {
f2cb13609d5397 Ingo Molnar    2017-02-01  728  			tmp->parent = parent->parent;
bf2dc42d6beb89 Tim C Chen     2023-05-04  729  
bf2dc42d6beb89 Tim C Chen     2023-05-04  730  			if (parent->parent) {
f2cb13609d5397 Ingo Molnar    2017-02-01  731  				parent->parent->child = tmp;
4efcc8bc7e08c0 Chen Yu        2023-07-13  732  				parent->parent->groups->flags = tmp->flags;
bf2dc42d6beb89 Tim C Chen     2023-05-04  733  			}
bf2dc42d6beb89 Tim C Chen     2023-05-04  734  
f2cb13609d5397 Ingo Molnar    2017-02-01  735  			/*
f2cb13609d5397 Ingo Molnar    2017-02-01  736  			 * Transfer SD_PREFER_SIBLING down in case of a
f2cb13609d5397 Ingo Molnar    2017-02-01  737  			 * degenerate parent; the spans match for this
f2cb13609d5397 Ingo Molnar    2017-02-01  738  			 * so the property transfers.
f2cb13609d5397 Ingo Molnar    2017-02-01  739  			 */
f2cb13609d5397 Ingo Molnar    2017-02-01  740  			if (parent->flags & SD_PREFER_SIBLING)
f2cb13609d5397 Ingo Molnar    2017-02-01  741  				tmp->flags |= SD_PREFER_SIBLING;
f2cb13609d5397 Ingo Molnar    2017-02-01  742  			destroy_sched_domain(parent);
f2cb13609d5397 Ingo Molnar    2017-02-01  743  		} else
f2cb13609d5397 Ingo Molnar    2017-02-01 @744  			tmp = tmp->parent;
f2cb13609d5397 Ingo Molnar    2017-02-01  745  	}
f2cb13609d5397 Ingo Molnar    2017-02-01  746  
f2cb13609d5397 Ingo Molnar    2017-02-01  747  	if (sd && sd_degenerate(sd)) {
f2cb13609d5397 Ingo Molnar    2017-02-01  748  		tmp = sd;
f2cb13609d5397 Ingo Molnar    2017-02-01  749  		sd = sd->parent;
f2cb13609d5397 Ingo Molnar    2017-02-01  750  		destroy_sched_domain(tmp);
16d364ba6ef2aa Ricardo Neri   2021-09-10  751  		if (sd) {
16d364ba6ef2aa Ricardo Neri   2021-09-10  752  			struct sched_group *sg = sd->groups;
16d364ba6ef2aa Ricardo Neri   2021-09-10  753  
16d364ba6ef2aa Ricardo Neri   2021-09-10  754  			/*
16d364ba6ef2aa Ricardo Neri   2021-09-10  755  			 * sched groups hold the flags of the child sched
16d364ba6ef2aa Ricardo Neri   2021-09-10  756  			 * domain for convenience. Clear such flags since
16d364ba6ef2aa Ricardo Neri   2021-09-10  757  			 * the child is being destroyed.
16d364ba6ef2aa Ricardo Neri   2021-09-10  758  			 */
16d364ba6ef2aa Ricardo Neri   2021-09-10  759  			do {
16d364ba6ef2aa Ricardo Neri   2021-09-10  760  				sg->flags = 0;
16d364ba6ef2aa Ricardo Neri   2021-09-10  761  			} while (sg != sd->groups);
16d364ba6ef2aa Ricardo Neri   2021-09-10  762  
f2cb13609d5397 Ingo Molnar    2017-02-01  763  			sd->child = NULL;
f2cb13609d5397 Ingo Molnar    2017-02-01  764  		}
16d364ba6ef2aa Ricardo Neri   2021-09-10  765  	}
f2cb13609d5397 Ingo Molnar    2017-02-01  766  
f2cb13609d5397 Ingo Molnar    2017-02-01  767  	sched_domain_debug(sd, cpu);
f2cb13609d5397 Ingo Molnar    2017-02-01  768  
f2cb13609d5397 Ingo Molnar    2017-02-01  769  	rq_attach_root(rq, rd);
f2cb13609d5397 Ingo Molnar    2017-02-01  770  	tmp = rq->sd;
f2cb13609d5397 Ingo Molnar    2017-02-01  771  	rcu_assign_pointer(rq->sd, sd);
bbdacdfed2f5fa Peter Zijlstra 2017-08-10  772  	dirty_sched_domain_sysctl(cpu);
f2cb13609d5397 Ingo Molnar    2017-02-01  773  	destroy_sched_domains(tmp);
f2cb13609d5397 Ingo Molnar    2017-02-01  774  
f2cb13609d5397 Ingo Molnar    2017-02-01  775  	update_top_cache_domain(cpu);
f2cb13609d5397 Ingo Molnar    2017-02-01  776  }
f2cb13609d5397 Ingo Molnar    2017-02-01  777  

:::::: The code at line 744 was first introduced by commit
:::::: f2cb13609d5397cdd747f3ed6fb651233851717d sched/topology: Split out scheduler topology code from core.c into topology.c

:::::: TO: Ingo Molnar <mingo@...nel.org>
:::::: CC: Ingo Molnar <mingo@...nel.org>

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ