All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org,
	Valentin Schneider <valentin.schneider@arm.com>,
	Daniel Bristot de Oliveira <bristot@redhat.com>
Subject: kernel/sched/core.c:6890:43: sparse: sparse: incorrect type in initializer (different address spaces)
Date: Sun, 24 Apr 2022 04:55:14 +0800	[thread overview]
Message-ID: <202204240435.ZC4wNETv-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   13bc32bad7059d6c5671e9d037e6e3ed001cc0f4
commit: 2558aacff8586699bcd248b406febb28b0a25de2 sched/hotplug: Ensure only per-cpu kthreads run during hotplug
date:   1 year, 5 months ago
config: x86_64-randconfig-s022 (https://download.01.org/0day-ci/archive/20220424/202204240435.ZC4wNETv-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.2.0-20) 11.2.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.4-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2558aacff8586699bcd248b406febb28b0a25de2
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 2558aacff8586699bcd248b406febb28b0a25de2
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=x86_64 SHELL=/bin/bash

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


sparse warnings: (new ones prefixed by >>)
   kernel/sched/core.c:611: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:611:38: sparse:     expected struct task_struct *curr
   kernel/sched/core.c:611:38: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/core.c:666: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:666:9: sparse:     expected struct sched_domain *[assigned] sd
   kernel/sched/core.c:666:9: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/core.c:1693: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:1693:33: sparse:     expected struct task_struct *p
   kernel/sched/core.c:1693:33: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/core.c:1693: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:1693:68: sparse:     expected struct task_struct *tsk
   kernel/sched/core.c:1693:68: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/core.c:2435: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:2435:17: sparse:     expected struct sched_domain *[assigned] sd
   kernel/sched/core.c:2435:17: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/core.c:2627:36: 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:2627:36: sparse:     expected struct task_struct const *p
   kernel/sched/core.c:2627:36: sparse:     got struct task_struct [noderef] __rcu *curr
>> kernel/sched/core.c:6890: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:6890:43: sparse:     expected struct task_struct *push_task
   kernel/sched/core.c:6890:43: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/core.c:4030: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:4030:38: sparse:     expected struct task_struct *curr
   kernel/sched/core.c:4030:38: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/core.c:4115:14: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct task_struct *curr @@     got struct task_struct [noderef] __rcu *curr @@
   kernel/sched/core.c:4115:14: sparse:     expected struct task_struct *curr
   kernel/sched/core.c:4115:14: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/core.c:4463: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:4463:14: sparse:     expected struct task_struct *prev
   kernel/sched/core.c:4463:14: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/core.c:4926:17: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/core.c:4926:17: sparse:    struct task_struct *
   kernel/sched/core.c:4926:17: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/core.c:5128:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/core.c:5128:22: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/core.c:5128:22: sparse:    struct task_struct *
   kernel/sched/core.c:8578: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:8578:25: sparse:     expected struct task_struct *p
   kernel/sched/core.c:8578:25: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/core.c: note: in included file:
   kernel/sched/pelt.h:85: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:85:13: sparse:     expected struct task_struct const *p
   kernel/sched/pelt.h:85:13: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/core.c:1684:33: sparse: sparse: dereference of noderef expression
   kernel/sched/core.c:1685:19: sparse: sparse: dereference of noderef expression
   kernel/sched/core.c:1686:37: sparse: sparse: dereference of noderef expression
   kernel/sched/core.c: note: in included file:
   kernel/sched/sched.h:1703:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:1703:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:1703:25: sparse:    struct task_struct *
   kernel/sched/sched.h:1848:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:1848:9: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:1848:9: sparse:    struct task_struct *
   kernel/sched/sched.h:1854:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:1854:9: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:1854:9: sparse:    struct task_struct *
   kernel/sched/core.c:1659:38: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/core.c:1659:38: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/core.c:1659:38: sparse:    struct task_struct const *
   kernel/sched/sched.h:1703:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:1703:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:1703:25: sparse:    struct task_struct *
   kernel/sched/sched.h:1848:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:1848:9: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:1848:9: sparse:    struct task_struct *
   kernel/sched/sched.h:1848:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:1848:9: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:1848:9: sparse:    struct task_struct *
   kernel/sched/sched.h:1703:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:1703:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:1703:25: sparse:    struct task_struct *
   kernel/sched/sched.h:1848:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:1848:9: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:1848:9: sparse:    struct task_struct *
   kernel/sched/sched.h:1854:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:1854:9: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:1854:9: sparse:    struct task_struct *
   kernel/sched/sched.h:1703:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:1703:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:1703:25: sparse:    struct task_struct *
   kernel/sched/sched.h:1848:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:1848:9: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:1848:9: sparse:    struct task_struct *
   kernel/sched/sched.h:1854:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:1854:9: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:1854:9: sparse:    struct task_struct *
   kernel/sched/sched.h:1703:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:1703:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:1703:25: sparse:    struct task_struct *
   kernel/sched/sched.h:1848:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:1848:9: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:1848:9: sparse:    struct task_struct *
   kernel/sched/sched.h:1854:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:1854:9: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:1854:9: sparse:    struct task_struct *

vim +6890 kernel/sched/core.c

  6884	
  6885	/*
  6886	 * Ensure we only run per-cpu kthreads once the CPU goes !active.
  6887	 */
  6888	static void balance_push(struct rq *rq)
  6889	{
> 6890		struct task_struct *push_task = rq->curr;
  6891	
  6892		lockdep_assert_held(&rq->lock);
  6893		SCHED_WARN_ON(rq->cpu != smp_processor_id());
  6894	
  6895		/*
  6896		 * Both the cpu-hotplug and stop task are in this case and are
  6897		 * required to complete the hotplug process.
  6898		 */
  6899		if (is_per_cpu_kthread(push_task))
  6900			return;
  6901	
  6902		get_task_struct(push_task);
  6903		/*
  6904		 * Temporarily drop rq->lock such that we can wake-up the stop task.
  6905		 * Both preemption and IRQs are still disabled.
  6906		 */
  6907		raw_spin_unlock(&rq->lock);
  6908		stop_one_cpu_nowait(rq->cpu, __balance_push_cpu_stop, push_task,
  6909				    this_cpu_ptr(&push_work));
  6910		/*
  6911		 * At this point need_resched() is true and we'll take the loop in
  6912		 * schedule(). The next pick is obviously going to be the stop task
  6913		 * which is_per_cpu_kthread() and will push this task away.
  6914		 */
  6915		raw_spin_lock(&rq->lock);
  6916	}
  6917	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

             reply	other threads:[~2022-04-23 20:56 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-23 20:55 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2022-04-24 23:27 kernel/sched/core.c:6890:43: sparse: sparse: incorrect type in initializer (different address spaces) kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202204240435.ZC4wNETv-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=bristot@redhat.com \
    --cc=kbuild-all@lists.01.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=peterz@infradead.org \
    --cc=valentin.schneider@arm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.