lkml.org 
[lkml]   [2012]   [Mar]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH -v11 08/30] PCI: Checking busn_res in pci_scan_root_bus()
    Date
    Some calling may not have end decided yet, and may not pass busn_res in
    resources list.

    Try to do insert big one and shrink.

    Also print out one info about that, so we could find out which path
    does not have busn_res in resources list.

    Signed-off-by: Yinghai Lu <yinghai@kernel.org>
    ---
    drivers/pci/probe.c | 22 ++++++++++++++++++++++
    1 files changed, 22 insertions(+), 0 deletions(-)
    diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
    index 3d11836..654c727 100644
    --- a/drivers/pci/probe.c
    +++ b/drivers/pci/probe.c
    @@ -1736,12 +1736,34 @@ struct pci_bus * __devinit pci_scan_root_bus(struct device *parent, int bus,
    struct pci_ops *ops, void *sysdata, struct list_head *resources)
    {
    struct pci_bus *b;
    + struct pci_host_bridge_window *window, *n;
    + struct resource *res;
    + bool found;
    +
    + list_for_each_entry_safe(window, n, resources, list) {
    + res = window->res;
    + if (res->flags & IORESOURCE_BUS) {
    + found = true;
    + break;
    + }
    + }

    b = pci_create_root_bus(parent, bus, ops, sysdata, resources);
    if (!b)
    return NULL;

    + if (!found) {
    + dev_info(&b->dev,
    + "No busn resource found for root bus, will use [%02x, ff]\n",
    + bus);
    + pci_bus_insert_busn_res(b, bus, 255);
    + }
    +
    b->subordinate = pci_scan_child_bus(b);
    +
    + if (!found)
    + pci_bus_update_busn_res_end(b, b->subordinate);
    +
    pci_bus_add_devices(b);
    return b;
    }
    --
    1.7.7


    \
     
     \ /
      Last update: 2012-03-19 06:47    [W:0.428 / U:0.672 seconds]
    ©2003-2014 Jasper Spaans. Advertise on this site