• Rafael J. Wysocki's avatar
    ACPI / scan: Make acpi_bus_hot_remove_device() acquire the scan lock · f058cdf4
    Rafael J. Wysocki authored
    The ACPI scan lock has been introduced to prevent acpi_bus_scan()
    and acpi_bus_trim() from running in parallel with each other for
    overlapping ACPI namespace scopes.  However, it is not sufficient
    to do that, because if acpi_bus_scan() is run (for an overlapping
    namespace scope) right after the acpi_bus_trim() in
    acpi_bus_hot_remove_device(), the subsequent eject will remove
    devices without removing the corresponding struct acpi_device
    objects (and possibly companion "physical" device objects).
    Therefore acpi_bus_hot_remove_device() has to acquire the scan
    lock before carrying out the bus trimming and hold it through
    the evaluation of _EJ0, so make that happen.
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    Acked-by: default avatarToshi Kani <toshi.kani@hp.com>
scan.c 46.2 KB