lkml.org 
[lkml]   [2022]   [Jun]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH v1 00/16] ACPI: Get rid of the list of children in struct acpi_device
    From
    On 6/9/22 11:12, Andy Shevchenko wrote:
    > On Thu, Jun 09, 2022 at 03:44:27PM +0200, Rafael J. Wysocki wrote:
    >> Hi All,
    >>
    >> Confusingly enough, the ACPI subsystem stores the information on the given ACPI
    >> device's children in two places: as the list of children in struct acpi_device
    >> and (as a result of device registration) in the list of children in the embedded
    >> struct device.
    >>
    >> These two lists agree with each other most of the time, but not always (like in
    >> error paths in some cases), and the list of children in struct acpi_device is
    >> not generally safe to use without locking. In principle, it should always be
    >> walked under acpi_device_lock, but in practice holding acpi_scan_lock is
    >> sufficient for that too. However, its users may not know whether or not
    >> they operate under acpi_scan_lock and at least in some cases it is not accessed
    >> in a safe way (note that ACPI devices may go away as a result of hot-remove,
    >
    >> unlike OF nodes).
    >
    > Hmm... Does it true for DT overlays? Not an expert in DT overlays, though,
    > adding Rob and Frank.

    DT nodes can be removed. The devicetree code uses devtree_lock and of_mutex
    as needed for protection.

    -Frank

    >
    >> For this reason, it is better to consolidate the code that needs to walk the
    >> children of an ACPI device which is the purpose of this patch series.
    >>
    >> Overall, it switches over all of the users of the list of children in struct
    >> acpi_device to using helpers based on the driver core's mechanics and finally
    >> drops that list, but some extra cleanups are done on the way.
    >>
    >> Please refer to the patch changelogs for details.
    >
    > I'm going to look the individual patches.
    >

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