The #ifdef currently is guarded against CONFIG_X86, but these are
actually sleep related functions so they should be tied to
CONFIG_ACPI_SLEEP.
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
---
v9->v10:
* split from other patches
---
include/linux/acpi.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index 0d5277b7c6323..13a0fca3539f0 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -1100,7 +1100,7 @@ void acpi_os_set_prepare_extended_sleep(int (*func)(u8 sleep_state,
acpi_status acpi_os_prepare_extended_sleep(u8 sleep_state,
u32 val_a, u32 val_b);
-#ifdef CONFIG_X86
+#if defined(CONFIG_ACPI_SLEEP) && defined(CONFIG_X86)
struct acpi_s2idle_dev_ops {
struct list_head list_node;
void (*prepare)(void);
@@ -1109,7 +1109,7 @@ struct acpi_s2idle_dev_ops {
};
int acpi_register_lps0_dev(struct acpi_s2idle_dev_ops *arg);
void acpi_unregister_lps0_dev(struct acpi_s2idle_dev_ops *arg);
-#endif /* CONFIG_X86 */
+#endif /* CONFIG_ACPI_SLEEP && CONFIG_X86 */
#ifndef CONFIG_IA64
void arch_reserve_mem_area(acpi_physical_address addr, size_t size);
#else
--
2.34.1
On Wed, Aug 09, 2023 at 01:54:46PM -0500, Mario Limonciello wrote:
> The #ifdef currently is guarded against CONFIG_X86, but these are
> actually sleep related functions so they should be tied to
> CONFIG_ACPI_SLEEP.
>
> Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
> ---
> v9->v10:
> * split from other patches
> ---
> include/linux/acpi.h | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/include/linux/acpi.h b/include/linux/acpi.h
> index 0d5277b7c6323..13a0fca3539f0 100644
> --- a/include/linux/acpi.h
> +++ b/include/linux/acpi.h
> @@ -1100,7 +1100,7 @@ void acpi_os_set_prepare_extended_sleep(int (*func)(u8 sleep_state,
>
> acpi_status acpi_os_prepare_extended_sleep(u8 sleep_state,
> u32 val_a, u32 val_b);
> -#ifdef CONFIG_X86
> +#if defined(CONFIG_ACPI_SLEEP) && defined(CONFIG_X86)
What's the connection to CONFIG_ACPI_SLEEP?
The acpi_register_lps0_dev() implementation in
drivers/acpi/x86/s2idle.c is under #ifdef CONFIG_SUSPEND (and
obviously s2idle.c is only compiled at all if CONFIG_X86).
Both callers (amd_pmc_probe() and thinkpad_acpi_module_init()) are
under #ifdef CONFIG_SUSPEND.
> struct acpi_s2idle_dev_ops {
> struct list_head list_node;
> void (*prepare)(void);
> @@ -1109,7 +1109,7 @@ struct acpi_s2idle_dev_ops {
> };
> int acpi_register_lps0_dev(struct acpi_s2idle_dev_ops *arg);
> void acpi_unregister_lps0_dev(struct acpi_s2idle_dev_ops *arg);
> -#endif /* CONFIG_X86 */
> +#endif /* CONFIG_ACPI_SLEEP && CONFIG_X86 */
> #ifndef CONFIG_IA64
> void arch_reserve_mem_area(acpi_physical_address addr, size_t size);
> #else
> --
> 2.34.1
>
On 8/15/2023 13:28, Bjorn Helgaas wrote:
> On Wed, Aug 09, 2023 at 01:54:46PM -0500, Mario Limonciello wrote:
>> The #ifdef currently is guarded against CONFIG_X86, but these are
>> actually sleep related functions so they should be tied to
>> CONFIG_ACPI_SLEEP.
>>
>> Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
>> ---
>> v9->v10:
>> * split from other patches
>> ---
>> include/linux/acpi.h | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/include/linux/acpi.h b/include/linux/acpi.h
>> index 0d5277b7c6323..13a0fca3539f0 100644
>> --- a/include/linux/acpi.h
>> +++ b/include/linux/acpi.h
>> @@ -1100,7 +1100,7 @@ void acpi_os_set_prepare_extended_sleep(int (*func)(u8 sleep_state,
>>
>> acpi_status acpi_os_prepare_extended_sleep(u8 sleep_state,
>> u32 val_a, u32 val_b);
>> -#ifdef CONFIG_X86
>> +#if defined(CONFIG_ACPI_SLEEP) && defined(CONFIG_X86)
>
> What's the connection to CONFIG_ACPI_SLEEP?
>
> The acpi_register_lps0_dev() implementation in
> drivers/acpi/x86/s2idle.c is under #ifdef CONFIG_SUSPEND (and
> obviously s2idle.c is only compiled at all if CONFIG_X86).
>
> Both callers (amd_pmc_probe() and thinkpad_acpi_module_init()) are
> under #ifdef CONFIG_SUSPEND.
>
My thought process was that s2idle.c is from drivers/acpi/x86 and only
can be used in the context of ACPI enabled sleep.
But I could see the argument for CONFIG_SUSPEND being stronger. I'll
adjust and make sure the rest of the series works with CONFIG_SUSPEND.
Thanks,
>> struct acpi_s2idle_dev_ops {
>> struct list_head list_node;
>> void (*prepare)(void);
>> @@ -1109,7 +1109,7 @@ struct acpi_s2idle_dev_ops {
>> };
>> int acpi_register_lps0_dev(struct acpi_s2idle_dev_ops *arg);
>> void acpi_unregister_lps0_dev(struct acpi_s2idle_dev_ops *arg);
>> -#endif /* CONFIG_X86 */
>> +#endif /* CONFIG_ACPI_SLEEP && CONFIG_X86 */
>> #ifndef CONFIG_IA64
>> void arch_reserve_mem_area(acpi_physical_address addr, size_t size);
>> #else
>> --
>> 2.34.1
>>
On Tue, Aug 15, 2023 at 01:32:05PM -0500, Mario Limonciello wrote: > On 8/15/2023 13:28, Bjorn Helgaas wrote: > > On Wed, Aug 09, 2023 at 01:54:46PM -0500, Mario Limonciello wrote: > > > The #ifdef currently is guarded against CONFIG_X86, but these are > > > actually sleep related functions so they should be tied to > > > CONFIG_ACPI_SLEEP. > > > > > > Signed-off-by: Mario Limonciello <mario.limonciello@amd.com> > > > --- > > > v9->v10: > > > * split from other patches > > > --- > > > include/linux/acpi.h | 4 ++-- > > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > > > diff --git a/include/linux/acpi.h b/include/linux/acpi.h > > > index 0d5277b7c6323..13a0fca3539f0 100644 > > > --- a/include/linux/acpi.h > > > +++ b/include/linux/acpi.h > > > @@ -1100,7 +1100,7 @@ void acpi_os_set_prepare_extended_sleep(int (*func)(u8 sleep_state, > > > acpi_status acpi_os_prepare_extended_sleep(u8 sleep_state, > > > u32 val_a, u32 val_b); > > > -#ifdef CONFIG_X86 > > > +#if defined(CONFIG_ACPI_SLEEP) && defined(CONFIG_X86) > > > > What's the connection to CONFIG_ACPI_SLEEP? > > > > The acpi_register_lps0_dev() implementation in > > drivers/acpi/x86/s2idle.c is under #ifdef CONFIG_SUSPEND (and > > obviously s2idle.c is only compiled at all if CONFIG_X86). > > > > Both callers (amd_pmc_probe() and thinkpad_acpi_module_init()) are > > under #ifdef CONFIG_SUSPEND. > > My thought process was that s2idle.c is from drivers/acpi/x86 and only can > be used in the context of ACPI enabled sleep. > > But I could see the argument for CONFIG_SUSPEND being stronger. I'll adjust > and make sure the rest of the series works with CONFIG_SUSPEND. It's very hard to verify that it's correct if the declaration is under a different #ifdef than the implementation, whereas it's trivial if it uses the same #ifdef. Bjorn
© 2016 - 2026 Red Hat, Inc.