diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/power/hibernate.c | 13 | 
1 files changed, 13 insertions, 0 deletions
diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c index e09dfbfeece..8b53db38a27 100644 --- a/kernel/power/hibernate.c +++ b/kernel/power/hibernate.c @@ -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  |