lkml.org 
[lkml]   [2008]   [Nov]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 6/13 v7] PCI: make pci_alloc_child_bus() be able to handle NULL bridge
    Make pci_alloc_child_bus() be able to allocate buses without bridge
    devices. Some SR-IOV devices can occupy more than one bus number,
    but there is no explicit bridges because that have internal routing
    mechanism.

    Signed-off-by: Yu Zhao <yu.zhao@intel.com>

    ---
    drivers/pci/probe.c | 8 ++++++--
    1 files changed, 6 insertions(+), 2 deletions(-)

    diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
    index ae5c7fe..cd205fd 100644
    --- a/drivers/pci/probe.c
    +++ b/drivers/pci/probe.c
    @@ -398,12 +398,10 @@ static struct pci_bus *pci_alloc_child_bus(struct pci_bus *parent,
    if (!child)
    return NULL;

    - child->self = bridge;
    child->parent = parent;
    child->ops = parent->ops;
    child->sysdata = parent->sysdata;
    child->bus_flags = parent->bus_flags;
    - child->bridge = get_device(&bridge->dev);

    /* initialize some portions of the bus device, but don't register it
    * now as the parent is not properly set up yet. This device will get
    @@ -420,6 +418,12 @@ static struct pci_bus *pci_alloc_child_bus(struct pci_bus *parent,
    child->primary = parent->secondary;
    child->subordinate = 0xff;

    + if (!bridge)
    + return child;
    +
    + child->self = bridge;
    + child->bridge = get_device(&bridge->dev);
    +
    /* Set up default resource pointers and names.. */
    for (i = 0; i < PCI_BRIDGE_RESOURCE_NUM; i++) {
    child->resource[i] = &bridge->resource[PCI_BRIDGE_RESOURCES+i];
    --
    1.5.6.4


    \
     
     \ /
      Last update: 2008-11-21 20:41    [W:4.133 / U:0.040 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site