From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753178Ab2E2JW7 (ORCPT ); Tue, 29 May 2012 05:22:59 -0400 Received: from mail-ee0-f46.google.com ([74.125.83.46]:65427 "EHLO mail-ee0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751578Ab2E2JW5 (ORCPT ); Tue, 29 May 2012 05:22:57 -0400 From: Florian Fainelli To: Devendra Naga Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] r6040: disable pci device if the subsequent calls (after pci_enable_device) fails Date: Tue, 29 May 2012 11:20:50 +0200 Message-ID: <1659482.3g1Zl6FDuM@flexo> User-Agent: KMail/4.8.2 (Linux/3.2.0-24-generic; KDE/4.8.2; x86_64; ; ) In-Reply-To: <1338206223-26781-1-git-send-email-devendra.aaru@gmail.com> References: <1338206223-26781-1-git-send-email-devendra.aaru@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Monday 28 May 2012 17:27:03 Devendra Naga wrote: > the calls after the pci_enable_device may fail, and will error out with out > disabling it. disable the device at error paths. Looks good, thanks Devendra! > > Signed-off-by: Devendra Naga Acked-by: Florian Fainelli > --- > drivers/net/ethernet/rdc/r6040.c | 10 ++++++---- > 1 file changed, 6 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/ethernet/rdc/r6040.c b/drivers/net/ethernet/rdc/r6040.c > index 4de7364..8f5079a 100644 > --- a/drivers/net/ethernet/rdc/r6040.c > +++ b/drivers/net/ethernet/rdc/r6040.c > @@ -1096,20 +1096,20 @@ static int __devinit r6040_init_one(struct pci_dev *pdev, > if (err) { > dev_err(&pdev->dev, "32-bit PCI DMA addresses" > "not supported by the card\n"); > - goto err_out; > + goto err_out_disable_dev; > } > err = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32)); > if (err) { > dev_err(&pdev->dev, "32-bit PCI DMA addresses" > "not supported by the card\n"); > - goto err_out; > + goto err_out_disable_dev; > } > > /* IO Size check */ > if (pci_resource_len(pdev, bar) < io_size) { > dev_err(&pdev->dev, "Insufficient PCI resources, aborting\n"); > err = -EIO; > - goto err_out; > + goto err_out_disable_dev; > } > > pci_set_master(pdev); > @@ -1117,7 +1117,7 @@ static int __devinit r6040_init_one(struct pci_dev *pdev, > dev = alloc_etherdev(sizeof(struct r6040_private)); > if (!dev) { > err = -ENOMEM; > - goto err_out; > + goto err_out_disable_dev; > } > SET_NETDEV_DEV(dev, &pdev->dev); > lp = netdev_priv(dev); > @@ -1238,6 +1238,8 @@ err_out_free_res: > pci_release_regions(pdev); > err_out_free_dev: > free_netdev(dev); > +err_out_disable_dev: > + pci_disable_device(dev); > err_out: > return err; > } > -- > 1.7.9.5 >