All of lore.kernel.org
 help / color / mirror / Atom feed
* [paulmckrcu:dev.2025.01.09a 57/60] kernel/rcu/srcutree.c:798:26: sparse: sparse: incorrect type in initializer (different address spaces)
@ 2025-01-14  1:01 kernel test robot
  2025-01-14  5:01 ` Paul E. McKenney
  0 siblings, 1 reply; 2+ messages in thread
From: kernel test robot @ 2025-01-14  1:01 UTC (permalink / raw)
  To: Paul E. McKenney; +Cc: oe-kbuild-all

tree:   https://github.com/paulmckrcu/linux dev.2025.01.09a
head:   a99741861216c54658023bdc01f5ad5ad3330f52
commit: 7a99570b926cb1b906ef0c54613db372f859203e [57/60] fixup! srcu: Pull integer-to-pointer conversion into __srcu_ctr_to_ptr()
config: arc-randconfig-r133-20250114 (https://download.01.org/0day-ci/archive/20250114/202501140806.qLVjWtmq-lkp@intel.com/config)
compiler: arceb-elf-gcc (GCC) 13.2.0
reproduce: (https://download.01.org/0day-ci/archive/20250114/202501140806.qLVjWtmq-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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202501140806.qLVjWtmq-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
   kernel/rcu/srcutree.c:768:9: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got int * @@
   kernel/rcu/srcutree.c:768:9: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/rcu/srcutree.c:768:9: sparse:     got int *
   kernel/rcu/srcutree.c:768:9: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got int * @@
   kernel/rcu/srcutree.c:768:9: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/rcu/srcutree.c:768:9: sparse:     got int *
   kernel/rcu/srcutree.c:768:9: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got int * @@
   kernel/rcu/srcutree.c:768:9: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/rcu/srcutree.c:768:9: sparse:     got int *
   kernel/rcu/srcutree.c:768:9: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got int * @@
   kernel/rcu/srcutree.c:768:9: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/rcu/srcutree.c:768:9: sparse:     got int *
   kernel/rcu/srcutree.c:768:9: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got int * @@
   kernel/rcu/srcutree.c:768:9: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/rcu/srcutree.c:768:9: sparse:     got int *
   kernel/rcu/srcutree.c:786:39: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected struct srcu_ctr [noderef] __percpu *scpp @@     got struct srcu_ctr *scp @@
   kernel/rcu/srcutree.c:786:39: sparse:     expected struct srcu_ctr [noderef] __percpu *scpp
   kernel/rcu/srcutree.c:786:39: sparse:     got struct srcu_ctr *scp
>> kernel/rcu/srcutree.c:798:26: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct srcu_ctr * @@
   kernel/rcu/srcutree.c:798:26: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/rcu/srcutree.c:798:26: sparse:     got struct srcu_ctr *
   kernel/rcu/srcutree.c:371:13: sparse: sparse: context imbalance in 'spin_lock_irqsave_sdp_contention' - wrong count at exit
   kernel/rcu/srcutree.c:389:13: sparse: sparse: context imbalance in 'spin_lock_irqsave_ssp_contention' - wrong count at exit
   kernel/rcu/srcutree.c: note: in included file (through include/linux/srcu.h, include/linux/notifier.h, include/linux/memory_hotplug.h, ...):
   include/linux/srcutree.h:226:36: sparse: sparse: incorrect type in return expression (different address spaces) @@     expected struct srcu_ctr * @@     got struct srcu_ctr [noderef] __percpu * @@
   include/linux/srcutree.h:226:36: sparse:     expected struct srcu_ctr *
   include/linux/srcutree.h:226:36: sparse:     got struct srcu_ctr [noderef] __percpu *
   include/linux/srcutree.h:226:36: sparse: sparse: incorrect type in return expression (different address spaces) @@     expected struct srcu_ctr * @@     got struct srcu_ctr [noderef] __percpu * @@
   include/linux/srcutree.h:226:36: sparse:     expected struct srcu_ctr *
   include/linux/srcutree.h:226:36: sparse:     got struct srcu_ctr [noderef] __percpu *
   include/linux/srcutree.h:226:36: sparse: sparse: incorrect type in return expression (different address spaces) @@     expected struct srcu_ctr * @@     got struct srcu_ctr [noderef] __percpu * @@
   include/linux/srcutree.h:226:36: sparse:     expected struct srcu_ctr *
   include/linux/srcutree.h:226:36: sparse:     got struct srcu_ctr [noderef] __percpu *
   include/linux/srcutree.h:226:36: sparse: sparse: incorrect type in return expression (different address spaces) @@     expected struct srcu_ctr * @@     got struct srcu_ctr [noderef] __percpu * @@
   include/linux/srcutree.h:226:36: sparse:     expected struct srcu_ctr *
   include/linux/srcutree.h:226:36: sparse:     got struct srcu_ctr [noderef] __percpu *
   include/linux/srcutree.h:226:36: sparse: sparse: incorrect type in return expression (different address spaces) @@     expected struct srcu_ctr * @@     got struct srcu_ctr [noderef] __percpu * @@
   include/linux/srcutree.h:226:36: sparse:     expected struct srcu_ctr *
   include/linux/srcutree.h:226:36: sparse:     got struct srcu_ctr [noderef] __percpu *
   kernel/rcu/srcutree.c:1006:9: sparse: sparse: context imbalance in 'srcu_funnel_exp_start' - unexpected unlock
   kernel/rcu/srcutree.c:1095:9: sparse: sparse: context imbalance in 'srcu_funnel_gp_start' - unexpected unlock
   kernel/rcu/srcutree.c:1335:9: sparse: sparse: context imbalance in 'srcu_gp_start_if_needed' - unexpected unlock

vim +798 kernel/rcu/srcutree.c

   789	
   790	/*
   791	 * Removes the count for the old reader from the appropriate per-CPU
   792	 * element of the srcu_struct.  Note that this may well be a different
   793	 * CPU than that which was incremented by the corresponding srcu_read_lock().
   794	 */
   795	void __srcu_read_unlock_nmisafe(struct srcu_struct *ssp, int idx)
   796	{
   797		smp_mb__before_atomic(); /* C */  /* Avoid leaking the critical section. */
 > 798		atomic_long_inc(&raw_cpu_ptr(__srcu_ctr_to_ptr(ssp, idx))->srcu_unlocks);
   799	}
   800	EXPORT_SYMBOL_GPL(__srcu_read_unlock_nmisafe);
   801	

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

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [paulmckrcu:dev.2025.01.09a 57/60] kernel/rcu/srcutree.c:798:26: sparse: sparse: incorrect type in initializer (different address spaces)
  2025-01-14  1:01 [paulmckrcu:dev.2025.01.09a 57/60] kernel/rcu/srcutree.c:798:26: sparse: sparse: incorrect type in initializer (different address spaces) kernel test robot
@ 2025-01-14  5:01 ` Paul E. McKenney
  0 siblings, 0 replies; 2+ messages in thread
