All of lore.kernel.org
 help / color / mirror / Atom feed
From: Shriram Rajagopalan <rshriram@cs.ubc.ca>
To: xen-devel@lists.xensource.com
Cc: Iam Campbell <ian.campbell@citrix.com>,
	"Rafael J. Wysocki" <rjw@sisk.pl>,
	Kenji Wakamiya <wkenji@jp.fujitsu.com>,
	Pavel Machek <pavel@ucw.cz>,
	Shriram Rajagopalan <rshriram@cs.ubc.ca>,
	linux-pm@lists.linux-foundation.org,
	Kazuhiro SUZUKI <kaz@jp.fujitsu.com>
Subject: [PATCH 1/3] xen: xenbus PM events support
Date: Sat, 19 Feb 2011 15:12:36 -0800	[thread overview]
Message-ID: <1298157158-5421-2-git-send-email-rshriram@cs.ubc.ca> (raw)
In-Reply-To: <1298157158-5421-1-git-send-email-rshriram@cs.ubc.ca>

From: Kazuhiro SUZUKI <kaz@jp.fujitsu.com>

Make xenbus frontend device subscribe to PM events
to receive suspend/resume/freeze/thaw/restore
notifications.

Signed-off-by: Kenji Wakamiya <wkenji@jp.fujitsu.com>
Signed-off-by: Kazuhiro Suzuki <kaz@jp.fujitsu.com>
Signed-off-by: Shriram Rajagopalan <rshriram@cs.ubc.ca>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
[shriram--minor mods and improved commit message]
---
 drivers/xen/xenbus/xenbus_probe.c          |   12 ++++++++++--
 drivers/xen/xenbus/xenbus_probe.h          |    3 ++-
 drivers/xen/xenbus/xenbus_probe_frontend.c |    9 +++++++--
 include/xen/xenbus.h                       |    2 +-
 4 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
index baa65e7..7397695 100644
--- a/drivers/xen/xenbus/xenbus_probe.c
+++ b/drivers/xen/xenbus/xenbus_probe.c
@@ -577,7 +577,7 @@ void xenbus_dev_changed(const char *node, struct xen_bus_type *bus)
 }
 EXPORT_SYMBOL_GPL(xenbus_dev_changed);
 
-int xenbus_dev_suspend(struct device *dev, pm_message_t state)
+int xenbus_dev_suspend(struct device *dev)
 {
 	int err = 0;
 	struct xenbus_driver *drv;
@@ -590,7 +590,7 @@ int xenbus_dev_suspend(struct device *dev, pm_message_t state)
 		return 0;
 	drv = to_xenbus_driver(dev->driver);
 	if (drv->suspend)
-		err = drv->suspend(xdev, state);
+		err = drv->suspend(xdev);
 	if (err)
 		printk(KERN_WARNING
 		       "xenbus: suspend %s failed: %i\n", dev_name(dev), err);
@@ -642,6 +642,14 @@ int xenbus_dev_resume(struct device *dev)
 }
 EXPORT_SYMBOL_GPL(xenbus_dev_resume);
 
+int xenbus_dev_cancel(struct device *dev)
+{
+	/* Do nothing */
+	DPRINTK("cancel");
+	return 0;
+}
+EXPORT_SYMBOL_GPL(xenbus_dev_cancel);
+
 /* A flag to determine if xenstored is 'ready' (i.e. has started) */
 int xenstored_ready = 0;
 
diff --git a/drivers/xen/xenbus/xenbus_probe.h b/drivers/xen/xenbus/xenbus_probe.h
index 2466581..888b990 100644
--- a/drivers/xen/xenbus/xenbus_probe.h
+++ b/drivers/xen/xenbus/xenbus_probe.h
@@ -64,8 +64,9 @@ extern void xenbus_dev_changed(const char *node, struct xen_bus_type *bus);
 
 extern void xenbus_dev_shutdown(struct device *_dev);
 
-extern int xenbus_dev_suspend(struct device *dev, pm_message_t state);
+extern int xenbus_dev_suspend(struct device *dev);
 extern int xenbus_dev_resume(struct device *dev);
