kernel test robot <lkp@xxxxxxxxx> writes: > tree: https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git bleeding-edge > head: a70fdf61936ab0200d31bebea4b44bb67454ce07 > commit: 5f5e49e999acd8556e694e841d63226d21e409d9 [47/48] ACPI: processor: Fix CPU0 wakeup in acpi_idle_play_dead() > config: x86_64-randconfig-a013-20210329 (attached as .config) > compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 2a28d1d3b7bf2062288b46af34e33ccc543a99fa) > 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 > # install x86_64 cross compiling tool for clang build > # apt-get install binutils-x86-64-linux-gnu > # https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git/commit/?id=5f5e49e999acd8556e694e841d63226d21e409d9 > git remote add pm https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git > git fetch --no-tags pm bleeding-edge > git checkout 5f5e49e999acd8556e694e841d63226d21e409d9 > # save the attached .config to linux build tree > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 > > If you fix the issue, kindly add following tag as appropriate > Reported-by: kernel test robot <lkp@xxxxxxxxx> > > All errors (new ones prefixed by >>): > >>> drivers/acpi/processor_idle.c:548:7: error: implicit declaration of function 'wakeup_cpu0' [-Werror,-Wimplicit-function-declaration] > if (wakeup_cpu0()) > ^ Sigh, This one is under CONFIG_SMP in arch/x86/include/asm/smp.h >>> drivers/acpi/processor_idle.c:549:4: error: implicit declaration of function 'start_cpu0' [-Werror,-Wimplicit-function-declaration] > start_cpu0(); This one is under CONFIG_HOTPLUG_CPU0 (which obviously depends on CONFIG_SMP) I think we can put the whole block under #ifdef CONFIG_HOTPLUG_CPU0 as it makes zero sense otherwise. I'll send a follow-up patch. > ^ > drivers/acpi/processor_idle.c:1103:12: warning: no previous prototype for function 'acpi_processor_ffh_lpi_probe' [-Wmissing-prototypes] > int __weak acpi_processor_ffh_lpi_probe(unsigned int cpu) > ^ > drivers/acpi/processor_idle.c:1103:1: note: declare 'static' if the function is not intended to be used outside of this translation unit > int __weak acpi_processor_ffh_lpi_probe(unsigned int cpu) > ^ > static > drivers/acpi/processor_idle.c:1108:12: warning: no previous prototype for function 'acpi_processor_ffh_lpi_enter' [-Wmissing-prototypes] > int __weak acpi_processor_ffh_lpi_enter(struct acpi_lpi_state *lpi) > ^ > drivers/acpi/processor_idle.c:1108:1: note: declare 'static' if the function is not intended to be used outside of this translation unit > int __weak acpi_processor_ffh_lpi_enter(struct acpi_lpi_state *lpi) > ^ > static > 2 warnings and 2 errors generated. > > > vim +/wakeup_cpu0 +548 drivers/acpi/processor_idle.c > > 524 > 525 /** > 526 * acpi_idle_play_dead - enters an ACPI state for long-term idle (i.e. off-lining) > 527 * @dev: the target CPU > 528 * @index: the index of suggested state > 529 */ > 530 static int acpi_idle_play_dead(struct cpuidle_device *dev, int index) > 531 { > 532 struct acpi_processor_cx *cx = per_cpu(acpi_cstate[index], dev->cpu); > 533 > 534 ACPI_FLUSH_CPU_CACHE(); > 535 > 536 while (1) { > 537 > 538 if (cx->entry_method == ACPI_CSTATE_HALT) > 539 safe_halt(); > 540 else if (cx->entry_method == ACPI_CSTATE_SYSTEMIO) { > 541 inb(cx->address); > 542 wait_for_freeze(); > 543 } else > 544 return -ENODEV; > 545 > 546 #ifdef CONFIG_X86 > 547 /* If NMI wants to wake up CPU0, start CPU0. */ > > 548 if (wakeup_cpu0()) > > 549 start_cpu0(); > 550 #endif > 551 } > 552 > 553 /* Never reached */ > 554 return 0; > 555 } > 556 > > --- > 0-DAY CI Kernel Test Service, Intel Corporation > https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx -- Vitaly