Messages in this thread Patch in this message |  | | | Date | Tue, 02 Jun 2009 13:44:12 -0700 | | From | Yinghai Lu <> | | Subject | Re: Stable regression 2.6.29.3 vs 2.6.29.2 |
| |
Pascal Terjan wrote: > Le mardi 02 juin 2009 à 10:24 -0700, Yinghai Lu a écrit : > ACPI: Using IOAPIC for interrupt routing > PCI: MCFG configuration 0: base f0000000 segment 0 buses 0 - 255 > PCI: MCFG area at f0000000 reserved in ACPI motherboard resources > PCI: updated MCFG configuration 0: base f0000000 segment 0 buses 0 - 63 > PCI: Using MMCONFIG for extended config space
please check
[PATCH] x86/pci: fix mmconfig detection with 32bit need 4g
Pascal reported and bisected to commit: | x86/PCI: don't call e820_all_mapped with -1 in the mmconfig case
for 32bit, mcfg_res->end could be 32bit only ( if 64 res is not used) use end - 1 to pass the value in mcfg->end to avoid overflow
don't need to worry about e820 path. they are 64 bit always
Reported-by: Pascal Terjan <pterjan@mandriva.com> Bisected-by: Pascal Terjan <pterjan@mandriva.com> Signed-off-by: Yinghai Lu <yinghai@kernel.org> Cc: stable@kernel.org
--- arch/x86/pci/mmconfig-shared.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) Index: linux-2.6/arch/x86/pci/mmconfig-shared.c =================================================================== --- linux-2.6.orig/arch/x86/pci/mmconfig-shared.c +++ linux-2.6/arch/x86/pci/mmconfig-shared.c @@ -375,7 +375,7 @@ static acpi_status __init check_mcfg_res if (!fixmem32) return AE_OK; if ((mcfg_res->start >= fixmem32->address) && - (mcfg_res->end <= (fixmem32->address + + (mcfg_res->end < (fixmem32->address + fixmem32->address_length))) { mcfg_res->flags = 1; return AE_CTRL_TERMINATE; @@ -392,7 +392,7 @@ static acpi_status __init check_mcfg_res return AE_OK; if ((mcfg_res->start >= address.minimum) && - (mcfg_res->end <= (address.minimum + address.address_length))) { + (mcfg_res->end < (address.minimum + address.address_length))) { mcfg_res->flags = 1; return AE_CTRL_TERMINATE; } @@ -418,7 +418,7 @@ static int __init is_acpi_reserved(u64 s struct resource mcfg_res; mcfg_res.start = start; - mcfg_res.end = end; + mcfg_res.end = end - 1; mcfg_res.flags = 0; acpi_get_devices("PNP0C01", find_mboard_resource, &mcfg_res, NULL); -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |