ACPI: call acpi_sleep_proc_init() explicitly rather than as initcall
Bjorn Helgaas [Tue, 24 Mar 2009 22:50:14 +0000 (16:50 -0600)]
This patch makes acpi_init() call acpi_sleep_proc_init() directly.
Previously, acpi_sleep_proc_init() was a late_initcall (sequence 7),
apparently to make sure that the /proc hierarchy already exists:

    2003/02/13 12:38:03-06:00 mochel
    acpi sleep: demote sleep proc file creation.

    - Make acpi_sleep_proc_init() a late_initcall(), and not called from
      acpi_sleep_init(). This guarantees that the acpi proc hierarchy is at
      least there when we create the dang file.

This should no longer be an issue because acpi_bus_init() (called early
in acpi_init()) creates acpi_root_dir (/proc/acpi).

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Len Brown <len.brown@intel.com>

drivers/acpi/bus.c
drivers/acpi/internal.h
drivers/acpi/proc.c

index db9eca8..a812e84 100644 (file)
@@ -885,6 +885,7 @@ static int __init acpi_init(void)
        acpi_power_init();
        acpi_system_init();
        acpi_debug_init();
+       acpi_sleep_proc_init();
        return result;
 }
 
index 8a45dd8..8870e5f 100644 (file)
@@ -33,3 +33,9 @@ int acpi_boot_ec_enable(void);
                                   Suspend/Resume
   -------------------------------------------------------------------------- */
 extern int acpi_sleep_init(void);
+
+#ifdef CONFIG_ACPI_SLEEP
+int acpi_sleep_proc_init(void);
+#else
+static inline int acpi_sleep_proc_init(void) { return 0; }
+#endif
index 428c911..05dfdc9 100644 (file)
@@ -496,11 +496,8 @@ static u32 rtc_handler(void *context)
 }
 #endif                         /* HAVE_ACPI_LEGACY_ALARM */
 
-static int __init acpi_sleep_proc_init(void)
+int __init acpi_sleep_proc_init(void)
 {
-       if (acpi_disabled)
-               return 0;
-
 #ifdef CONFIG_ACPI_PROCFS
        /* 'sleep' [R/W] */
        proc_create("sleep", S_IFREG | S_IRUGO | S_IWUSR,
@@ -527,5 +524,3 @@ static int __init acpi_sleep_proc_init(void)
 
        return 0;
 }
-
-late_initcall(acpi_sleep_proc_init);