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>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20190423124619.GH3923@linux.ibm.com>
Date:   Tue, 23 Apr 2019 05:46:19 -0700
From:   "Paul E. McKenney" <paulmck@...ux.ibm.com>
To:     kbuild test robot <lkp@...el.com>
Cc:     Sebastian Andrzej Siewior <bigeasy@...utronix.de>,
        kbuild-all@...org, linux-kernel@...r.kernel.org
Subject: Re: [rcu:dev.2019.04.16a 38/72] kernel/rcu/tree.c:2408:36: sparse:
 sparse: incorrect type in initializer (different address spaces)

On Tue, Apr 23, 2019 at 06:33:33PM +0800, kbuild test robot wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev.2019.04.16a
> head:   ca8714f549be5a186d086a223184095759eb7094
> commit: 9a1a31194644dfc6b8f19755ea44ecf84f37cf40 [38/72] rcu: Enable elimination of Tree-RCU softirq processing
> reproduce:
>         # apt-get install sparse
>         git checkout 9a1a31194644dfc6b8f19755ea44ecf84f37cf40
>         make ARCH=x86_64 allmodconfig
>         make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
> 
> If you fix the issue, kindly add following tag
> Reported-by: kbuild test robot <lkp@...el.com>
> 
> 
> 
> sparse warnings: (new ones prefixed by >>)
> 
> >> kernel/rcu/tree.c:2408:36: sparse: sparse: incorrect type in initializer (different address spaces) @@    expected struct task_struct [noderef] <asn:3> **store @@    got struct task_struct [noderef] <asn:3> **store @@

Line 2408 of kernel/rcu/tree.c for commit 9a1a31194644 ("rcu: Enable
elimination of Tree-RCU softirq processing") is this:

	.store			= &rcu_data.rcu_cpu_kthread_task,

So I am having some difficulty understanding this sparse diagnostic.

Help?

							Thanx, Paul

> >> kernel/rcu/tree.c:2408:36: sparse:    expected struct task_struct [noderef] <asn:3> **store
> >> kernel/rcu/tree.c:2408:36: sparse:    got struct task_struct *[noderef] <asn:3> *
>    kernel/rcu/tree.c:3234:13: sparse: sparse: incorrect type in argument 1 (different modifiers) @@    expected int ( *threadfn )( ... ) @@    got int ( [noreint ( *threadfn )( ... ) @@
>    kernel/rcu/tree.c:3234:13: sparse:    expected int ( *threadfn )( ... )
>    kernel/rcu/tree.c:3234:13: sparse:    got int ( [noreturn] * )( ... )
>    kernel/rcu/tree.c:1110:13: sparse: sparse: context imbalance in 'rcu_start_this_gp' - different lock contexts for basic block
>    kernel/rcu/tree.c:1502:9: sparse: sparse: context imbalance in 'rcu_gp_init' - different lock contexts for basic block
>    kernel/rcu/tree.c:2190:9: sparse: sparse: context imbalance in 'force_qs_rnp' - different lock contexts for basic block
>    kernel/rcu/tree.c:2243:25: sparse: sparse: context imbalance in 'rcu_force_quiescent_state' - unexpected unlock
>    kernel/rcu/tree_stall.h:640:9: sparse: sparse: context imbalance in 'rcu_check_gp_start_stall' - different lock contexts for basic block
>    kernel/rcu/tree_exp.h:193:9: sparse: sparse: context imbalance in '__rcu_report_exp_rnp' - different lock contexts for basic block
> 
> vim +2408 kernel/rcu/tree.c
> 
>   2406	
>   2407	static struct smp_hotplug_thread rcu_cpu_thread_spec = {
> > 2408		.store			= &rcu_data.rcu_cpu_kthread_task,
>   2409		.thread_should_run	= rcu_cpu_kthread_should_run,
>   2410		.thread_fn		= rcu_cpu_kthread,
>   2411		.thread_comm		= "rcuc/%u",
>   2412		.setup			= rcu_cpu_kthread_setup,
>   2413		.park			= rcu_cpu_kthread_park,
>   2414	};
>   2415	
> 
> ---
> 0-DAY kernel test infrastructure                Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