lkml.org 
[lkml]   [2013]   [Jul]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[RFC][PATCH 19/30] ACPI / hotplug / PCI: Rework namespace scanning and trimming routines
    Date
    From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

    The acpiphp_bus_trim() and acpiphp_bus_add() functions need not
    return error codes that are never checked, so redefine them and
    simplify them a bit.

    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    ---
    drivers/pci/hotplug/acpiphp_glue.c | 52 +++++++++----------------------------
    1 file changed, 13 insertions(+), 39 deletions(-)

    Index: linux-pm/drivers/pci/hotplug/acpiphp_glue.c
    ===================================================================
    --- linux-pm.orig/drivers/pci/hotplug/acpiphp_glue.c
    +++ linux-pm/drivers/pci/hotplug/acpiphp_glue.c
    @@ -552,53 +552,27 @@ static unsigned char acpiphp_max_busnr(s
    return max;
    }

    -
    /**
    - * acpiphp_bus_add - add a new bus to acpi subsystem
    - * @func: acpiphp_func of the bridge
    + * acpiphp_bus_trim - Trim device objects in an ACPI namespace subtree.
    + * @handle: ACPI device object handle to start from.
    */
    -static int acpiphp_bus_add(struct acpiphp_func *func)
    +static void acpiphp_bus_trim(acpi_handle handle)
    {
    - acpi_handle handle = func_to_handle(func);
    - struct acpi_device *device;
    - int ret_val;
    -
    - if (!acpi_bus_get_device(handle, &device)) {
    - dbg("bus exists... trim\n");
    - /* this shouldn't be in here, so remove
    - * the bus then re-add it...
    - */
    - acpi_bus_trim(device);
    - }
    -
    - ret_val = acpi_bus_scan(handle);
    - if (!ret_val)
    - ret_val = acpi_bus_get_device(handle, &device);
    -
    - if (ret_val)
    - dbg("error adding bus, %x\n", -ret_val);
    + struct acpi_device *adev = NULL;

    - return ret_val;
    + acpi_bus_get_device(handle, &adev);
    + if (adev)
    + acpi_bus_trim(adev);
    }

    -
    /**
    - * acpiphp_bus_trim - trim a bus from acpi subsystem
    - * @handle: handle to acpi namespace
    + * acpiphp_bus_add - Scan ACPI namespace subtree.
    + * @handle: ACPI object handle to start the scan from.
    */
    -static int acpiphp_bus_trim(acpi_handle handle)
    +static void acpiphp_bus_add(acpi_handle handle)
    {
    - struct acpi_device *device;
    - int retval;
    -
    - retval = acpi_bus_get_device(handle, &device);
    - if (retval) {
    - dbg("acpi_device not found\n");
    - return retval;
    - }
    -
    - acpi_bus_trim(device);
    - return 0;
    + acpiphp_bus_trim(handle);
    + acpi_bus_scan(handle);
    }

    static void acpiphp_set_acpi_region(struct acpiphp_slot *slot)
    @@ -661,7 +635,7 @@ static int __ref enable_device(struct ac
    goto err_exit;

    list_for_each_entry(func, &slot->funcs, sibling)
    - acpiphp_bus_add(func);
    + acpiphp_bus_add(func_to_handle(func));

    num = pci_scan_slot(bus, PCI_DEVFN(slot->device, 0));
    if (num == 0) {


    \
     
     \ /
      Last update: 2013-07-12 02:41    [W:4.106 / U:0.192 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site