Commit 0e6f76c7 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'pm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6

* 'pm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:
  PM / Hibernate: Fix ioctl SNAPSHOT_S2RAM
  PM / Hibernate: Make snapshot_release() restore GFP mask
  PM: Fix warning in pm_restrict_gfp_mask() during SNAPSHOT_S2RAM ioctl
parents 1d929b7a 36cb7035
...@@ -216,7 +216,6 @@ int suspend_devices_and_enter(suspend_state_t state) ...@@ -216,7 +216,6 @@ int suspend_devices_and_enter(suspend_state_t state)
goto Close; goto Close;
} }
suspend_console(); suspend_console();
pm_restrict_gfp_mask();
suspend_test_start(); suspend_test_start();
error = dpm_suspend_start(PMSG_SUSPEND); error = dpm_suspend_start(PMSG_SUSPEND);
if (error) { if (error) {
...@@ -233,7 +232,6 @@ int suspend_devices_and_enter(suspend_state_t state) ...@@ -233,7 +232,6 @@ int suspend_devices_and_enter(suspend_state_t state)
suspend_test_start(); suspend_test_start();
dpm_resume_end(PMSG_RESUME); dpm_resume_end(PMSG_RESUME);
suspend_test_finish("resume devices"); suspend_test_finish("resume devices");
pm_restore_gfp_mask();
resume_console(); resume_console();
Close: Close:
if (suspend_ops->end) if (suspend_ops->end)
...@@ -294,7 +292,9 @@ int enter_state(suspend_state_t state) ...@@ -294,7 +292,9 @@ int enter_state(suspend_state_t state)
goto Finish; goto Finish;
pr_debug("PM: Entering %s sleep\n", pm_states[state]); pr_debug("PM: Entering %s sleep\n", pm_states[state]);
pm_restrict_gfp_mask();
error = suspend_devices_and_enter(state); error = suspend_devices_and_enter(state);
pm_restore_gfp_mask();
Finish: Finish:
pr_debug("PM: Finishing wakeup.\n"); pr_debug("PM: Finishing wakeup.\n");
......
...@@ -135,8 +135,10 @@ static int snapshot_release(struct inode *inode, struct file *filp) ...@@ -135,8 +135,10 @@ static int snapshot_release(struct inode *inode, struct file *filp)
free_basic_memory_bitmaps(); free_basic_memory_bitmaps();
data = filp->private_data; data = filp->private_data;
free_all_swap_pages(data->swap); free_all_swap_pages(data->swap);
if (data->frozen) if (data->frozen) {
pm_restore_gfp_mask();
thaw_processes(); thaw_processes();
}
pm_notifier_call_chain(data->mode == O_RDONLY ? pm_notifier_call_chain(data->mode == O_RDONLY ?
PM_POST_HIBERNATION : PM_POST_RESTORE); PM_POST_HIBERNATION : PM_POST_RESTORE);
atomic_inc(&snapshot_device_available); atomic_inc(&snapshot_device_available);
...@@ -379,6 +381,7 @@ static long snapshot_ioctl(struct file *filp, unsigned int cmd, ...@@ -379,6 +381,7 @@ static long snapshot_ioctl(struct file *filp, unsigned int cmd,
* PM_HIBERNATION_PREPARE * PM_HIBERNATION_PREPARE
*/ */
error = suspend_devices_and_enter(PM_SUSPEND_MEM); error = suspend_devices_and_enter(PM_SUSPEND_MEM);
data->ready = 0;
break; break;
case SNAPSHOT_PLATFORM_SUPPORT: case SNAPSHOT_PLATFORM_SUPPORT:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment