All of lore.kernel.org
 help / color / mirror / Atom feed
* [frederic-dynticks:rcu/context-tracking-v4 16/20] kernel/context_tracking.c:124:39: sparse: sparse: incorrect type in initializer (different address spaces)
@ 2022-06-07  7:29 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-06-07  7:29 UTC (permalink / raw)
  To: Frederic Weisbecker; +Cc: kbuild-all, linux-kernel

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git rcu/context-tracking-v4
head:   43ac8196f06d6abb21f28143f62d879546ad262c
commit: ab8851bd9c0f3773a18a2c950047d02ec908e03c [16/20] rcu/context-tracking: Move RCU-dynticks internal functions to context_tracking
config: x86_64-randconfig-s021 (https://download.01.org/0day-ci/archive/20220607/202206071536.jNspPAFL-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-1) 11.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.4-18-g56afb504-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git/commit/?id=ab8851bd9c0f3773a18a2c950047d02ec908e03c
        git remote add frederic-dynticks https://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git
        git fetch --no-tags frederic-dynticks rcu/context-tracking-v4
        git checkout ab8851bd9c0f3773a18a2c950047d02ec908e03c
        # 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 where applicable
Reported-by: kernel test robot <lkp@intel.com>


sparse warnings: (new ones prefixed by >>)
>> kernel/context_tracking.c:124:39: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct context_tracking * @@
   kernel/context_tracking.c:124:39: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/context_tracking.c:124:39: sparse:     got struct context_tracking *
   kernel/context_tracking.c:163:39: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct context_tracking * @@
   kernel/context_tracking.c:163:39: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/context_tracking.c:163:39: sparse:     got struct context_tracking *
   kernel/context_tracking.c:204:39: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct context_tracking * @@
   kernel/context_tracking.c:204:39: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/context_tracking.c:204:39: sparse:     got struct context_tracking *
   kernel/context_tracking.c:259:39: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct context_tracking * @@
   kernel/context_tracking.c:259:39: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/context_tracking.c:259:39: sparse:     got struct context_tracking *
   kernel/context_tracking.c:490:21: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got int * @@
   kernel/context_tracking.c:490:21: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/context_tracking.c:490:21: sparse:     got int *
   kernel/context_tracking.c:495:9: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got int * @@
   kernel/context_tracking.c:495:9: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/context_tracking.c:495:9: sparse:     got int *
   kernel/context_tracking.c:524:14: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got int enum ctx_state * @@
   kernel/context_tracking.c:524:14: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/context_tracking.c:524:14: sparse:     got int enum ctx_state *
   kernel/context_tracking.c:525:21: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got bool * @@
   kernel/context_tracking.c:525:21: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/context_tracking.c:525:21: sparse:     got bool *
   kernel/context_tracking.c:560:17: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got int enum ctx_state * @@
   kernel/context_tracking.c:560:17: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/context_tracking.c:560:17: sparse:     got int enum ctx_state *
   kernel/context_tracking.c:624:13: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got int enum ctx_state * @@
   kernel/context_tracking.c:624:13: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/context_tracking.c:624:13: sparse:     got int enum ctx_state *
   kernel/context_tracking.c:625:21: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got bool * @@
   kernel/context_tracking.c:625:21: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/context_tracking.c:625:21: sparse:     got bool *
   kernel/context_tracking.c:638:17: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got int enum ctx_state * @@
   kernel/context_tracking.c:638:17: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/context_tracking.c:638:17: sparse:     got int enum ctx_state *
   kernel/context_tracking.c:681:14: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got bool * @@
   kernel/context_tracking.c:681:14: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/context_tracking.c:681:14: sparse:     got bool *
   kernel/context_tracking.c:682:17: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got bool * @@
   kernel/context_tracking.c:682:17: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/context_tracking.c:682:17: sparse:     got bool *
   kernel/context_tracking.c:502:9: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got int * @@
   kernel/context_tracking.c:502:9: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/context_tracking.c:502:9: sparse:     got int *
   kernel/context_tracking.c:502:9: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got int * @@
   kernel/context_tracking.c:502:9: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/context_tracking.c:502:9: sparse:     got int *

vim +124 kernel/context_tracking.c

   113	
   114	/*
   115	 * Enter an RCU extended quiescent state, which can be either the
   116	 * idle loop or adaptive-tickless usermode execution.
   117	 *
   118	 * We crowbar the ->dynticks_nmi_nesting field to zero to allow for
   119	 * the possibility of usermode upcalls having messed up our count
   120	 * of interrupt nesting level during the prior busy period.
   121	 */
   122	static void noinstr rcu_eqs_enter(bool user)
   123	{
 > 124		struct context_tracking *ct = this_cpu_ptr(&context_tracking);
   125	
   126		WARN_ON_ONCE(ct_dynticks_nmi_nesting() != DYNTICK_IRQ_NONIDLE);
   127		WRITE_ONCE(ct->dynticks_nmi_nesting, 0);
   128		WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) &&
   129			     ct_dynticks_nesting() == 0);
   130		if (ct_dynticks_nesting() != 1) {
   131			// RCU will still be watching, so just do accounting and leave.
   132			ct->dynticks_nesting--;
   133			return;
   134		}
   135	
   136		instrumentation_begin();
   137		lockdep_assert_irqs_disabled();
   138		trace_rcu_dyntick(TPS("Start"), ct_dynticks_nesting(), 0, ct_dynticks());
   139		WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) && !user && !is_idle_task(current));
   140		rcu_preempt_deferred_qs(current);
   141	
   142		// instrumentation for the noinstr rcu_dynticks_eqs_enter()
   143		instrument_atomic_write(&ct->dynticks, sizeof(ct->dynticks));
   144	
   145		instrumentation_end();
   146		WRITE_ONCE(ct->dynticks_nesting, 0); /* Avoid irq-access tearing. */
   147		// RCU is watching here ...
   148		rcu_dynticks_eqs_enter();
   149		// ... but is no longer watching here.
   150		rcu_dynticks_task_enter();
   151	}
   152	

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-06-07  7:31 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-07  7:29 [frederic-dynticks:rcu/context-tracking-v4 16/20] kernel/context_tracking.c:124:39: sparse: sparse: incorrect type in initializer (different address spaces) kernel test robot

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.