diff options
| author | David S. Miller <davem@davemloft.net> | 2012-02-04 16:39:32 -0500 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2012-02-04 16:39:32 -0500 |
| commit | dd48dc34fe7639a8b2e22d8b609672f5f81aa7cb (patch) | |
| tree | f16ace0ae09edab16bf6d0be9e8280dfbb7100da /kernel/power/user.c | |
| parent | 8d9eb069eafce49307f839783e4a4673414b1fd5 (diff) | |
| parent | 5962b35c1de3254a2f03b95efd3b7854b874d7b7 (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Diffstat (limited to 'kernel/power/user.c')
| -rw-r--r-- | kernel/power/user.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/kernel/power/user.c b/kernel/power/user.c index 6b1ab7a88522..e5a21a857302 100644 --- a/kernel/power/user.c +++ b/kernel/power/user.c @@ -274,6 +274,15 @@ static long snapshot_ioctl(struct file *filp, unsigned int cmd, swsusp_free(); memset(&data->handle, 0, sizeof(struct snapshot_handle)); data->ready = 0; + /* + * It is necessary to thaw kernel threads here, because + * SNAPSHOT_CREATE_IMAGE may be invoked directly after + * SNAPSHOT_FREE. In that case, if kernel threads were not + * thawed, the preallocation of memory carried out by + * hibernation_snapshot() might run into problems (i.e. it + * might fail or even deadlock). + */ + thaw_kernel_threads(); break; case SNAPSHOT_PREF_IMAGE_SIZE: |
