Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932261Ab0HCPso (ORCPT ); Tue, 3 Aug 2010 11:48:44 -0400 Received: from mx1.redhat.com ([209.132.183.28]:49144 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756981Ab0HCPsm (ORCPT ); Tue, 3 Aug 2010 11:48:42 -0400 Date: Tue, 3 Aug 2010 18:42:52 +0300 From: "Michael S. Tsirkin" To: Kulikov Vasiliy Cc: kernel-janitors@vger.kernel.org, "Hans J. Koch" , Greg Kroah-Hartman , Jesse Barnes , Tejun Heo , kvm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 10/11] uio: do not use PCI resources before pci_enable_device() Message-ID: <20100803154252.GA6511@redhat.com> References: <1280850264-6258-1-git-send-email-segooon@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1280850264-6258-1-git-send-email-segooon@gmail.com> User-Agent: Mutt/1.5.20 (2009-12-10) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1864 Lines: 70 On Tue, Aug 03, 2010 at 07:44:23PM +0400, Kulikov Vasiliy wrote: > IRQ and resource[] may not have correct values until > after PCI hotplug setup occurs at pci_enable_device() time. > > The semantic match that finds this problem is as follows: > > // > @@ > identifier x; > identifier request ~= "pci_request.*|pci_resource.*"; > @@ > > ( > * x->irq > | > * x->resource > | > * request(x, ...) > ) > ... > *pci_enable_device(x) > // > > Signed-off-by: Kulikov Vasiliy Looks sane. Acked-by: Michael S. Tsirkin > --- > drivers/uio/uio_pci_generic.c | 13 +++++++------ > 1 files changed, 7 insertions(+), 6 deletions(-) > > diff --git a/drivers/uio/uio_pci_generic.c b/drivers/uio/uio_pci_generic.c > index 85c9884..fc22e1e 100644 > --- a/drivers/uio/uio_pci_generic.c > +++ b/drivers/uio/uio_pci_generic.c > @@ -128,12 +128,6 @@ static int __devinit probe(struct pci_dev *pdev, > struct uio_pci_generic_dev *gdev; > int err; > > - if (!pdev->irq) { > - dev_warn(&pdev->dev, "No IRQ assigned to device: " > - "no support for interrupts?\n"); > - return -ENODEV; > - } > - > err = pci_enable_device(pdev); > if (err) { > dev_err(&pdev->dev, "%s: pci_enable_device failed: %d\n", > @@ -141,6 +135,13 @@ static int __devinit probe(struct pci_dev *pdev, > return err; > } > > + if (!pdev->irq) { > + dev_warn(&pdev->dev, "No IRQ assigned to device: " > + "no support for interrupts?\n"); > + pci_disable_device(pdev); > + return -ENODEV; > + } > + > err = verify_pci_2_3(pdev); > if (err) > goto err_verify; > -- > 1.7.0.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/