From: Yinghai Lu on 3 Jun 2010 16:50 Make sure We can reject wrong size from BIOS. https://bugzilla.kernel.org/show_bug.cgi?id=16009 Yannick found that video does not work with 2.6.34 the root cause: BIOS assigned wrong range to pci bridge. and before 2.6.34 kernel will just get range that is needed. for 2.6.34. | d65245c PCI: don't shrink bridge resources will try to range size is bigger than old one. (used by boot stage multi-try to get big BAR size for pci bridge, and pcie hotplug to get big range) So try to 0 for old size for pci bridge in this boot stage case. Reported-by: Yannick <yannick.roehlly(a)free.fr> Analyzed-by: Bjorn Helgaas <bjorn.helgaas(a)hp.com> Signed-off-by: Yinghai Lu <yinghai(a)kernel.org> --- arch/microblaze/pci/pci-common.c | 1 + arch/mn10300/unit-asb2305/pci-asb2305.c | 1 + arch/powerpc/kernel/pci-common.c | 1 + arch/x86/pci/i386.c | 1 + 4 files changed, 4 insertions(+) Index: linux-2.6/arch/x86/pci/i386.c =================================================================== --- linux-2.6.orig/arch/x86/pci/i386.c +++ linux-2.6/arch/x86/pci/i386.c @@ -136,6 +136,7 @@ static void __init pcibios_allocate_bus_ * child resource allocations in this * range. */ + r->start = r->end = 0; r->flags = 0; } } Index: linux-2.6/arch/microblaze/pci/pci-common.c =================================================================== --- linux-2.6.orig/arch/microblaze/pci/pci-common.c +++ linux-2.6/arch/microblaze/pci/pci-common.c @@ -1277,6 +1277,7 @@ void pcibios_allocate_bus_resources(stru printk(KERN_WARNING "PCI: Cannot allocate resource region " "%d of PCI bridge %d, will remap\n", i, bus->number); clear_resource: + res->start = res->end = 0; res->flags = 0; } Index: linux-2.6/arch/mn10300/unit-asb2305/pci-asb2305.c =================================================================== --- linux-2.6.orig/arch/mn10300/unit-asb2305/pci-asb2305.c +++ linux-2.6/arch/mn10300/unit-asb2305/pci-asb2305.c @@ -117,6 +117,7 @@ static void __init pcibios_allocate_bus_ * Invalidate the resource to prevent * child resource allocations in this * range. */ + r->start = r->end = 0; r->flags = 0; } } Index: linux-2.6/arch/powerpc/kernel/pci-common.c =================================================================== --- linux-2.6.orig/arch/powerpc/kernel/pci-common.c +++ linux-2.6/arch/powerpc/kernel/pci-common.c @@ -1309,6 +1309,7 @@ void pcibios_allocate_bus_resources(stru printk(KERN_WARNING "PCI: Cannot allocate resource region " "%d of PCI bridge %d, will remap\n", i, bus->number); clear_resource: + res->start = res->end = 0; res->flags = 0; } -- 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/
|
Pages: 1 Prev: mount namespace : who mounted what ? Next: [PATCH 4/4] omap_hsmmc: Add erase capability |