Re: [rcu:dev.2021.07.27b 33/57] kernel/cpu.c:155:6: error: conflicting types for 'cpu_hp_check_delay'

From: Paul E. McKenney
Date: Tue Aug 03 2021 - 16:31:15 EST


On Wed, Aug 04, 2021 at 03:32:04AM +0800, kernel test robot wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev.2021.07.27b
> head: 11e66439ec35a4e59ab0bafdc33b56f395cc3b49
> commit: b2bdd2a98b4b3b955b4f226cea37372ec04874af [33/57] EXP cpu: Add yet more CPU-hotplug progress debugging code
> config: arc-allyesconfig (attached as .config)
> compiler: arceb-elf-gcc (GCC) 10.3.0
> reproduce (this is a W=1 build):
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git/commit/?id=b2bdd2a98b4b3b955b4f226cea37372ec04874af
> git remote add rcu https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git
> git fetch --no-tags rcu dev.2021.07.27b
> git checkout b2bdd2a98b4b3b955b4f226cea37372ec04874af
> # save the attached .config to linux build tree
> mkdir build_dir
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-10.3.0 make.cross O=build_dir ARCH=arc SHELL=/bin/bash
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@xxxxxxxxx>

This is in experimental code that is not to be mainlined, but may as
well fix it. Does the patch below do it for you?

Thanx, Paul

------------------------------------------------------------------------

commit fb843d5528f5b743729424561673203a71dd71de
Author: Paul E. McKenney <paulmck@xxxxxxxxxx>
Date: Tue Aug 3 13:29:03 2021 -0700

EXP cpu: Correctly place cpu_hp_start_now declarations

Reported-by: kernel test robot <lkp@xxxxxxxxx>
Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxx>

diff --git a/include/linux/cpu.h b/include/linux/cpu.h
index 93b9a28ea2bcd..143e5c445068b 100644
--- a/include/linux/cpu.h
+++ b/include/linux/cpu.h
@@ -88,6 +88,7 @@ extern ssize_t arch_cpu_release(const char *, size_t);
#define CPU_BROKEN 0x000B /* CPU did not die properly */

#ifdef CONFIG_SMP
+extern void cpu_hp_start_now(void);
extern bool cpuhp_tasks_frozen;
int add_cpu(unsigned int cpu);
int cpu_device_up(struct device *dev);
@@ -98,6 +99,7 @@ int bringup_hibernate_cpu(unsigned int sleep_cpu);
void bringup_nonboot_cpus(unsigned int setup_max_cpus);

#else /* CONFIG_SMP */
+static inline void cpu_hp_start_now(void) { }
#define cpuhp_tasks_frozen 0

static inline void cpu_maps_update_begin(void)
@@ -128,7 +130,6 @@ void clear_tasks_mm_cpumask(int cpu);
int remove_cpu(unsigned int cpu);
int cpu_device_down(struct device *dev);
extern void smp_shutdown_nonboot_cpus(unsigned int primary_cpu);
-extern void cpu_hp_start_now(void);
extern void cpu_hp_stop_now(void);
extern bool cpu_hp_check_delay(const char *s, const void *func);

@@ -144,7 +145,6 @@ static inline void cpu_hotplug_disable(void) { }
static inline void cpu_hotplug_enable(void) { }
static inline int remove_cpu(unsigned int cpu) { return -EPERM; }
static inline void smp_shutdown_nonboot_cpus(unsigned int primary_cpu) { }
-static inline void cpu_hp_start_now(void) { }
static inline void cpu_hp_stop_now(void) { }
static inline bool cpu_hp_check_delay(const char *s, void *func) { return false; }
#endif /* !CONFIG_HOTPLUG_CPU */