PCI: clear bridge resource range if BIOS assigned bad one
authorYinghai Lu <yinghai.lu@oracle.com>
Thu, 3 Jun 2010 20:43:03 +0000 (13:43 -0700)
committerJesse Barnes <jbarnes@virtuousgeek.org>
Fri, 11 Jun 2010 20:24:51 +0000 (13:24 -0700)
commit837c4ef13c44296bb763a0ca0e84a076592474cf
treec075b7e0b5218c19700e730db72f1119d65fc54f
parenta7ef7d1f5e898984c479e8c41ca702141bbadc78
PCI: clear bridge resource range if BIOS assigned bad one

Yannick found that video does not work with 2.6.34.  The cause of this
bug was that the BIOS had assigned the wrong range to the PCI bridge
above the video device.  Before 2.6.34 the kernel would have shrunk
the size of the bridge window, but since
  d65245c PCI: don't shrink bridge resources
the kernel will avoid shrinking BIOS ranges.

So zero out the old range if we fail to claim it at boot time; this will
cause us to allocate a new range at startup, restoring the 2.6.34
behavior.

Fixes regression https://bugzilla.kernel.org/show_bug.cgi?id=16009.

Reported-by: Yannick <yannick.roehlly@free.fr>
Acked-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
arch/microblaze/pci/pci-common.c
arch/mn10300/unit-asb2305/pci-asb2305.c
arch/powerpc/kernel/pci-common.c
arch/x86/pci/i386.c