+extern int xenbus_dev_cancel(struct device *dev);
 
 extern void xenbus_otherend_changed(struct xenbus_watch *watch,
 				    const char **vec, unsigned int len,
diff --git a/drivers/xen/xenbus/xenbus_probe_frontend.c b/drivers/xen/xenbus/xenbus_probe_frontend.c
index 5bcc2d6..ea83999 100644
--- a/drivers/xen/xenbus/xenbus_probe_frontend.c
+++ b/drivers/xen/xenbus/xenbus_probe_frontend.c
@@ -85,6 +85,12 @@ static struct device_attribute xenbus_frontend_dev_attrs[] = {
 	__ATTR_NULL
 };
 
+static const struct dev_pm_ops xenbus_pm_ops = {
+	.suspend = xenbus_dev_suspend,
+	.resume  = xenbus_dev_resume,
+	.thaw  = xenbus_dev_cancel,
+};
+
 static struct xen_bus_type xenbus_frontend = {
 	.root = "device",
 	.levels = 2,		/* device/type/<id> */
@@ -100,8 +106,7 @@ static struct xen_bus_type xenbus_frontend = {
 		.shutdown	= xenbus_dev_shutdown,
 		.dev_attrs	= xenbus_frontend_dev_attrs,
 
-		.suspend	= xenbus_dev_suspend,
-		.resume		= xenbus_dev_resume,
+		.pm		= &xenbus_pm_ops,
 	},
 };
 
diff --git a/include/xen/xenbus.h b/include/xen/xenbus.h
index 7a1d15f..5467369 100644
--- a/include/xen/xenbus.h
+++ b/include/xen/xenbus.h
@@ -92,7 +92,7 @@ struct xenbus_driver {
 	void (*otherend_changed)(struct xenbus_device *dev,
 				 enum xenbus_state backend_state);
 	int (*remove)(struct xenbus_device *dev);
-	int (*suspend)(struct xenbus_device *dev, pm_message_t state);
+	int (*suspend)(struct xenbus_device *dev);
 	int (*resume)(struct xenbus_device *dev);
 	int (*uevent)(struct xenbus_device *, struct kobj_uevent_env *);
 	struct device_driver driver;
-- 
1.7.0.4

  reply	other threads:[~2011-02-19 23:12 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-19 23:12 [PATCH 0/3] xen: Use PM/Hibernate events for save/restore/chkpt Shriram Rajagopalan
2011-02-19 23:12 ` Shriram Rajagopalan [this message]
2011-02-19 23:12 ` [PATCH 1/3] xen: xenbus PM events support Shriram Rajagopalan
2011-02-19 23:12 ` [PATCH 2/3] xen: use freeze/restore/thaw PM events for suspend/resume/chkpt Shriram Rajagopalan
2011-02-22 20:43   ` [Xen-devel] " Konrad Rzeszutek Wilk
2011-02-22 20:43   ` Konrad Rzeszutek Wilk
2011-02-22 21:14     ` [Xen-devel] " Rafael J. Wysocki
2011-02-22 21:14     ` Rafael J. Wysocki
2011-02-22 22:09     ` [Xen-devel] " Shriram Rajagopalan
2011-02-22 22:09     ` Shriram Rajagopalan
2011-02-22 22:35       ` Rafael J. Wysocki
2011-02-22 22:35       ` [Xen-devel] " Rafael J. Wysocki
2011-02-22 22:36       ` Konrad Rzeszutek Wilk
2011-02-22 22:53         ` [Xen-devel] " Shriram Rajagopalan
2011-02-22 22:53         ` Shriram Rajagopalan
2011-02-22 22:36       ` [Xen-devel] " Konrad Rzeszutek Wilk
2011-02-19 23:12 ` Shriram Rajagopalan
2011-02-19 23:12 ` [PATCH 3/3] PM: pm.h - Add comments about Xen save/restore/chkpt use case Shriram Rajagopalan
2011-02-19 23:12 ` Shriram Rajagopalan
2011-02-20  7:49 ` [PATCH 0/3] xen: Use PM/Hibernate events for save/restore/chkpt Pavel Machek
2011-02-20  7:49 ` Pavel Machek
2011-02-21 10:05   ` Ian Campbell
2011-02-21 10:05   ` Ian Campbell
2011-02-21 16:40     ` [linux-pm] " Alan Stern
2011-02-21 17:17       ` Ian Campbell
2011-02-21 20:23         ` Rafael J. Wysocki
2011-02-25 16:17           ` Stefano Stabellini
2011-02-25 16:19             ` Ian Campbell
2011-02-25 16:19             ` [linux-pm] " Ian Campbell
2011-02-25 16:23               ` Stefano Stabellini
2011-02-25 16:23               ` [linux-pm] " Stefano Stabellini
2011-02-25 16:17           ` Stefano Stabellini
2011-02-21 20:23         ` Rafael J. Wysocki
2011-02-21 17:17       ` Ian Campbell
2011-02-21 16:40     ` Alan Stern
2011-02-23 18:38     ` Pavel Machek
2011-02-23 20:10       ` Rafael J. Wysocki
2011-02-24 16:13         ` [Xen-devel] " Konrad Rzeszutek Wilk
2011-02-24 16:13         ` Konrad Rzeszutek Wilk
2011-02-24 18:41           ` Rafael J. Wysocki
2011-02-25 17:19             ` Stefano Stabellini
2011-02-25 18:24               ` [Xen-devel] " Rafael J. Wysocki
2011-02-25 18:24               ` Rafael J. Wysocki
2011-02-28 11:06                 ` [Xen-devel] " Stefano Stabellini
2011-03-04 16:04                   ` Shriram Rajagopalan
2011-03-04 20:52                     ` Rafael J. Wysocki
2011-03-04 20:52                     ` [Xen-devel] " Rafael J. Wysocki
2011-03-04 16:04                   ` Shriram Rajagopalan
2011-02-25 17:19             ` Stefano Stabellini
2011-02-24 18:41           ` Rafael J. Wysocki
2011-02-23 20:10       ` Rafael J. Wysocki
2011-02-23 18:38     ` Pavel Machek
2011-02-23  7:03 ` [PATCH v2 2/3] xen: use freeze/restore/thaw PM events for suspend/resume/chkpt Shriram Rajagopalan
2011-02-23  7:03 ` Shriram Rajagopalan

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=1298157158-5421-2-git-send-email-rshriram@cs.ubc.ca \
    --to=rshriram@cs.ubc.ca \
    --cc=ian.campbell@citrix.com \
    --cc=kaz@jp.fujitsu.com \
    --cc=linux-pm@lists.linux-foundation.org \
    --cc=pavel@ucw.cz \
    --cc=rjw@sisk.pl \
    --cc=wkenji@jp.fujitsu.com \
    --cc=xen-devel@lists.xensource.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.