Browse Source

ACPI / Sleep: Free NVS copy if suspending of devices fails

If suspending of devices fails or system suspend is tested in the
"devices" mode, the memory allocated for storing a copy of the ACPI
NVS area will not be freed, because acpi_pm_finish() is not called
in that case.  Fix this by moving the suspend_nvs_free() call to
acpi_pm_end().

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Len Brown <len.brown@intel.com>
Rafael J. Wysocki 15 years ago
parent
commit
e96c4b081d
1 changed files with 1 additions and 1 deletions
  1. 1 1
      drivers/acpi/sleep.c

+ 1 - 1
drivers/acpi/sleep.c

@@ -145,7 +145,6 @@ static void acpi_pm_finish(void)
 {
 {
 	u32 acpi_state = acpi_target_sleep_state;
 	u32 acpi_state = acpi_target_sleep_state;
 
 
-	suspend_nvs_free();
 	acpi_ec_unblock_transactions();
 	acpi_ec_unblock_transactions();
 
 
 	if (acpi_state == ACPI_STATE_S0)
 	if (acpi_state == ACPI_STATE_S0)
@@ -167,6 +166,7 @@ static void acpi_pm_finish(void)
  */
  */
 static void acpi_pm_end(void)
 static void acpi_pm_end(void)
 {
 {
+	suspend_nvs_free();
 	/*
 	/*
 	 * This is necessary in case acpi_pm_finish() is not called during a
 	 * This is necessary in case acpi_pm_finish() is not called during a
 	 * failing transition to a sleep state.
 	 * failing transition to a sleep state.