All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vitaly Kuznetsov <vkuznets@redhat.com>
To: kernel test robot <lkp@intel.com>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>
Cc: kbuild-all@lists.01.org, clang-built-linux@googlegroups.com,
	linux-acpi@vger.kernel.org, devel@acpica.org,
	linux-pm@vger.kernel.org
Subject: Re: [pm:bleeding-edge 47/48] drivers/acpi/processor_idle.c:548:7: error: implicit declaration of function 'wakeup_cpu0'
Date: Tue, 30 Mar 2021 11:43:22 +0200	[thread overview]
Message-ID: <87sg4d9dtx.fsf@vitty.brq.redhat.com> (raw)
In-Reply-To: <202103300806.BOpYVHTe-lkp@intel.com>

kernel test robot <lkp@intel.com> 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@intel.com>
>
> 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@lists.01.org

-- 
Vitaly


WARNING: multiple messages have this Message-ID (diff)
From: Vitaly Kuznetsov <vkuznets@redhat.com>
To: kbuild-all@lists.01.org
Subject: Re: [pm:bleeding-edge 47/48] drivers/acpi/processor_idle.c:548:7: error: implicit declaration of function 'wakeup_cpu0'
Date: Tue, 30 Mar 2021 11:43:22 +0200	[thread overview]
Message-ID: <87sg4d9dtx.fsf@vitty.brq.redhat.com> (raw)
In-Reply-To: <202103300806.BOpYVHTe-lkp@intel.com>

[-- Attachment #1: Type: text/plain, Size: 4338 bytes --]

kernel test robot <lkp@intel.com> 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@intel.com>
>
> 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(a)lists.01.org

-- 
Vitaly

  reply	other threads:[~2021-03-30  9:44 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-30  0:03 [Devel] [pm:bleeding-edge 47/48] drivers/acpi/processor_idle.c:548:7: error: implicit declaration of function 'wakeup_cpu0' kernel test robot
2021-03-30  0:03 ` kernel test robot
2021-03-30  0:03 ` kernel test robot
2021-03-30  9:43 ` Vitaly Kuznetsov [this message]
2021-03-30  9:43   ` Vitaly Kuznetsov
  -- strict thread matches above, loose matches on Subject: below --
2021-03-29 21:45 kernel test robot
2021-03-29 21:45 ` kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87sg4d9dtx.fsf@vitty.brq.redhat.com \
    --to=vkuznets@redhat.com \
    --cc=clang-built-linux@googlegroups.com \
    --cc=devel@acpica.org \
    --cc=kbuild-all@lists.01.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=lkp@intel.com \
    --cc=rjw@rjwysocki.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.