linux/drivers/pnp
Bjorn Helgaas cb171f7abb PNP: Work around BIOS defects in Intel MCH area reporting
Work around BIOSes that don't report the entire Intel MCH area.

MCHBAR is not an architected PCI BAR, so MCH space is usually reported as a
PNP0C02 resource.  The MCH space was once 16KB, but is 32KB in newer parts.
Some BIOSes still report a PNP0C02 resource that is only 16KB, which means
the rest of the MCH space is consumed but unreported.

This can cause resource map sanity check warnings or (theoretically) a
device conflict if we assigned the unreported space to another device.

The Intel perf event uncore driver tripped over this when it claimed the
MCH region:

  resource map sanity check conflict: 0xfed10000 0xfed15fff 0xfed10000 0xfed13fff pnp 00:01
  Info: mapping multiple BARs. Your kernel is fine.

To prevent this, if we find a PNP0C02 resource that covers part of the MCH
space, extend it to cover the entire space.

References: http://lkml.kernel.org/r/20140224162400.GE16457@pd.tnic
Reported-and-tested-by: Borislav Petkov <bp@alien8.de>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Borislav Petkov <bp@suse.de>
Acked-by: Stephane Eranian <eranian@google.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2014-04-24 02:39:40 +02:00
..
isapnp isapnp: switch to fixed_size_llseek() 2013-06-29 12:57:48 +04:00
pnpacpi PNP / ACPI: proper handling of ACPI IO/Memory resource parsing failures 2014-03-11 21:22:10 +01:00
pnpbios asmlinkage, pnp: Make variables used from assembler code visible 2014-02-13 18:12:27 -08:00
Kconfig PNP: remove old CONFIG_PNP_DEBUG option 2008-10-10 23:35:33 -04:00
Makefile PNP: Compile all pnp built-in stuff in one module namespace 2010-10-27 02:23:44 -04:00
base.h PNP: convert bus code to use dev_groups 2013-10-16 18:36:02 -07:00
card.c PNP / card: add missing put_device() call 2014-01-05 22:50:06 +01:00
core.c Merge branch 'pnp' into release 2011-01-12 04:59:44 -05:00
driver.c PNP: fix restoring devices after hibernation 2013-12-05 02:01:55 +01:00
interface.c PNP: convert bus code to use dev_groups 2013-10-16 18:36:02 -07:00
manager.c pnp: restore automatic resolution of DMA conflicts 2013-05-22 00:21:02 +02:00
quirks.c PNP: Work around BIOS defects in Intel MCH area reporting 2014-04-24 02:39:40 +02:00
resource.c PNP: remove deprecated IRQF_DISABLED 2014-03-21 01:10:28 +01:00
support.c PNPACPI: add bus number support 2010-03-14 20:08:38 -04:00
system.c vsprintf: use %pR, %pr instead of %pRt, %pRf 2009-11-04 13:06:41 -08:00