Re: [PATCH v11 2/9] ACPI: Adjust #ifdef for *_lps0_dev use

From: Mario Limonciello
Date: Tue Aug 15 2023 - 14:33:10 EST


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@xxxxxxx>
---
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