summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2010-05-15 06:28:23 +0200
committerLinus Torvalds <torvalds@linux-foundation.org>2010-05-15 06:28:23 +0200
commitecbb458a484fd9c455f8feb36c87727e71b4ac1a (patch)
tree98d5708d66ae4a5673ff64ce7e6e4b71bc1800a5 /arch
parentprofile: fix stats and data leakage (diff)
parentx86, mrst: Don't blindly access extended config space (diff)
downloadlinux-ecbb458a484fd9c455f8feb36c87727e71b4ac1a.tar.xz
linux-ecbb458a484fd9c455f8feb36c87727e71b4ac1a.zip
Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86, mrst: Don't blindly access extended config space
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/pci/mrst.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/x86/pci/mrst.c b/arch/x86/pci/mrst.c
index 8bf2fcb88d04..1cdc02cf8fa4 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 ||