PCI: allow P2P bridge windows starting at PCI bus address zero
authorBjorn Helgaas <bhelgaas@google.com>
Mon, 9 Jul 2012 19:38:41 +0000 (13:38 -0600)
committerBjorn Helgaas <bhelgaas@google.com>
Mon, 9 Jul 2012 19:38:41 +0000 (13:38 -0600)
commit5dde383e2ef5e22fe7db689dc38c1aabfb801449
treea2e7d12b7862fcd178969113d685035b72754bde
parentcfaf025112d3856637ff34a767ef785ef5cf2ca9
PCI: allow P2P bridge windows starting at PCI bus address zero

cd81e1ea1a4c added checks that prevent us from using P2P bridge windows
that start at PCI bus address zero.  The reason was to "prevent us from
overwriting resources that are unassigned."

But generic code should allow address zero in both BARs and bridge
windows, so I think that commit was a mistake.

Windows at bus address zero are legal and likely to exist on machines with
an offset between bus addresses and CPU addresses.  For example, in the
following hypothetical scenario, the bridge at 00:01.0 has a window at bus
address zero and the device at 01:00.0 has a BAR at bus address zero, and
I think both are perfectly valid:

    PCI host bridge to bus 0000:00
    pci_bus 0000:00: root bus resource [mem 0x100000000-0x1ffffffff] (bus address [0x00000000-0xffffffff])
    pci 0000:00:01.0: PCI bridge to [bus 01]
    pci 0000:00:01.0:   bridge window [mem 0x100000000-0x100ffffff]
    pci 0000:01:00.0: reg 10: [mem 0x100000000-0x100ffffff]

Acked-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
drivers/pci/probe.c