linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [4.1-rc1][Hibernation failed]  bisect result  included
@ 2015-05-03 15:54 Chen, Yu C
  2015-05-03 18:24 ` Martin Steigerwald
  2015-05-04 14:08 ` Rafael J. Wysocki
  0 siblings, 2 replies; 10+ messages in thread
From: Chen, Yu C @ 2015-05-03 15:54 UTC (permalink / raw)
  To: linux-kernel
  Cc: linux-pm, Wysocki, Rafael J, dehrenberg, Zhang, Rui, Lu, Aaron

[-- Attachment #1: Type: text/plain, Size: 1026 bytes --]

Hi,all,
When we are doing QA test, a hibernation failor was found on latest kernel 4.1-rc1,
resume from hibernation failed with the following error:

PM: Hibernation image not present or could not be loaded.

Bisect shows following commit might trigger this problem:
commit 283e7ad0241155710f99a9f39d13313a53336926

The  reason for failor is that, some distribution use klibc in initrd
to restore the image, and klibc will provide kernel with the device 
format of major:minor:offset,
for example, 8:3:0 represents a swap partition, and klibc will
echo 8:3:0 > /sys/power/resume to resume the system manually.
However in current implementation, format of 8:3:0 will be regarded 
as an invalid device, so restoring from hibernation failed.

Do we need to add support for device format like 8:3:0?
I'm happy to debug more specifically if you can let me know what 
would be of use, and I've also attached a temporary patch 
for this problem, not sure if it is suitable,  thanks.




Best Regards,
Yu


[-- Attachment #2: 0001-init-support-device-of-major-minor-offset-format.patch --]
[-- Type: application/octet-stream, Size: 1601 bytes --]

From a65d76c143b315c322b5c7a9fb365703c9f32798 Mon Sep 17 00:00:00 2001
From: Chen Yu <yu.c.chen@intel.com>
Date: Sun, 3 May 2015 22:35:05 +0800
Subject: [RFC] init: support device of major:minor:offset format

Distribution like Ubuntu uses klibc rather than uswsusp to resume
system from hibernation, which will treat swap partition/file in
the form of major:minor:offset. For example, 8:3:0 represents a
swap partition in klibc, and klibc's resume process in initrd will
finally echo 8:3:0 to /sys/power/resume for manually restoring.
However in current implementation, 8:3:0 will be treated as an invalid
device format, and it is found that manual resumming from hibernation
will fail on lastest kernel.

This patch adds support for device with major:minor:offset format
when resumming from hibernation.

Reported-by: Prigent, Christophe <christophe.prigent@intel.com>

Signed-off-by: Chen Yu <yu.c.chen@intel.com>
---
 init/do_mounts.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/init/do_mounts.c b/init/do_mounts.c
index 8369ffa..2d36bf1 100644
--- a/init/do_mounts.c
+++ b/init/do_mounts.c
@@ -225,10 +225,12 @@ dev_t name_to_dev_t(const char *name)
 #endif
 
 	if (strncmp(name, "/dev/", 5) != 0) {
-		unsigned maj, min;
+		unsigned maj, min, offset;
 		char dummy;
 
-		if (sscanf(name, "%u:%u%c", &maj, &min, &dummy) == 2) {
+		if ((sscanf(name, "%u:%u%c", &maj, &min, &dummy) == 2) ||
+			(sscanf(name, "%u:%u:%u:%c", &maj, &min, &offset,
+			&dummy) == 3)) {
 			res = MKDEV(maj, min);
 			if (maj != MAJOR(res) || min != MINOR(res))
 				goto fail;
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2015-05-06  2:55 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-05-03 15:54 [4.1-rc1][Hibernation failed] bisect result included Chen, Yu C
2015-05-03 18:24 ` Martin Steigerwald
2015-05-04  7:50   ` Yu Chen
2015-05-04 14:08 ` Rafael J. Wysocki
2015-05-04 14:26   ` Mike Snitzer
2015-05-04 21:26     ` Rafael J. Wysocki
2015-05-05  2:30     ` Yu Chen
2015-05-05 20:48       ` Rafael J. Wysocki
2015-05-06  2:01         ` Mike Snitzer
2015-05-06  2:59           ` Yu Chen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).