Commit a576219a authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds
Browse files

[PATCH] swsusp: resume_store() retval fix



- This function returns -EINVAL all the time.  Fix.

- Decruftify it a bit too.

- Writing to it doesn't seem to do what it's suppoed to do.

Cc: Pavel Machek <pavel@ucw.cz>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 817c41d7
......@@ -363,30 +363,28 @@ static ssize_t resume_show(struct subsystem * subsys, char *buf)
MINOR(swsusp_resume_device));
}
static ssize_t resume_store(struct subsystem * subsys, const char * buf, size_t n)
static ssize_t resume_store(struct subsystem *subsys, const char *buf, size_t n)
{
int len;
char *p;
unsigned int maj, min;
int error = -EINVAL;
dev_t res;
int ret = -EINVAL;
p = memchr(buf, '\n', n);
len = p ? p - buf : n;
if (sscanf(buf, "%u:%u", &maj, &min) != 2)
goto out;
if (sscanf(buf, "%u:%u", &maj, &min) == 2) {
res = MKDEV(maj,min);
if (maj == MAJOR(res) && min == MINOR(res)) {
down(&pm_sem);
swsusp_resume_device = res;
up(&pm_sem);
printk("Attempting manual resume\n");
noresume = 0;
software_resume();
}
}
res = MKDEV(maj,min);
if (maj != MAJOR(res) || min != MINOR(res))
goto out;
return error >= 0 ? n : error;
down(&pm_sem);
swsusp_resume_device = res;
up(&pm_sem);
printk("Attempting manual resume\n");
noresume = 0;
software_resume();
ret = n;
out:
return ret;
}
power_attr(resume);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment