x86/PCI: Select CONFIG_PCI_LOCKLESS_CONFIG
authorThomas Gleixner <tglx@linutronix.de>
Thu, 16 Mar 2017 21:50:07 +0000 (22:50 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Wed, 28 Jun 2017 20:32:56 +0000 (22:32 +0200)
All x86 PCI configuration space accessors have either their own
serialization or can operate completely lockless (ECAM).

Disable the global lock in the generic PCI configuration space accessors.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Bjorn Helgaas <helgaas@kernel.org>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: linux-pci@vger.kernel.org
Link: http://lkml.kernel.org/r/20170316215057.295079391@linutronix.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
arch/x86/Kconfig
arch/x86/pci/common.c

index 0efb4c9..0652c9f 100644 (file)
@@ -166,6 +166,7 @@ config X86
        select HAVE_UNSTABLE_SCHED_CLOCK
        select HAVE_USER_RETURN_NOTIFIER
        select IRQ_FORCED_THREADING
+       select PCI_LOCKLESS_CONFIG
        select PERF_EVENTS
        select RTC_LIB
        select RTC_MC146818_LIB
index 190e718..cfd1a89 100644 (file)
@@ -75,8 +75,8 @@ struct pci_ops pci_root_ops = {
 };
 
 /*
- * This interrupt-safe spinlock protects all accesses to PCI
- * configuration space.
+ * This interrupt-safe spinlock protects all accesses to PCI configuration
+ * space, except for the mmconfig (ECAM) based operations.
  */
 DEFINE_RAW_SPINLOCK(pci_config_lock);