diff mbox

[1/1] ibmveth: Add suspend/resume support

Message ID 201005071156.o47BuCYM007062@d03av03.boulder.ibm.com
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Brian King May 7, 2010, 6:56 p.m. UTC
Adds support for resuming from suspend for IBM virtual ethernet devices.
We may have lost an interrupt over the suspend, so we just kick the
interrupt handler to process anything that is outstanding.

Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
---

 drivers/net/ibmveth.c |   12 ++++++++++++
 1 file changed, 12 insertions(+)

Comments

David Miller May 18, 2010, 12:09 a.m. UTC | #1
From: Brian King <brking@linux.vnet.ibm.com>
Date: Fri, 07 May 2010 13:56:08 -0500

> 
> Adds support for resuming from suspend for IBM virtual ethernet devices.
> We may have lost an interrupt over the suspend, so we just kick the
> interrupt handler to process anything that is outstanding.
> 
> Signed-off-by: Brian King <brking@linux.vnet.ibm.com>

Applied, thank you.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff -puN drivers/net/ibmveth.c~ibmveth_suspend drivers/net/ibmveth.c
--- linux-2.6/drivers/net/ibmveth.c~ibmveth_suspend	2010-05-07 13:49:19.000000000 -0500
+++ linux-2.6-bjking1/drivers/net/ibmveth.c	2010-05-07 13:49:19.000000000 -0500
@@ -45,6 +45,7 @@ 
 #include <linux/init.h>
 #include <linux/delay.h>
 #include <linux/mm.h>
+#include <linux/pm.h>
 #include <linux/ethtool.h>
 #include <linux/proc_fs.h>
 #include <linux/in.h>
@@ -1589,6 +1590,12 @@  static struct kobj_type ktype_veth_pool
 	.default_attrs  = veth_pool_attrs,
 };
 
+static int ibmveth_resume(struct device *dev)
+{
+	struct net_device *netdev = dev_get_drvdata(dev);
+	ibmveth_interrupt(netdev->irq, netdev);
+	return 0;
+}
 
 static struct vio_device_id ibmveth_device_table[] __devinitdata= {
 	{ "network", "IBM,l-lan"},
@@ -1596,6 +1603,10 @@  static struct vio_device_id ibmveth_devi
 };
 MODULE_DEVICE_TABLE(vio, ibmveth_device_table);
 
+static struct dev_pm_ops ibmveth_pm_ops = {
+	.resume = ibmveth_resume
+};
+
 static struct vio_driver ibmveth_driver = {
 	.id_table	= ibmveth_device_table,
 	.probe		= ibmveth_probe,
@@ -1604,6 +1615,7 @@  static struct vio_driver ibmveth_driver
 	.driver		= {
 		.name	= ibmveth_driver_name,
 		.owner	= THIS_MODULE,
+		.pm = &ibmveth_pm_ops,
 	}
 };