All of lore.kernel.org
 help / color / mirror / Atom feed
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Yinghai Lu <yinghai@kernel.org>
Cc: Liu Jiang <liuj97@gmail.com>, "Rafael J . Wysocki" <rjw@sisk.pl>,
	linuxppc-dev@lists.ozlabs.org,
	"sparclinux@vger.kernel.org" <sparclinux@vger.kernel.org>,
	"David S. Miller" <davem@davemloft.net>,
	Gu Zheng <guz.fnst@cn.fujitsu.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Myron Stowe <myron.stowe@redhat.com>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Paul Mackerras <paulus@samba.org>
Subject: Re: [PATCH v2, part 1 3/9] PCI: Convert alloc_pci_dev(void) to pci_alloc_dev(bus) instead
Date: Thu, 16 May 2013 07:32:37 +1000	[thread overview]
Message-ID: <1368653557.9603.21.camel@pasglop> (raw)
In-Reply-To: <CAE9FiQVCSm14S0A1sVWewc7UX-dyOmu9aq1UwqdPZK6qSmbFxQ@mail.gmail.com>

On Wed, 2013-05-15 at 07:58 -0700, Yinghai Lu wrote:

> Ben,
> 
> in drivers/pci/probe.c::pci_scan_device() there is
> 
>         pci_set_of_node(dev);
> 
>         if (pci_setup_device(dev)) {
>                 kfree(dev);
>                 return NULL;
>         }
> 
> so if pci_setup_device fails, there is one dev reference is not release.
> 
> please check you can just move down pci_set_of_node down after that
> failing path, like
> 
> 
>         if (pci_setup_device(dev)) {
>                 kfree(dev);
>                 return NULL;
>         }
> 
>         pci_set_of_node(dev);

