lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <59629198.7WWMERNz9P@vostro.rjw.lan>
Date:	Mon, 04 May 2015 16:08:21 +0200
From:	"Rafael J. Wysocki" <rjw@...ysocki.net>
To:	"Chen, Yu C" <yu.c.chen@...el.com>,
	Mike Snitzer <snitzer@...hat.com>,
	Dan Ehrenberg <dehrenberg@...omium.org>
Cc:	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
	"linux-pm@...r.kernel.org" <linux-pm@...r.kernel.org>,
	"Wysocki, Rafael J" <rafael.j.wysocki@...el.com>,
	"Zhang, Rui" <rui.zhang@...el.com>,
	"Lu, Aaron" <aaron.lu@...el.com>,
	Martin Steigerwald <martin@...htvoll.de>
Subject: Re: [4.1-rc1][Hibernation failed]  bisect result  included

On Sunday, May 03, 2015 03:54:39 PM Chen, Yu C wrote:
> 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.

It'd be better to send the patch inline so it is not lost in replies.
Reproduced below.

Dan, Mike, any chance to look at this?  It is a functional regression for
some people.


---
>From a65d76c143b315c322b5c7a9fb365703c9f32798 Mon Sep 17 00:00:00 2001
From: Chen Yu <yu.c.chen@...el.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@...el.com>

Signed-off-by: Chen Yu <yu.c.chen@...el.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


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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