From: Pavel Machek Move device name resolution code around so that it is not called from resume-from-initrd. name_to_dev_t may be unavailable at that point. Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton --- kernel/power/disk.c | 10 ++++++++++ kernel/power/swsusp.c | 10 ---------- 2 files changed, 10 insertions(+), 10 deletions(-) diff -puN kernel/power/disk.c~fix-resume-from-initrd kernel/power/disk.c --- 25/kernel/power/disk.c~fix-resume-from-initrd Wed Jul 6 13:03:41 2005 +++ 25-akpm/kernel/power/disk.c Wed Jul 6 13:03:41 2005 @@ -236,6 +236,16 @@ static int software_resume(void) { int error; + if (!swsusp_resume_device) { + if (!strlen(resume_file)) + return -ENOENT; + swsusp_resume_device = name_to_dev_t(resume_file); + pr_debug("swsusp: Resume From Partition %s\n", resume_file); + } else { + pr_debug("swsusp: Resume From Partition %d:%d\n", + MAJOR(swsusp_resume_device), MINOR(swsusp_resume_device)); + } + if (noresume) { /** * FIXME: If noresume is specified, we need to find the partition diff -puN kernel/power/swsusp.c~fix-resume-from-initrd kernel/power/swsusp.c --- 25/kernel/power/swsusp.c~fix-resume-from-initrd Wed Jul 6 13:03:41 2005 +++ 25-akpm/kernel/power/swsusp.c Wed Jul 6 13:03:41 2005 @@ -1356,16 +1356,6 @@ int swsusp_check(void) { int error; - if (!swsusp_resume_device) { - if (!strlen(resume_file)) - return -ENOENT; - swsusp_resume_device = name_to_dev_t(resume_file); - pr_debug("swsusp: Resume From Partition %s\n", resume_file); - } else { - pr_debug("swsusp: Resume From Partition %d:%d\n", - MAJOR(swsusp_resume_device), MINOR(swsusp_resume_device)); - } - resume_bdev = open_by_devnum(swsusp_resume_device, FMODE_READ); if (!IS_ERR(resume_bdev)) { set_blocksize(resume_bdev, PAGE_SIZE); _