From patchwork Sun Feb 21 16:48:01 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Brian King X-Patchwork-Id: 45949 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id ADFB8B7CD5 for ; Mon, 22 Feb 2010 03:48:08 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752870Ab0BUQrz (ORCPT ); Sun, 21 Feb 2010 11:47:55 -0500 Received: from e8.ny.us.ibm.com ([32.97.182.138]:48328 "EHLO e8.ny.us.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751910Ab0BUQry (ORCPT ); Sun, 21 Feb 2010 11:47:54 -0500 Received: from d01relay07.pok.ibm.com (d01relay07.pok.ibm.com [9.56.227.147]) by e8.ny.us.ibm.com (8.14.3/8.13.1) with ESMTP id o1LGePCg028990 for ; Sun, 21 Feb 2010 11:40:25 -0500 Received: from d01av01.pok.ibm.com (d01av01.pok.ibm.com [9.56.224.215]) by d01relay07.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id o1LGlrF41859648 for ; Sun, 21 Feb 2010 11:47:53 -0500 Received: from d01av01.pok.ibm.com (loopback [127.0.0.1]) by d01av01.pok.ibm.com (8.14.3/8.13.1/NCO v10.0 AVout) with ESMTP id o1LGlrfk023151 for ; Sun, 21 Feb 2010 11:47:53 -0500 Received: from localhost.localdomain (sig-9-65-189-58.mts.ibm.com [9.65.189.58]) by d01av01.pok.ibm.com (8.14.3/8.13.1/NCO v10.0 AVin) with ESMTP id o1LGlqh3023138; Sun, 21 Feb 2010 11:47:52 -0500 Message-Id: <201002211647.o1LGlqh3023138@d01av01.pok.ibm.com> Subject: [PATCH 1/1] ibmveth: Add suspend/resume support To: netdev@vger.kernel.org Cc: brking@linux.vnet.ibm.com From: Brian King Date: Sun, 21 Feb 2010 10:48:01 -0600 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org 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 --- drivers/net/ibmveth.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff -puN drivers/net/ibmveth.c~ibmveth_suspend drivers/net/ibmveth.c --- linux-2.6/drivers/net/ibmveth.c~ibmveth_suspend 2010-02-20 15:29:55.000000000 -0600 +++ linux-2.6-bjking1/drivers/net/ibmveth.c 2010-02-20 15:29:55.000000000 -0600 @@ -45,6 +45,7 @@ #include #include #include +#include #include #include #include @@ -1588,6 +1589,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"}, @@ -1595,6 +1602,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, @@ -1603,6 +1614,7 @@ static struct vio_driver ibmveth_driver .driver = { .name = ibmveth_driver_name, .owner = THIS_MODULE, + .pm = &ibmveth_pm_ops, } };