lkml.org 
[lkml]   [2022]   [Jun]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v2 05/16] USB: ACPI: Replace usb_acpi_find_port() with acpi_find_child_by_adr()
    On Mon, Jun 13, 2022 at 08:39:37PM +0200, Rafael J. Wysocki wrote:
    > From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    >
    > Instead of walking the list of children of an ACPI device directly
    > in order to find the child matching a given bus address, use
    > acpi_find_child_by_adr() for this purpose.
    >
    > Also notice that if acpi_find_child_by_adr() doesn't find a matching
    > child, acpi_find_child_device() will not find it too, so directly
    > replace usb_acpi_find_port() in usb_acpi_get_companion_for_port() with
    > acpi_find_child_by_adr() and drop it entirely.
    >
    > Apart from simplifying the code, this will help to eliminate the
    > children list head from struct acpi_device as it is redundant and it
    > is used in questionable ways in some places (in particular, locking is
    > needed for walking the list pointed to it safely, but it is often
    > missing).
    >
    > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

    Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>

    > ---
    >
    > v1 -> v2:
    > * Drop usb_acpi_find_port() (Heikki, Andy).
    > * Change the subject accordingly.
    >
    > ---
    > drivers/usb/core/usb-acpi.c | 18 +-----------------
    > 1 file changed, 1 insertion(+), 17 deletions(-)
    >
    > Index: linux-pm/drivers/usb/core/usb-acpi.c
    > ===================================================================
    > --- linux-pm.orig/drivers/usb/core/usb-acpi.c
    > +++ linux-pm/drivers/usb/core/usb-acpi.c
    > @@ -124,22 +124,6 @@ out:
    > */
    > #define USB_ACPI_LOCATION_VALID (1 << 31)
    >
    > -static struct acpi_device *usb_acpi_find_port(struct acpi_device *parent,
    > - int raw)
    > -{
    > - struct acpi_device *adev;
    > -
    > - if (!parent)
    > - return NULL;
    > -
    > - list_for_each_entry(adev, &parent->children, node) {
    > - if (acpi_device_adr(adev) == raw)
    > - return adev;
    > - }
    > -
    > - return acpi_find_child_device(parent, raw, false);
    > -}
    > -
    > static struct acpi_device *
    > usb_acpi_get_companion_for_port(struct usb_port *port_dev)
    > {
    > @@ -170,7 +154,7 @@ usb_acpi_get_companion_for_port(struct u
    > port1 = port_dev->portnum;
    > }
    >
    > - return usb_acpi_find_port(adev, port1);
    > + return acpi_find_child_by_adr(adev, port1);
    > }
    >
    > static struct acpi_device *
    >
    >

    --
    heikki

    \
     
     \ /
      Last update: 2022-06-14 09:38    [W:4.218 / U:0.448 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site