diff options
author | Rafael J. Wysocki <rjw@sisk.pl> | 2011-01-19 16:27:55 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-01-20 21:30:17 -0500 |
commit | d551d81d6a720542873f478def60baab6b5df403 (patch) | |
tree | 0abdbd457d8d92ced99048a84b92a067b08d4652 /drivers/acpi | |
parent | 2d6d9fd3a54a28c6f67f26eb6c74803307a1b11e (diff) |
ACPI / PM: Call suspend_nvs_free() earlier during resume
It turns out that some device drivers map pages from the ACPI NVS region
during resume using ioremap(), which conflicts with ioremap_cache() used
for mapping those pages by the NVS save/restore code in nvs.c.
Make the NVS pages mapped by the code in nvs.c be unmapped before device
drivers' resume routines run.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/acpi')
-rw-r--r-- | drivers/acpi/sleep.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c index fdd3aeeb6def..d6a8cd14de2e 100644 --- a/drivers/acpi/sleep.c +++ b/drivers/acpi/sleep.c | |||
@@ -166,6 +166,7 @@ static void acpi_pm_finish(void) | |||
166 | u32 acpi_state = acpi_target_sleep_state; | 166 | u32 acpi_state = acpi_target_sleep_state; |
167 | 167 | ||
168 | acpi_ec_unblock_transactions(); | 168 | acpi_ec_unblock_transactions(); |
169 | suspend_nvs_free(); | ||
169 | 170 | ||
170 | if (acpi_state == ACPI_STATE_S0) | 171 | if (acpi_state == ACPI_STATE_S0) |
171 | return; | 172 | return; |
@@ -186,7 +187,6 @@ static void acpi_pm_finish(void) | |||
186 | */ | 187 | */ |
187 | static void acpi_pm_end(void) | 188 | static void acpi_pm_end(void) |
188 | { | 189 | { |
189 | suspend_nvs_free(); | ||
190 | /* | 190 | /* |
191 | * This is necessary in case acpi_pm_finish() is not called during a | 191 | * This is necessary in case acpi_pm_finish() is not called during a |
192 | * failing transition to a sleep state. | 192 | * failing transition to a sleep state. |