ACPI: GPE enabling should happen after EC installation
authorAlexey Starikovskiy <astarikovskiy@suse.de>
Tue, 11 Mar 2008 21:17:08 +0000 (17:17 -0400)
committerLen Brown <len.brown@intel.com>
Thu, 24 Apr 2008 23:55:20 +0000 (19:55 -0400)
GPE could try to access EC region, so should not be enabled before
EC is installed

http://bugzilla.kernel.org/show_bug.cgi?id=9916

Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
Signed-off-by: Len Brown <len.brown@intel.com>
drivers/acpi/utilities/utxface.c

index 2d496918b3cda4593d383b36cce08f18e2535253..df41312733c219aaa8fa48b96447f1faeb53183d 100644 (file)
@@ -192,24 +192,6 @@ acpi_status acpi_enable_subsystem(u32 flags)
                }
        }
 
-       /*
-        * Complete the GPE initialization for the GPE blocks defined in the FADT
-        * (GPE block 0 and 1).
-        *
-        * Note1: This is where the _PRW methods are executed for the GPEs. These
-        * methods can only be executed after the SCI and Global Lock handlers are
-        * installed and initialized.
-        *
-        * Note2: Currently, there seems to be no need to run the _REG methods
-        * before execution of the _PRW methods and enabling of the GPEs.
-        */
-       if (!(flags & ACPI_NO_EVENT_INIT)) {
-               status = acpi_ev_install_fadt_gpes();
-               if (ACPI_FAILURE(status)) {
-                       return (status);
-               }
-       }
-
        return_ACPI_STATUS(status);
 }
 
@@ -279,6 +261,23 @@ acpi_status acpi_initialize_objects(u32 flags)
                }
        }
 
+       /*
+        * Complete the GPE initialization for the GPE blocks defined in the FADT
+        * (GPE block 0 and 1).
+        *
+        * Note1: This is where the _PRW methods are executed for the GPEs. These
+        * methods can only be executed after the SCI and Global Lock handlers are
+        * installed and initialized.
+        *
+        * Note2: Currently, there seems to be no need to run the _REG methods
+        * before execution of the _PRW methods and enabling of the GPEs.
+        */
+       if (!(flags & ACPI_NO_EVENT_INIT)) {
+               status = acpi_ev_install_fadt_gpes();
+               if (ACPI_FAILURE(status))
+                       return (status);
+       }
+
        /*
         * Empty the caches (delete the cached objects) on the assumption that
         * the table load filled them up more than they will be at runtime --