diff options
-rw-r--r-- | kernel/power/disk.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/kernel/power/disk.c b/kernel/power/disk.c index 432ee575c9ee..7b40e94b1d42 100644 --- a/kernel/power/disk.c +++ b/kernel/power/disk.c | |||
@@ -595,6 +595,12 @@ static int software_resume(void) | |||
595 | unsigned int flags; | 595 | unsigned int flags; |
596 | 596 | ||
597 | /* | 597 | /* |
598 | * If the user said "noresume".. bail out early. | ||
599 | */ | ||
600 | if (noresume) | ||
601 | return 0; | ||
602 | |||
603 | /* | ||
598 | * name_to_dev_t() below takes a sysfs buffer mutex when sysfs | 604 | * name_to_dev_t() below takes a sysfs buffer mutex when sysfs |
599 | * is configured into the kernel. Since the regular hibernate | 605 | * is configured into the kernel. Since the regular hibernate |
600 | * trigger path is via sysfs which takes a buffer mutex before | 606 | * trigger path is via sysfs which takes a buffer mutex before |
@@ -610,6 +616,11 @@ static int software_resume(void) | |||
610 | mutex_unlock(&pm_mutex); | 616 | mutex_unlock(&pm_mutex); |
611 | return -ENOENT; | 617 | return -ENOENT; |
612 | } | 618 | } |
619 | /* | ||
620 | * Some device discovery might still be in progress; we need | ||
621 | * to wait for this to finish. | ||
622 | */ | ||
623 | wait_for_device_probe(); | ||
613 | swsusp_resume_device = name_to_dev_t(resume_file); | 624 | swsusp_resume_device = name_to_dev_t(resume_file); |
614 | pr_debug("PM: Resume from partition %s\n", resume_file); | 625 | pr_debug("PM: Resume from partition %s\n", resume_file); |
615 | } else { | 626 | } else { |