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 -v3 43/47] x86, PCI: add __pci_scan_root_bus_on_node() that can skip bus_add
    Date
    So could insert pus pci_assign_unassigned_bus_resources() before do bus_add.

    Signed-off-by: Yinghai Lu <yinghai@kernel.org>
    ---
    arch/x86/include/asm/pci.h | 2 ++
    arch/x86/pci/common.c | 11 ++++++++---
    2 files changed, 10 insertions(+), 3 deletions(-)

    diff --git a/arch/x86/include/asm/pci.h b/arch/x86/include/asm/pci.h
    index df75d07..bb015c7 100644
    --- a/arch/x86/include/asm/pci.h
    +++ b/arch/x86/include/asm/pci.h
    @@ -24,6 +24,8 @@ extern int noioapicquirk;
    extern int noioapicreroute;

    /* scan a bus after allocating a pci_sysdata for it */
    +struct pci_bus * __devinit __pci_scan_bus_on_node(int busno,
    + struct pci_ops *ops, int node, bool bus_add);
    extern struct pci_bus *pci_scan_bus_on_node(int busno, struct pci_ops *ops,
    int node);
    extern struct pci_bus *pci_scan_bus_with_sysdata(int busno);
    diff --git a/arch/x86/pci/common.c b/arch/x86/pci/common.c
    index 35931f6..2ebdc231 100644
    --- a/arch/x86/pci/common.c
    +++ b/arch/x86/pci/common.c
    @@ -625,7 +625,8 @@ static void release_pci_sysdata(struct pci_host_bridge *bridge)
    kfree(sd);
    }

    -struct pci_bus * __devinit pci_scan_bus_on_node(int busno, struct pci_ops *ops, int node)
    +struct pci_bus * __devinit __pci_scan_bus_on_node(int busno,
    + struct pci_ops *ops, int node, bool bus_add)
    {
    LIST_HEAD(resources);
    struct pci_bus *bus = NULL;
    @@ -639,7 +640,7 @@ struct pci_bus * __devinit pci_scan_bus_on_node(int busno, struct pci_ops *ops,
    sd->node = node;
    x86_pci_root_bus_resources(busno, &resources);
    printk(KERN_DEBUG "PCI: Probing PCI hardware (bus %02x)\n", busno);
    - bus = pci_scan_root_bus(NULL, busno, ops, sd, &resources);
    + bus = __pci_scan_root_bus(NULL, busno, ops, sd, &resources, bus_add);
    if (bus)
    pci_set_host_bridge_release(to_pci_host_bridge(bus->bridge),
    release_pci_sysdata, sd);
    @@ -650,7 +651,11 @@ struct pci_bus * __devinit pci_scan_bus_on_node(int busno, struct pci_ops *ops,

    return bus;
    }
    -
    +struct pci_bus * __devinit pci_scan_bus_on_node(int busno,
    + struct pci_ops *ops, int node)
    +{
    + return __pci_scan_bus_on_node(busno, ops, node, true);
    +}
    struct pci_bus * __devinit pci_scan_bus_with_sysdata(int busno)
    {
    return pci_scan_bus_on_node(busno, &pci_root_ops, -1);
    --
    1.7.7


    \
     
     \ /
      Last update: 2012-03-19 06:59    [W:4.071 / U:0.068 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site