[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4C3DE148.9020509@candelatech.com>
Date: Wed, 14 Jul 2010 09:09:44 -0700
From: Ben Greear <greearb@...delatech.com>
To: "Pan, Jacob jun" <jacob.jun.pan@...el.com>
CC: Robert Hancock <hancockrwd@...il.com>,
linux-kernel <linux-kernel@...r.kernel.org>,
"jbarnes@...tuousgeek.org" <jbarnes@...tuousgeek.org>
Subject: Re: Regression: 2.6.34 boot fails on E5405 system, bisected: de08e2c26
On 07/14/2010 08:36 AM, Pan, Jacob jun wrote:
> what is the config size of 10.1?
> ls -l /sys/bus/pci/devices/0000:00:10.1/config
>
> if that is 256, it might be related to this patch.
>
>> From e9b1d5d0ff4d3ae86050dc4c91b3147361c7af9e Mon Sep 17 00:00:00 2001
> From: H. Peter Anvin<hpa@...ux.intel.com>
> Date: Fri, 14 May 2010 13:55:57 -0700
> Subject: [PATCH] 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.
I'll try this in a bit, but shouldn't we also check for no-progress in
that while loop and bail out in that case? No reason to hang on
boot just because the bios or whatever is busted?
Thanks,
Ben
>
> Reported-and-tested-by: Petr Vandrovec<petr@...drovec.name>
> Signed-off-by: H. Peter Anvin<hpa@...ux.intel.com>
> Acked-by: Jacob Pan<jacob.jun.pan@...el.com>
> Acked-by: Jesse Barnes<jbarnes@...tuousgeek.org>
> LKML-Reference:<AANLkTiltKUa3TrKR1M51eGw8FLNoQJSLT0k0_K5X3-OJ@...l.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 ||
--
Ben Greear <greearb@...delatech.com>
Candela Technologies Inc http://www.candelatech.com
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists