PCI: Check P2P bridge for invalid secondary/subordinate range
authorYinghai Lu <yinghai@kernel.org>
Tue, 11 Sep 2012 00:19:33 +0000 (17:19 -0700)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 18 Sep 2012 22:47:54 +0000 (16:47 -0600)
commit1965f66e7db08d1ebccd24a59043eba826cc1ce8
treecd7955992bdf7ebc44afa3d247349a41af94d3e4
parent55d512e245bc7699a8800e23df1a24195dd08217
PCI: Check P2P bridge for invalid secondary/subordinate range

For bridges with "secondary > subordinate", i.e., invalid bus number
apertures, we don't enumerate anything behind the bridge unless the
user specified "pci=assign-busses".

This patch makes us automatically try to reassign the downstream bus
numbers in this case (just for that bridge, not for all bridges as
"pci=assign-busses" does).

We don't discover all the devices on the Intel DP43BF motherboard
without this change (or "pci=assign-busses") because its BIOS configures
a bridge as:

    pci 0000:00:1e.0: PCI bridge to [bus 20-08] (subtractive decode)

[bhelgaas: changelog, change message to dev_info]
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=18412
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=625754
Reported-by: Brian C. Huffman <bhuffman@graze.net>
Reported-by: VL <vl.homutov@gmail.com>
Tested-by: VL <vl.homutov@gmail.com>
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Cc: stable@vger.kernel.org
drivers/pci/probe.c