[<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