No, we want the OF node set when we run the quirks, we intentionally do
that early, the right thing to do is to to call pci_release_of_node()
in the error path (it's safe to call even if the node is NULL).

Cheers,
Ben.




WARNING: multiple messages have this Message-ID (diff)
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Yinghai Lu <yinghai@kernel.org>
Cc: Bjorn Helgaas <bhelgaas@google.com>,
	Myron Stowe <myron.stowe@redhat.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	"Rafael J . Wysocki" <rjw@sisk.pl>,
	Gu Zheng <guz.fnst@cn.fujitsu.com>,
	Paul Mackerras <paulus@samba.org>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	"sparclinux@vger.kernel.org" <sparclinux@vger.kernel.org>,
	linuxppc-dev@lists.ozlabs.org,
	"David S. Miller" <davem@davemloft.net>,
	Liu Jiang <liuj97@gmail.com>
Subject: Re: [PATCH v2, part 1 3/9] PCI: Convert alloc_pci_dev(void) to pci_alloc_dev(bus) instead
Date: Thu, 16 May 2013 07:32:37 +1000	[thread overview]
Message-ID: <1368653557.9603.21.camel@pasglop> (raw)
In-Reply-To: <CAE9FiQVCSm14S0A1sVWewc7UX-dyOmu9aq1UwqdPZK6qSmbFxQ@mail.gmail.com>

On Wed, 2013-05-15 at 07:58 -0700, Yinghai Lu wrote:

> Ben,
> 
> in drivers/pci/probe.c::pci_scan_device() there is
> 
>         pci_set_of_node(dev);
> 
>         if (pci_setup_device(dev)) {
>                 kfree(dev);
>                 return NULL;
>         }
> 
> so if pci_setup_device fails, there is one dev reference is not release.
> 
> please check you can just move down pci_set_of_node down after that
> failing path, like
> 
> 
>         if (pci_setup_device(dev)) {
>                 kfree(dev);
>                 return NULL;
>         }
> 
>         pci_set_of_node(dev);

No, we want the OF node set when we run the quirks, we intentionally do
that early, the right thing to do is to to call pci_release_of_node()
in the error path (it's safe to call even if the node is NULL).

Cheers,
Ben.

WARNING: multiple messages have this Message-ID (diff)
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Yinghai Lu <yinghai@kernel.org>
Cc: Liu Jiang <liuj97@gmail.com>, "Rafael J . Wysocki" <rjw@sisk.pl>,
	linuxppc-dev@lists.ozlabs.org,
	"sparclinux@vger.kernel.org" <sparclinux@vger.kernel.org>,
	"David S. Miller" <davem@davemloft.net>,
	Gu Zheng <guz.fnst@cn.fujitsu.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Myron Stowe <myron.stowe@redhat.com>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Paul Mackerras <paulus@samba.org>
Subject: Re: [PATCH v2, part 1 3/9] PCI: Convert alloc_pci_dev(void) to pci_alloc_dev(bus) instead
Date: Wed, 15 May 2013 21:32:37 +0000	[thread overview]
Message-ID: <1368653557.9603.21.camel@pasglop> (raw)
In-Reply-To: <CAE9FiQVCSm14S0A1sVWewc7UX-dyOmu9aq1UwqdPZK6qSmbFxQ@mail.gmail.com>

On Wed, 2013-05-15 at 07:58 -0700, Yinghai Lu wrote:

> Ben,
> 
> in drivers/pci/probe.c::pci_scan_device() there is
> 
>         pci_set_of_node(dev);
> 
>         if (pci_setup_device(dev)) {
>                 kfree(dev);
>                 return NULL;
>         }
> 
> so if pci_setup_device fails, there is one dev reference is not release.
> 
> please check you can just move down pci_set_of_node down after that
> failing path, like
> 
> 
>         if (pci_setup_device(dev)) {
>                 kfree(dev);
>                 return NULL;
>         }
> 
>         pci_set_of_node(dev);

No, we want the OF node set when we run the quirks, we intentionally do
that early, the right thing to do is to to call pci_release_of_node()
in the error path (it's safe to call even if the node is NULL).

Cheers,
Ben.




  reply	other threads:[~2013-05-15 21:33 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-13 16:08 [PATCH v2, part 1 0/9] Prepare for introducing PCI bus lock interfaces Jiang Liu
2013-05-13 16:08 ` [PATCH v2, part 1 1/9] PCI: introduce pci_bus_{get|put}() to manage PCI bus reference count Jiang Liu
2013-05-13 16:08 ` [PATCH v2, part 1 2/9] PCI: Introduce pci_alloc_dev(struct pci_bus*) to replace alloc_pci_dev() Jiang Liu
2013-05-13 16:08 ` [PATCH v2, part 1 3/9] PCI: Convert alloc_pci_dev(void) to pci_alloc_dev(bus) instead Jiang Liu
2013-05-13 16:08   ` Jiang Liu
2013-05-13 16:08   ` Jiang Liu
2013-05-13 17:23   ` Yinghai Lu
2013-05-13 17:23     ` Yinghai Lu
2013-05-13 17:23     ` Yinghai Lu
2013-05-14  8:26     ` Gu Zheng
2013-05-14  8:26       ` Gu Zheng
2013-05-14  8:26       ` Gu Zheng
2013-05-14 14:59       ` Liu Jiang
2013-05-14 14:59         ` Liu Jiang
2013-05-14 14:59         ` Liu Jiang
2013-05-14 15:10         ` Yinghai Lu
2013-05-14 15:10           ` Yinghai Lu
2013-05-14 15:10           ` Yinghai Lu
2013-05-14 16:57           ` Liu Jiang
2013-05-14 16:57             ` Liu Jiang
2013-05-14 16:57             ` Liu Jiang
2013-05-14 18:52             ` Yinghai Lu
2013-05-14 18:52               ` Yinghai Lu
2013-05-14 18:52               ` Yinghai Lu
2013-05-15 14:39               ` Liu Jiang
2013-05-15 14:39                 ` Liu Jiang
2013-05-15 14:39                 ` Liu Jiang
2013-05-15 14:43                 ` Yinghai Lu
2013-05-15 14:43                   ` Yinghai Lu
2013-05-15 14:43                   ` Yinghai Lu
2013-05-15 14:46                   ` Liu Jiang
2013-05-15 14:46                     ` Liu Jiang
2013-05-15 14:46                     ` Liu Jiang
2013-05-15 14:58                     ` Yinghai Lu
2013-05-15 14:58                       ` Yinghai Lu
2013-05-15 14:58                       ` Yinghai Lu
2013-05-15 21:32                       ` Benjamin Herrenschmidt [this message]
2013-05-15 21:32                         ` Benjamin Herrenschmidt
2013-05-15 21:32                         ` Benjamin Herrenschmidt
2013-05-15 21:52                         ` Yinghai Lu
2013-05-15 21:52                           ` Yinghai Lu
2013-05-15 21:52                           ` Yinghai Lu
2013-05-15 21:29                     ` Benjamin Herrenschmidt
2013-05-15 21:29                       ` Benjamin Herrenschmidt
2013-05-15 21:29                       ` Benjamin Herrenschmidt
2013-05-15 23:46                       ` Liu Jiang
2013-05-15 23:46                         ` Liu Jiang
2013-05-15 23:46                         ` Liu Jiang
2013-05-13 16:08 ` [PATCH v2, part 1 4/9] PCI: mark pci_scan_bus_parented() as __deprecated Jiang Liu
2013-05-13 16:08 ` [PATCH v2, part 1 5/9] ACPI, PCI: remove unused global list acpi_pci_roots in pci_root.c Jiang Liu
2013-05-13 23:28   ` Rafael J. Wysocki
2013-05-14 12:41     ` Liu Jiang
2013-05-14 13:01       ` Rafael J. Wysocki
2013-05-13 16:08 ` [PATCH v2, part 1 6/9] ACPI, pci_root: use acpi_handle_print() and pr_xxx() to print messages Jiang Liu
2013-05-13 23:27   ` Rafael J. Wysocki
2013-05-14 12:46     ` Liu Jiang
2013-05-14  8:43   ` Gu Zheng
2013-05-13 16:08 ` [PATCH v2, part 1 7/9] PCI, IA64: minor code clean up Jiang Liu
2013-05-13 16:08   ` Jiang Liu
2013-05-13 16:08 ` [PATCH v2, part 1 8/9] PCI: make PCI host bridge/bus creating and destroying logic symmetric Jiang Liu
2013-05-20  6:35   ` Gu Zheng
2013-05-20 15:52     ` Liu Jiang
2013-05-13 16:08 ` [PATCH v2, part 1 9/9] PCI, unicore, m68k: remove redundant call of pci_bus_add_devices() Jiang Liu

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=1368653557.9603.21.camel@pasglop \
    --to=benh@kernel.crashing.org \
    --cc=bhelgaas@google.com \
    --cc=davem@davemloft.net \
    --cc=gregkh@linuxfoundation.org \
    --cc=guz.fnst@cn.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=liuj97@gmail.com \
    --cc=myron.stowe@redhat.com \
    --cc=paulus@samba.org \
    --cc=rjw@sisk.pl \
    --cc=sparclinux@vger.kernel.org \
    --cc=yinghai@kernel.org \
    /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.