From: Paul E. McKenney @ 2025-01-14  5:01 UTC (permalink / raw)
  To: kernel test robot; +Cc: oe-kbuild-all

On Tue, Jan 14, 2025 at 09:01:00AM +0800, kernel test robot wrote:
> tree:   https://github.com/paulmckrcu/linux dev.2025.01.09a
> head:   a99741861216c54658023bdc01f5ad5ad3330f52
> commit: 7a99570b926cb1b906ef0c54613db372f859203e [57/60] fixup! srcu: Pull integer-to-pointer conversion into __srcu_ctr_to_ptr()
> config: arc-randconfig-r133-20250114 (https://download.01.org/0day-ci/archive/20250114/202501140806.qLVjWtmq-lkp@intel.com/config)
> compiler: arceb-elf-gcc (GCC) 13.2.0
> reproduce: (https://download.01.org/0day-ci/archive/20250114/202501140806.qLVjWtmq-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@intel.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202501140806.qLVjWtmq-lkp@intel.com/

I believe that these are fixed in this commit:

fd53a7d046b1 ("srcu: Add SRCU-fast readers"), but I should let you be the
judge of that.  ;-)

Thank you for your testing efforts!

							Thanx, Paul

> sparse warnings: (new ones prefixed by >>)
>    kernel/rcu/srcutree.c:768:9: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got int * @@
>    kernel/rcu/srcutree.c:768:9: sparse:     expected void const [noderef] __percpu *__vpp_verify
>    kernel/rcu/srcutree.c:768:9: sparse:     got int *
>    kernel/rcu/srcutree.c:768:9: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got int * @@
>    kernel/rcu/srcutree.c:768:9: sparse:     expected void const [noderef] __percpu *__vpp_verify
>    kernel/rcu/srcutree.c:768:9: sparse:     got int *
>    kernel/rcu/srcutree.c:768:9: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got int * @@
>    kernel/rcu/srcutree.c:768:9: sparse:     expected void const [noderef] __percpu *__vpp_verify
>    kernel/rcu/srcutree.c:768:9: sparse:     got int *
>    kernel/rcu/srcutree.c:768:9: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got int * @@
>    kernel/rcu/srcutree.c:768:9: sparse:     expected void const [noderef] __percpu *__vpp_verify
>    kernel/rcu/srcutree.c:768:9: sparse:     got int *
>    kernel/rcu/srcutree.c:768:9: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got int * @@
>    kernel/rcu/srcutree.c:768:9: sparse:     expected void const [noderef] __percpu *__vpp_verify
>    kernel/rcu/srcutree.c:768:9: sparse:     got int *
>    kernel/rcu/srcutree.c:786:39: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected struct srcu_ctr [noderef] __percpu *scpp @@     got struct srcu_ctr *scp @@
>    kernel/rcu/srcutree.c:786:39: sparse:     expected struct srcu_ctr [noderef] __percpu *scpp
>    kernel/rcu/srcutree.c:786:39: sparse:     got struct srcu_ctr *scp
> >> kernel/rcu/srcutree.c:798:26: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct srcu_ctr * @@
>    kernel/rcu/srcutree.c:798:26: sparse:     expected void const [noderef] __percpu *__vpp_verify
>    kernel/rcu/srcutree.c:798:26: sparse:     got struct srcu_ctr *
>    kernel/rcu/srcutree.c:371:13: sparse: sparse: context imbalance in 'spin_lock_irqsave_sdp_contention' - wrong count at exit
>    kernel/rcu/srcutree.c:389:13: sparse: sparse: context imbalance in 'spin_lock_irqsave_ssp_contention' - wrong count at exit
>    kernel/rcu/srcutree.c: note: in included file (through include/linux/srcu.h, include/linux/notifier.h, include/linux/memory_hotplug.h, ...):
>    include/linux/srcutree.h:226:36: sparse: sparse: incorrect type in return expression (different address spaces) @@     expected struct srcu_ctr * @@     got struct srcu_ctr [noderef] __percpu * @@
>    include/linux/srcutree.h:226:36: sparse:     expected struct srcu_ctr *
>    include/linux/srcutree.h:226:36: sparse:     got struct srcu_ctr [noderef] __percpu *
>    include/linux/srcutree.h:226:36: sparse: sparse: incorrect type in return expression (different address spaces) @@     expected struct srcu_ctr * @@     got struct srcu_ctr [noderef] __percpu * @@
>    include/linux/srcutree.h:226:36: sparse:     expected struct srcu_ctr *
>    include/linux/srcutree.h:226:36: sparse:     got struct srcu_ctr [noderef] __percpu *
>    include/linux/srcutree.h:226:36: sparse: sparse: incorrect type in return expression (different address spaces) @@     expected struct srcu_ctr * @@     got struct srcu_ctr [noderef] __percpu * @@
>    include/linux/srcutree.h:226:36: sparse:     expected struct srcu_ctr *
>    include/linux/srcutree.h:226:36: sparse:     got struct srcu_ctr [noderef] __percpu *
>    include/linux/srcutree.h:226:36: sparse: sparse: incorrect type in return expression (different address spaces) @@     expected struct srcu_ctr * @@     got struct srcu_ctr [noderef] __percpu * @@
>    include/linux/srcutree.h:226:36: sparse:     expected struct srcu_ctr *
>    include/linux/srcutree.h:226:36: sparse:     got struct srcu_ctr [noderef] __percpu *
>    include/linux/srcutree.h:226:36: sparse: sparse: incorrect type in return expression (different address spaces) @@     expected struct srcu_ctr * @@     got struct srcu_ctr [noderef] __percpu * @@
>    include/linux/srcutree.h:226:36: sparse:     expected struct srcu_ctr *
>    include/linux/srcutree.h:226:36: sparse:     got struct srcu_ctr [noderef] __percpu *
>    kernel/rcu/srcutree.c:1006:9: sparse: sparse: context imbalance in 'srcu_funnel_exp_start' - unexpected unlock
>    kernel/rcu/srcutree.c:1095:9: sparse: sparse: context imbalance in 'srcu_funnel_gp_start' - unexpected unlock
>    kernel/rcu/srcutree.c:1335:9: sparse: sparse: context imbalance in 'srcu_gp_start_if_needed' - unexpected unlock
> 
> vim +798 kernel/rcu/srcutree.c
> 
>    789	
>    790	/*
>    791	 * Removes the count for the old reader from the appropriate per-CPU
>    792	 * element of the srcu_struct.  Note that this may well be a different
>    793	 * CPU than that which was incremented by the corresponding srcu_read_lock().
>    794	 */
>    795	void __srcu_read_unlock_nmisafe(struct srcu_struct *ssp, int idx)
>    796	{
>    797		smp_mb__before_atomic(); /* C */  /* Avoid leaking the critical section. */
>  > 798		atomic_long_inc(&raw_cpu_ptr(__srcu_ctr_to_ptr(ssp, idx))->srcu_unlocks);
>    799	}
>    800	EXPORT_SYMBOL_GPL(__srcu_read_unlock_nmisafe);
>    801	
> 
> -- 
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2025-01-14  5:01 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-14  1:01 [paulmckrcu:dev.2025.01.09a 57/60] kernel/rcu/srcutree.c:798:26: sparse: sparse: incorrect type in initializer (different address spaces) kernel test robot
2025-01-14  5:01 ` Paul E. McKenney

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.