Prev: drivers/ata: removing redundant ifdef
Next: [PATCH 0/8] v2 Moorestown core patches for 35 merge window
From: tip-bot for H. Peter Anvin on 14 May 2010 17:50 Commit-ID: e9b1d5d0ff4d3ae86050dc4c91b3147361c7af9e Gitweb: http://git.kernel.org/tip/e9b1d5d0ff4d3ae86050dc4c91b3147361c7af9e Author: H. Peter Anvin <hpa(a)linux.intel.com> AuthorDate: Fri, 14 May 2010 13:55:57 -0700 Committer: H. Peter Anvin <hpa(a)linux.intel.com> CommitDate: Fri, 14 May 2010 13:55:57 -0700 x86, mrst: Don't blindly access extended config space Do not blindly access extended configuration space unless we actively know we're on a Moorestown platform. The fixed-size BAR capability lives in the extended configuration space, and thus is not applicable if the configuration space isn't appropriately sized. This fixes booting certain VMware configurations with CONFIG_MRST=y. Moorestown will add a fake PCI-X 266 capability to advertise the presence of extended configuration space. Reported-and-tested-by: Petr Vandrovec <petr(a)vandrovec.name> Signed-off-by: H. Peter Anvin <hpa(a)linux.intel.com> Acked-by: Jacob Pan <jacob.jun.pan(a)intel.com> Acked-by: Jesse Barnes <jbarnes(a)virtuousgeek.org> LKML-Reference: <AANLkTiltKUa3TrKR1M51eGw8FLNoQJSLT0k0_K5X3-OJ(a)mail.gmail.com> --- arch/x86/pci/mrst.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/arch/x86/pci/mrst.c b/arch/x86/pci/mrst.c index 8bf2fcb..1cdc02c 100644 --- a/arch/x86/pci/mrst.c +++ b/arch/x86/pci/mrst.c @@ -247,6 +247,10 @@ static void __devinit pci_fixed_bar_fixup(struct pci_dev *dev) u32 size; int i; + /* Must have extended configuration space */ + if (dev->cfg_size < PCIE_CAP_OFFSET + 4) + return; + /* Fixup the BAR sizes for fixed BAR devices and make them unmoveable */ offset = fixed_bar_cap(dev->bus, dev->devfn); if (!offset || PCI_DEVFN(2, 0) == dev->devfn || -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |