All of lore.kernel.org
 help / color / mirror / Atom feed
From: tip-bot for Rui Wang <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: hpa@zytor.com, peterz@infradead.org, tglx@linutronix.de,
	mingo@kernel.org, bhelgaas@google.com,
	linux-kernel@vger.kernel.org, rui.y.wang@intel.com,
	torvalds@linux-foundation.org
Subject: [tip:x86/apic] x86/ioapic: Support hot-removal of IOAPICs present during boot
Date: Thu, 18 Aug 2016 04:02:12 -0700	[thread overview]
Message-ID: <tip-584c5c422f6c749ced1e0bc3c6837f650f64e1e1@git.kernel.org> (raw)
In-Reply-To: <1471420837-31003-3-git-send-email-rui.y.wang@intel.com>

Commit-ID:  584c5c422f6c749ced1e0bc3c6837f650f64e1e1
Gitweb:     http://git.kernel.org/tip/584c5c422f6c749ced1e0bc3c6837f650f64e1e1
Author:     Rui Wang <rui.y.wang@intel.com>
AuthorDate: Wed, 17 Aug 2016 16:00:34 +0800
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Thu, 18 Aug 2016 11:45:18 +0200

x86/ioapic: Support hot-removal of IOAPICs present during boot

IOAPICs present during system boot aren't added to ioapic_list,
thus are unable to be hot-removed. Fix it by calling
acpi_ioapic_add() during root bus enumeration.

Signed-off-by: Rui Wang <rui.y.wang@intel.com>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: helgaas@kernel.org
Cc: linux-acpi@vger.kernel.org
Cc: linux-pci@vger.kernel.org
Cc: rjw@rjwysocki.net
Cc: tony.luck@intel.com
Link: http://lkml.kernel.org/r/1471420837-31003-3-git-send-email-rui.y.wang@intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 drivers/acpi/pci_root.c | 10 ++++++++++
 drivers/pci/setup-bus.c |  5 ++++-
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c
index b07eda1..bf601d4 100644
--- a/drivers/acpi/pci_root.c
+++ b/drivers/acpi/pci_root.c
@@ -614,6 +614,16 @@ static int acpi_pci_root_add(struct acpi_device *device,
 	if (hotadd) {
 		pcibios_resource_survey_bus(root->bus);
 		pci_assign_unassigned_root_bus_resources(root->bus);
+		/*
+		 * This is only called for the hotadd case. For the boot-time
+		 * case, we need to wait until after PCI initialization in
+		 * order to deal with IOAPICs mapped in on a PCI BAR.
+		 *
+		 * This is currently x86-specific, because acpi_ioapic_add()
+		 * is an empty function without CONFIG_ACPI_HOTPLUG_IOAPIC.
+		 * And CONFIG_ACPI_HOTPLUG_IOAPIC depends on CONFIG_X86_IO_APIC
+		 * (see drivers/acpi/Kconfig).
+		 */
 		acpi_ioapic_add(root->device->handle);
 	}
 
diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c
index c74059e..ec538d3 100644
--- a/drivers/pci/setup-bus.c
+++ b/drivers/pci/setup-bus.c
@@ -25,6 +25,7 @@
 #include <linux/ioport.h>
 #include <linux/cache.h>
 #include <linux/slab.h>
+#include <linux/acpi.h>
 #include "pci.h"
 
 unsigned int pci_flags;
@@ -1852,8 +1853,10 @@ void __init pci_assign_unassigned_resources(void)
 {
 	struct pci_bus *root_bus;
 
-	list_for_each_entry(root_bus, &pci_root_buses, node)
+	list_for_each_entry(root_bus, &pci_root_buses, node) {
 		pci_assign_unassigned_root_bus_resources(root_bus);
+		acpi_ioapic_add(ACPI_HANDLE(root_bus->bridge));
+	}
 }
 
 void pci_assign_unassigned_bridge_resources(struct pci_dev *bridge)

  reply	other threads:[~2016-08-18 11:02 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-17  8:00 [PATCH v4 0/5] Fixing a set of bugs for ioapic hotplug Rui Wang
2016-08-17  8:00 ` [PATCH v4 1/5] x86/ioapic: Change prototype of acpi_ioapic_add() Rui Wang
2016-08-18 11:01   ` [tip:x86/apic] " tip-bot for Rui Wang
2016-08-17  8:00 ` [PATCH v4 2/5] x86/ioapic: Support hot-removal of IOAPICs present during boot Rui Wang
2016-08-18 11:02   ` tip-bot for Rui Wang [this message]
2016-09-05  8:16     ` [oops] [tip:x86/apic] " Mike Galbraith
2016-08-17  8:00 ` [PATCH v4 3/5] x86/ioapic: Fix setup_res() failing to get resource Rui Wang
2016-08-18 11:02   ` [tip:x86/apic] " tip-bot for Rui Wang
2016-08-17  8:00 ` [PATCH v4 4/5] x86/ioapic: Fix lost IOAPIC resource after hot-removal and hotadd Rui Wang
2016-08-18 11:03   ` [tip:x86/apic] " tip-bot for Rui Wang
2016-08-17  8:00 ` [PATCH v4 5/5] x86/ioapic: Fix ioapic failing to request resource Rui Wang
2016-08-18 11:03   ` [tip:x86/apic] x86/ioapic: Fix IOAPIC " tip-bot for Rui Wang

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=tip-584c5c422f6c749ced1e0bc3c6837f650f64e1e1@git.kernel.org \
    --to=tipbot@zytor.com \
    --cc=bhelgaas@google.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=rui.y.wang@intel.com \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.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.