From: Pavel Machek <pavel@ucw.cz>
To: Andrew Morton <akpm@osdl.org>,
kernel list <linux-kernel@vger.kernel.org>,
Linux-pm mailing list <linux-pm@lists.osdl.org>
Subject: [patch] pm: fix runtime powermanagement's /sys interface
Date: Tue, 27 Dec 2005 22:34:39 +0100 [thread overview]
Message-ID: <20051227213439.GA1884@elf.ucw.cz> (raw)
[-- Attachment #1: Type: text/plain, Size: 1317 bytes --]
/sys/devices/..../power interface is currently very broken. It takes
integer from user, and passes it to drivers as pm_message_t.event
... without even checking it. This changes the interface to pass
strings, and introduces checks.
Signed-off-by: Pavel Machek <pavel@suse.cz>
diff --git a/drivers/base/power/sysfs.c b/drivers/base/power/sysfs.c
--- a/drivers/base/power/sysfs.c
+++ b/drivers/base/power/sysfs.c
@@ -27,22 +27,25 @@
static ssize_t state_show(struct device * dev, struct device_attribute *attr, char * buf)
{
- return sprintf(buf, "%u\n", dev->power.power_state.event);
+ if (dev->power.power_state.event)
+ return sprintf(buf, "suspend\n");
+ else
+ return sprintf(buf, "on\n");
}
static ssize_t state_store(struct device * dev, struct device_attribute *attr, const char * buf, size_t n)
{
pm_message_t state;
- char * rest;
- int error = 0;
+ int error = -EINVAL;
- state.event = simple_strtoul(buf, &rest, 10);
- if (*rest)
- return -EINVAL;
- if (state.event)
- error = dpm_runtime_suspend(dev, state);
- else
+ state.event = PM_EVENT_SUSPEND;
+ if ((n == 2) && !strncmp(buf, "on", 2)) {
dpm_runtime_resume(dev);
+ error = 0;
+ }
+ if ((n == 7) && !strncmp(buf, "suspend", 7))
+ error = dpm_runtime_suspend(dev, state);
+
return error ? error : n;
}
--
Thanks, Sharp!
[-- Attachment #2: Type: text/plain, Size: 0 bytes --]
next reply other threads:[~2005-12-27 21:34 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-12-27 21:34 Pavel Machek [this message]
2005-12-27 21:55 ` [patch] pm: fix runtime powermanagement's /sys interface Dmitry Torokhov
2005-12-27 22:05 ` Pavel Machek
2005-12-28 4:22 ` Patrick Mochel
2006-01-04 21:34 ` [linux-pm] " Pavel Machek
2006-01-04 22:06 ` Alan Stern
2006-01-04 22:16 ` [linux-pm] " Pavel Machek
2006-01-05 21:43 ` Patrick Mochel
2006-01-05 22:06 ` [linux-pm] " Alan Stern
2006-01-05 22:28 ` Pavel Machek
2006-01-05 21:42 ` [linux-pm] " Patrick Mochel
2006-01-05 21:55 ` Pavel Machek
2006-01-05 22:13 ` [linux-pm] " Dominik Brodowski
2006-01-05 22:23 ` Pavel Machek
2006-01-05 22:27 ` Dominik Brodowski
2006-01-05 22:59 ` Pavel Machek
2006-01-05 23:08 ` Pavel Machek
2006-01-05 23:46 ` [linux-pm] " Dominik Brodowski
2006-01-05 23:58 ` Pavel Machek
2006-01-06 0:04 ` Patrick Mochel
2006-01-06 0:12 ` Pavel Machek
2006-01-06 1:37 ` Patrick Mochel
2006-01-06 8:59 ` Pavel Machek
2006-01-07 5:47 ` Adam Belay
2006-01-06 9:00 ` Pavel Machek
2006-01-06 15:00 ` Dominik Brodowski
2006-01-07 5:58 ` Adam Belay
2006-01-06 15:42 ` Alan Stern
2006-01-07 0:08 ` Pavel Machek
2006-01-07 3:19 ` Alan Stern
2006-01-07 7:58 ` Adam Belay
2006-01-07 10:20 ` Pavel Machek
2006-01-07 13:06 ` Adam Belay
2006-01-06 4:17 ` Pavel Machek
2006-01-07 7:41 ` [linux-pm] " Adam Belay
2006-01-07 15:24 ` Alan Stern
2006-01-06 1:10 ` Dominik Brodowski
2006-01-06 8:53 ` Pavel Machek
2006-01-06 0:38 ` Greg KH
2006-01-06 15:03 ` Dominik Brodowski
2006-01-06 16:25 ` Kay Sievers
2006-01-09 20:10 ` [linux-pm] " Dominik Brodowski
2006-01-05 22:15 ` Patrick Mochel
2006-01-05 22:44 ` Pavel Machek
2006-01-05 23:54 ` Patrick Mochel
2006-01-06 0:07 ` [linux-pm] " Pavel Machek
2006-01-06 14:34 ` Tom Marshall
2006-01-06 16:20 ` Pavel Machek
2006-01-07 8:36 ` Adam Belay
2006-01-07 10:25 ` Pavel Machek
2006-01-07 12:45 ` Adam Belay
2006-01-06 4:24 ` Pavel Machek
2006-01-13 20:00 ` Takashi Iwai
-- strict thread matches above, loose matches on Subject: below --
2006-01-05 15:16 Scott E. Preece
2006-01-05 22:21 Preece Scott-PREECE
2006-01-05 22:45 ` Pavel Machek
2006-01-06 0:02 ` Patrick Mochel
2006-01-05 22:55 Preece Scott-PREECE
2006-01-05 23:05 ` Pavel Machek
2006-01-06 0:31 Scott E. Preece
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20051227213439.GA1884@elf.ucw.cz \
--to=pavel@ucw.cz \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@lists.osdl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox