• R
    ACPI / hotplug / PCI: Store acpi_device pointer in acpiphp_context · bbcbfc0e
    Rafael J. Wysocki 提交于
    After recent modifications of the ACPI core making it create a struct
    acpi_device object for every namespace node representing a device
    regardless of the current status of that device the ACPIPHP code
    can store a struct acpi_device pointer instead of an ACPI handle
    in struct acpiphp_context.  This immediately makes it possible to
    avoid making potentially costly calls to acpi_bus_get_device() in
    two places and allows some more simplifications to be made going
    forward.
    
    The reason why that is correct is because ACPIPHP only installs
    hotify handlers for namespace nodes that exist when
    acpiphp_enumerate_slots() is called for their parent bridge.
    That only happens if the parent bridge has an ACPI companion
    associated with it, which means that the ACPI namespace scope
    in question has been scanned already at that point.  That, in
    turn, means that struct acpi_device objects have been created
    for all namespace nodes in that scope and pointers to those
    objects can be stored directly instead of their ACPI handles.
    Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
    Tested-by: NMika Westerberg <mika.westerberg@linux.intel.com>
    bbcbfc0e
acpiphp_glue.c 29.1 KB