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>] [day] [month] [year] [list]
Date:   Wed, 20 Sep 2017 00:56:02 +0800
From:   kbuild test robot <fengguang.wu@...el.com>
To:     Peter Zijlstra <peterz@...radead.org>
Cc:     kbuild-all@...org, linux-kernel@...r.kernel.org,
        "Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>
Subject: [rcu:dev.2017.09.17a 32/32] kernel/cpu.c:721:6: error:
 'cpuhp_state_down_key' undeclared

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev.2017.09.17a
head:   0cb8379979ad024d4024bd552bb0287d46a19b0c
commit: 0cb8379979ad024d4024bd552bb0287d46a19b0c [32/32] EXP smp/hotplug,lockdep: Annotate cpuhp_state
config: i386-randconfig-x079-201738 (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
        git checkout 0cb8379979ad024d4024bd552bb0287d46a19b0c
        # save the attached .config to linux build tree
        make ARCH=i386 

All errors (new ones prefixed by >>):

   In file included from include/linux/spinlock_types.h:18:0,
                    from include/linux/spinlock.h:81,
                    from include/linux/wait.h:8,
                    from include/linux/wait_bit.h:7,
                    from include/linux/fs.h:5,
                    from include/linux/proc_fs.h:8,
                    from kernel/cpu.c:6:
   kernel/cpu.c: In function '_cpu_down':
>> kernel/cpu.c:721:6: error: 'cpuhp_state_down_key' undeclared (first use in this function)
        &cpuhp_state_down_key, 0);
         ^
   include/linux/lockdep.h:505:29: note: in definition of macro 'lockdep_init_map'
      do { (void)(name); (void)(key); } while (0)
                                ^~~
   kernel/cpu.c:721:6: note: each undeclared identifier is reported only once for each function it appears in
        &cpuhp_state_down_key, 0);
         ^
   include/linux/lockdep.h:505:29: note: in definition of macro 'lockdep_init_map'
      do { (void)(name); (void)(key); } while (0)
                                ^~~
   kernel/cpu.c: In function '_cpu_up':
>> kernel/cpu.c:837:6: error: 'cpuhp_state_up_key' undeclared (first use in this function)
        &cpuhp_state_up_key, 0);
         ^
   include/linux/lockdep.h:505:29: note: in definition of macro 'lockdep_init_map'
      do { (void)(name); (void)(key); } while (0)
                                ^~~

