• Rafael J. Wysocki's avatar
    ACPI / scan: Define non-empty device removal handler · d783156e
    Rafael J. Wysocki authored
    If an ACPI namespace node is removed (usually, as a result of a
    table unload), and there is a data object attached to that node,
    acpi_ns_delete_node() executes the removal handler submitted to
    acpi_attach_data() for that object.  That handler is currently empty
    for struct acpi_device objects, so it is necessary to detach those
    objects from the corresponding ACPI namespace nodes in advance every
    time a table unload may happen.  That is cumbersome and inefficient
    and leads to some design constraints that turn out to be quite
    inconvenient (in particular, struct acpi_device objects cannot be
    registered for namespace nodes representing devices that are not
    reported as present or functional by _STA).
    
    For this reason, introduce a non-empty removal handler for ACPI
    device objects that will unregister them when their ACPI namespace
    nodes go away.
    
    This code modification alone should not change functionality except
    for the ordering of the ACPI hotplug workqueue which should not
    matter (without subsequent code changes).
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    Tested-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
    d783156e
osl.c 43.4 KB