All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alex Chiang <achiang@hp.com>
To: lenb@kernel.org
Cc: linux-acpi@vger.kernel.org, Bjorn Helgaas <bjorn.helgaas@hp.com>,
	linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org
Subject: [PATCH 10/10] ACPI: acpi_pci_unbind should clean up properly after acpi_pci_bind
Date: Tue, 02 Jun 2009 09:25:27 -0600	[thread overview]
Message-ID: <20090602152527.7346.97494.stgit@bob.kio> (raw)
In-Reply-To: <20090602152351.7346.48697.stgit@bob.kio>

In acpi_pci_bind, we add _PRT information for non-bridge devices, but
we never delete that information in acpi_pci_unbind.

We also set device->ops.bind and device->ops.unbind, but never clear
them out.

Let's make acpi_pci_unbind clean up what we did in acpi_pci_bind.

Cc: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Alex Chiang <achiang@hp.com>
---

 drivers/acpi/pci_bind.c |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/drivers/acpi/pci_bind.c b/drivers/acpi/pci_bind.c
index 9185b54..c507e37 100644
--- a/drivers/acpi/pci_bind.c
+++ b/drivers/acpi/pci_bind.c
@@ -120,14 +120,21 @@ EXPORT_SYMBOL_GPL(acpi_get_pci_dev);
 
 static int acpi_pci_unbind(struct acpi_device *device)
 {
+	struct pci_bus *bus;
 	struct pci_dev *dev;
 
 	dev = acpi_get_pci_dev(device->handle);
 	if (!dev)
 		return 0;
 
-	if (dev->subordinate)
-		acpi_pci_irq_del_prt(dev->subordinate);
+	if (dev->subordinate) {
+		bus = dev->subordinate;
+		device->ops.bind = NULL;
+		device->ops.unbind = NULL;
+	 } else
+		bus = dev->bus;
+
+	acpi_pci_irq_del_prt(bus);
 
 	return 0;
 }


  parent reply	other threads:[~2009-06-02 15:25 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-02 15:24 [PATCH 00/10] Dynamic ACPI-PCI binding Alex Chiang
2009-06-02 15:24 ` [PATCH 01/10] ACPI: make acpi_pci_bind() static Alex Chiang
2009-06-02 15:24 ` [PATCH 02/10] ACPI: Introduce acpi_is_root_bridge() Alex Chiang
2009-06-02 15:24 ` [PATCH 03/10] ACPI: export acpi_pci_find_root() Alex Chiang
2009-06-02 15:24 ` [PATCH 04/10] ACPI: Introduce acpi_get_pci_dev() Alex Chiang
2009-06-03 16:46   ` Bjorn Helgaas
2009-06-02 15:25 ` [PATCH 05/10] PCI Hotplug: acpiphp: convert to acpi_get_pci_dev Alex Chiang
2009-06-02 15:25 ` [PATCH 06/10] ACPI: kill acpi_get_pci_id Alex Chiang
2009-06-02 15:25 ` [PATCH 07/10] ACPI: eviscerate pci_bind.c Alex Chiang
2009-06-03 18:26   ` Bjorn Helgaas
2009-06-02 15:25 ` [PATCH 08/10] ACPI: simplify acpi_pci_irq_add_prt() API Alex Chiang
2009-06-02 17:30   ` Bjorn Helgaas
2009-06-02 17:41     ` Alex Chiang
2009-06-02 15:25 ` [PATCH 09/10] ACPI: simplify acpi_pci_irq_del_prt() API Alex Chiang
2009-06-02 15:25 ` Alex Chiang [this message]
2009-06-03 19:29 ` [PATCH 00/10] Dynamic ACPI-PCI binding Alex Chiang

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=20090602152527.7346.97494.stgit@bob.kio \
    --to=achiang@hp.com \
    --cc=bjorn.helgaas@hp.com \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.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.