vim +/cpuhp_state_down_key +721 kernel/cpu.c

   703	
   704	/* Requires cpu_add_remove_lock to be held */
   705	static int __ref _cpu_down(unsigned int cpu, int tasks_frozen,
   706				   enum cpuhp_state target)
   707	{
   708		struct cpuhp_cpu_state *st = per_cpu_ptr(&cpuhp_state, cpu);
   709		int prev_state, ret = 0;
   710	
   711		if (num_online_cpus() == 1)
   712			return -EBUSY;
   713	
   714		if (!cpu_present(cpu))
   715			return -EINVAL;
   716	
   717		cpus_write_lock();
   718	
   719		lockdep_reinit_st_done();
   720		lockdep_init_map(&cpuhp_state_lock_map, "cpuhp_state-down",
 > 721				 &cpuhp_state_down_key, 0);
   722	
   723		cpuhp_tasks_frozen = tasks_frozen;
   724	
   725		prev_state = st->state;
   726		st->target = target;
   727		/*
   728		 * If the current CPU state is in the range of the AP hotplug thread,
   729		 * then we need to kick the thread.
   730		 */
   731		if (st->state > CPUHP_TEARDOWN_CPU) {
   732			ret = cpuhp_kick_ap_work(cpu);
   733			/*
   734			 * The AP side has done the error rollback already. Just
   735			 * return the error code..
   736			 */
   737			if (ret)
   738				goto out;
   739	
   740			/*
   741			 * We might have stopped still in the range of the AP hotplug
   742			 * thread. Nothing to do anymore.
   743			 */
   744			if (st->state > CPUHP_TEARDOWN_CPU)
   745				goto out;
   746		}
   747		/*
   748		 * The AP brought itself down to CPUHP_TEARDOWN_CPU. So we need
   749		 * to do the further cleanups.
   750		 */
   751		ret = cpuhp_down_callbacks(cpu, st, target);
   752		if (ret && st->state > CPUHP_TEARDOWN_CPU && st->state < prev_state) {
   753			st->target = prev_state;
   754			st->rollback = true;
   755			cpuhp_kick_ap_work(cpu);
   756		}
   757	
   758	out:
   759		cpus_write_unlock();
   760		return ret;
   761	}
   762	
   763	static int do_cpu_down(unsigned int cpu, enum cpuhp_state target)
   764	{
   765		int err;
   766	
   767		cpu_maps_update_begin();
   768	
   769		if (cpu_hotplug_disabled) {
   770			err = -EBUSY;
   771			goto out;
   772		}
   773	
   774		err = _cpu_down(cpu, 0, target);
   775	
   776	out:
   777		cpu_maps_update_done();
   778		return err;
   779	}
   780	int cpu_down(unsigned int cpu)
   781	{
   782		return do_cpu_down(cpu, CPUHP_OFFLINE);
   783	}
   784	EXPORT_SYMBOL(cpu_down);
   785	
   786	#else
   787	#define takedown_cpu		NULL
   788	#endif /*CONFIG_HOTPLUG_CPU*/
   789	
   790	/**
   791	 * notify_cpu_starting(cpu) - Invoke the callbacks on the starting CPU
   792	 * @cpu: cpu that just started
   793	 *
   794	 * It must be called by the arch code on the new cpu, before the new cpu
   795	 * enables interrupts and before the "boot" cpu returns from __cpu_up().
   796	 */
   797	void notify_cpu_starting(unsigned int cpu)
   798	{
   799		struct cpuhp_cpu_state *st = per_cpu_ptr(&cpuhp_state, cpu);
   800		enum cpuhp_state target = min((int)st->target, CPUHP_AP_ONLINE);
   801	
   802		rcu_cpu_starting(cpu);	/* Enables RCU usage on this CPU. */
   803		while (st->state < target) {
   804			st->state++;
   805			cpuhp_invoke_callback(cpu, st->state, true, NULL);
   806		}
   807	}
   808	
   809	/*
   810	 * Called from the idle task. Wake up the controlling task which brings the
   811	 * stopper and the hotplug thread of the upcoming CPU up and then delegates
   812	 * the rest of the online bringup to the hotplug thread.
   813	 */
   814	void cpuhp_online_idle(enum cpuhp_state state)
   815	{
   816		struct cpuhp_cpu_state *st = this_cpu_ptr(&cpuhp_state);
   817	
   818		/* Happens for the boot cpu */
   819		if (state != CPUHP_AP_ONLINE_IDLE)
   820			return;
   821	
   822		st->state = CPUHP_AP_ONLINE_IDLE;
   823		complete(&st->done);
   824	}
   825	
   826	/* Requires cpu_add_remove_lock to be held */
   827	static int _cpu_up(unsigned int cpu, int tasks_frozen, enum cpuhp_state target)
   828	{
   829		struct cpuhp_cpu_state *st = per_cpu_ptr(&cpuhp_state, cpu);
   830		struct task_struct *idle;
   831		int ret = 0;
   832	
   833		cpus_write_lock();
   834	
   835		lockdep_reinit_st_done();
   836		lockdep_init_map(&cpuhp_state_lock_map, "cpuhp_state-up",
 > 837				 &cpuhp_state_up_key, 0);
   838	
   839		if (!cpu_present(cpu)) {
   840			ret = -EINVAL;
   841			goto out;
   842		}
   843	
   844		/*
   845		 * The caller of do_cpu_up might have raced with another
   846		 * caller. Ignore it for now.
   847		 */
   848		if (st->state >= target)
   849			goto out;
   850	
   851		if (st->state == CPUHP_OFFLINE) {
   852			/* Let it fail before we try to bring the cpu up */
   853			idle = idle_thread_get(cpu);
   854			if (IS_ERR(idle)) {
   855				ret = PTR_ERR(idle);
   856				goto out;
   857			}
   858		}
   859	
   860		cpuhp_tasks_frozen = tasks_frozen;
   861	
   862		st->target = target;
   863		/*
   864		 * If the current CPU state is in the range of the AP hotplug thread,
   865		 * then we need to kick the thread once more.
   866		 */
   867		if (st->state > CPUHP_BRINGUP_CPU) {
   868			ret = cpuhp_kick_ap_work(cpu);
   869			/*
   870			 * The AP side has done the error rollback already. Just
   871			 * return the error code..
   872			 */
   873			if (ret)
   874				goto out;
   875		}
   876	
   877		/*
   878		 * Try to reach the target state. We max out on the BP at
   879		 * CPUHP_BRINGUP_CPU. After that the AP hotplug thread is
   880		 * responsible for bringing it up to the target state.
   881		 */
   882		target = min((int)target, CPUHP_BRINGUP_CPU);
   883		ret = cpuhp_up_callbacks(cpu, st, target);
   884	out:
   885		cpus_write_unlock();
   886		return ret;
   887	}
   888	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Download attachment ".config.gz" of type "application/gzip" (26866 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