diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c index 31e65ea3e1ce027feb876166166a5be1de71d28d..51984cc6cf8fa2f0b6f88d2c467200f013fca427 100644 --- a/drivers/acpi/bus.c +++ b/drivers/acpi/bus.c @@ -1830,16 +1830,19 @@ static int __init acpi_init (void) result = acpi_bus_init(); -#ifdef CONFIG_PM if (!result) { +#ifdef CONFIG_PM if (!PM_IS_ACTIVE()) pm_active = 1; else { printk(KERN_INFO PREFIX "APM is already active, exiting\n"); + acpi_disabled = 1; result = -ENODEV; } - } #endif + } else + acpi_disabled = 1; + return_VALUE(result); } diff --git a/drivers/acpi/debug.c b/drivers/acpi/debug.c index d114b54307eecccbaa0b95025e932c7190469c0b..425068e488301ea930a26a8ba5e04be09d5690c6 100644 --- a/drivers/acpi/debug.c +++ b/drivers/acpi/debug.c @@ -90,6 +90,9 @@ static int __init acpi_debug_init(void) ACPI_FUNCTION_TRACE("acpi_debug_init"); + if (acpi_disabled) + return_VALUE(0); + /* 'debug_layer' [R/W] */ name = ACPI_SYSTEM_FILE_DEBUG_LAYER; entry = create_proc_read_entry(name, S_IFREG|S_IRUGO|S_IWUSR, acpi_root_dir, diff --git a/drivers/acpi/event.c b/drivers/acpi/event.c index c0562a0f545af5e4ba808682d5a60e692649fd4b..619e61f18d7b30b6d99e5de4385434a17649f421 100644 --- a/drivers/acpi/event.c +++ b/drivers/acpi/event.c @@ -122,6 +122,9 @@ static int __init acpi_event_init(void) ACPI_FUNCTION_TRACE("acpi_event_init"); + if (acpi_disabled) + return_VALUE(0); + /* 'event' [R] */ entry = create_proc_entry("event", S_IRUSR, acpi_root_dir); if (entry) diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c index 00ded80ac5bc83f35b4ba30441448e75089c5f3d..3b8b15bad3708d8d4e3792256f2cc20370ee73e1 100644 --- a/drivers/acpi/sleep.c +++ b/drivers/acpi/sleep.c @@ -658,6 +658,9 @@ static int __init acpi_sleep_init(void) ACPI_FUNCTION_TRACE("acpi_system_add_fs"); + if (acpi_disabled) + return_VALUE(0); + printk(KERN_INFO PREFIX "(supports"); for (i=0; i<ACPI_S_STATE_COUNT; i++) { u8 type_a, type_b; diff --git a/drivers/acpi/system.c b/drivers/acpi/system.c index d417a4d71190dcf0753b7e7370484ef1d55f7996..b95d5d1bbdc7780b496be3115be9b0ccb387f985 100644 --- a/drivers/acpi/system.c +++ b/drivers/acpi/system.c @@ -163,6 +163,9 @@ static int __init acpi_system_init (void) ACPI_FUNCTION_TRACE("acpi_system_init"); + if (acpi_disabled) + return_VALUE(0); + /* 'info' [R] */ name = ACPI_SYSTEM_FILE_INFO; entry = create_proc_read_entry(name,