Re: [2.6.23-rc7] main.c: undefined reference to `acpi_sleep_prepare'

From: Alexey Starikovskiy
Date: Sun Sep 23 2007 - 02:41:52 EST


Frans Pop wrote:
> I wanted to test 5a50fe709d527f31 and thus created a config with ACPI and
> CONFIG_HIBERNATION, but without CONFIG_SUSPEND, which resulted in (git
> checkout updated to 1f0cff6e4d579ab0):
>
> GEN .version
> CHK include/linux/compile.h
> UPD include/linux/compile.h
> CC init/version.o
> LD init/built-in.o
> LD .tmp_vmlinux1
> drivers/built-in.o: In function `acpi_power_off_prepare':
> main.c:(.text+0x32282): undefined reference to `acpi_sleep_prepare'
> drivers/built-in.o: In function `acpi_hibernation_prepare':
> main.c:(.text+0x3228c): undefined reference to `acpi_sleep_prepare'
> make[1]: *** [.tmp_vmlinux1] Error 1
> make[1]: Leaving directory `/home/fjp/projects/kernel/linux-2.6'
> make: *** [debian/stamp-build-kernel] Error 2
>
>
yep... acpi_sleep_prepare was put under CONFIG_SUSPEND spanning half of the file...
this patch moves it out.
Thanks,
Alex.
ACPI: suspend: move acpi_sleep_prepare outside of CONFIG_SUSPEND

From: Alexey Starikovskiy <astarikovskiy@xxxxxxx>

Signed-off-by: Alexey Starikovskiy <astarikovskiy@xxxxxxx>
---

drivers/acpi/sleep/main.c | 42 +++++++++++++++++++++---------------------
1 files changed, 21 insertions(+), 21 deletions(-)

diff --git a/drivers/acpi/sleep/main.c b/drivers/acpi/sleep/main.c
index 85633c5..c79edcb 100644
--- a/drivers/acpi/sleep/main.c
+++ b/drivers/acpi/sleep/main.c
@@ -26,6 +26,27 @@ u8 sleep_states[ACPI_S_STATE_COUNT];

static u32 acpi_target_sleep_state = ACPI_STATE_S0;

+int acpi_sleep_prepare(u32 acpi_state)
+{
+#ifdef CONFIG_ACPI_SLEEP
+ /* do we have a wakeup address for S2 and S3? */
+ if (acpi_state == ACPI_STATE_S3) {
+ if (!acpi_wakeup_address) {
+ return -EFAULT;
+ }
+ acpi_set_firmware_waking_vector((acpi_physical_address)
+ virt_to_phys((void *)
+ acpi_wakeup_address));
+
+ }
+ ACPI_FLUSH_CPU_CACHE();
+ acpi_enable_wakeup_device_prep(acpi_state);
+#endif
+ acpi_gpe_sleep_prepare(acpi_state);
+ acpi_enter_sleep_state_prep(acpi_state);
+ return 0;
+}
+
#ifdef CONFIG_SUSPEND
static struct pm_ops acpi_pm_ops;

@@ -60,27 +81,6 @@ static int acpi_pm_set_target(suspend_state_t pm_state)
return error;
}

-int acpi_sleep_prepare(u32 acpi_state)
-{
-#ifdef CONFIG_ACPI_SLEEP
- /* do we have a wakeup address for S2 and S3? */
- if (acpi_state == ACPI_STATE_S3) {
- if (!acpi_wakeup_address) {
- return -EFAULT;
- }
- acpi_set_firmware_waking_vector((acpi_physical_address)
- virt_to_phys((void *)
- acpi_wakeup_address));
-
- }
- ACPI_FLUSH_CPU_CACHE();
- acpi_enable_wakeup_device_prep(acpi_state);
-#endif
- acpi_gpe_sleep_prepare(acpi_state);
- acpi_enter_sleep_state_prep(acpi_state);
- return 0;
-}
-
/**
* acpi_pm_prepare - Do preliminary suspend work.
* @pm_state: ignored