Suspend/resume to disk problem

From: Francisco Martins
Date: Sun Jan 02 2005 - 20:19:36 EST


Hi all,

I'm using Debian GNU/linux 3.1 with kernel 2.6.10 on my IBM Thinkpad
R40, and I'm experiencing a strange problem with suspend to disk.

If I configure the kernel options
#
# Power management options (ACPI, APM)
#
CONFIG_PM=y
# CONFIG_PM_DEBUG is not set
CONFIG_SOFTWARE_SUSPEND=y
CONFIG_PM_STD_PARTITION="/dev/hda5",

issuing

echo platform > /sys/kernel/disk
echo disk > /sys/kernel/state

always results in error:
swsusp: FATAL: cannot find swap device, try swapon -a!


My swap partition was on, as can be confirmed by

(output from free)
total used free shared buffers cached
Mem: 515836 469716 46120 0 35588 220672
-/+ buffers/cache: 213456 302380
Swap: 763520 0 763520


(cat /proc/swaps)
Filename Type Size Used
Priority
/dev/hda5 partition 763520 0
-1

So, after searching with no luck for help in google, I looked at in the
source code for kernel/power/swsusp.c

The problem seems to be in function "is_resume_device"

static int is_resume_device(const struct swap_info_struct *swap_info)
...
return S_ISBLK(inode->i_mode) &&
resume_device == MKDEV(imajor(inode), iminor(inode));
}

The resume_device variable is not initialised at this stage and
has the value zero, which is different from MKDEV(...)

Can you please check this out?

I was able to suspend to disk by setting CONFIG_PM_STD_PARTITION="", but
I cannot resume.
Again, resume_device is set to 0 in function swsusp_read after
resume_device = name_to_dev_t(resume_file);
and therefore, it is not possible to open the swap device and
resume_bdev = open_by_devnum(resume_device, FMODE_READ);
returns an error, aborting the resume process.

I check that resume_file is correctly set to "/dev/hda5" by
the resume_setup function form disk.c


Thanks for you attention,

Cheers,

Francisco


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/