PM/resume: wait for device probing to finish
[safe/jmp/linux-2.6] / kernel / power / disk.c
index 432ee57..7b40e94 100644 (file)
@@ -595,6 +595,12 @@ static int software_resume(void)
        unsigned int flags;
 
        /*
+        * If the user said "noresume".. bail out early.
+        */
+       if (noresume)
+               return 0;
+
+       /*
         * name_to_dev_t() below takes a sysfs buffer mutex when sysfs
         * is configured into the kernel. Since the regular hibernate
         * trigger path is via sysfs which takes a buffer mutex before
@@ -610,6 +616,11 @@ static int software_resume(void)
                        mutex_unlock(&pm_mutex);
                        return -ENOENT;
                }
+               /*
+                * Some device discovery might still be in progress; we need
+                * to wait for this to finish.
+                */
+               wait_for_device_probe();
                swsusp_resume_device = name_to_dev_t(resume_file);
                pr_debug("PM: Resume from partition %s\n", resume_file);
        } else {