|
@@ -25,6 +25,8 @@
|
|
|
#include <linux/freezer.h>
|
|
|
#include <linux/gfp.h>
|
|
|
#include <linux/syscore_ops.h>
|
|
|
+#include <linux/ctype.h>
|
|
|
+#include <linux/genhd.h>
|
|
|
#include <scsi/scsi_scan.h>
|
|
|
|
|
|
#include "power.h"
|
|
@@ -722,6 +724,17 @@ static int software_resume(void)
|
|
|
|
|
|
/* Check if the device is there */
|
|
|
swsusp_resume_device = name_to_dev_t(resume_file);
|
|
|
+
|
|
|
+ /*
|
|
|
+ * name_to_dev_t is ineffective to verify parition if resume_file is in
|
|
|
+ * integer format. (e.g. major:minor)
|
|
|
+ */
|
|
|
+ if (isdigit(resume_file[0]) && resume_wait) {
|
|
|
+ int partno;
|
|
|
+ while (!get_gendisk(swsusp_resume_device, &partno))
|
|
|
+ msleep(10);
|
|
|
+ }
|
|
|
+
|
|
|
if (!swsusp_resume_device) {
|
|
|
/*
|
|
|
* Some device discovery might still be in progress; we need
|