Re: [Update 2][PATCH 2/7] ACPI / scan: Introduce common code for ACPI-based device hotplug

From: Rafael J. Wysocki
Date: Thu Feb 21 2013 - 17:51:18 EST


On Thursday, February 21, 2013 10:39:40 AM Toshi Kani wrote:
> On Thu, 2013-02-21 at 16:52 +0100, Rafael J. Wysocki wrote:
> > From: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
> :
> >
> > This update fixes an issue pointed out by Toshi Kani (_OST shouldn't be
> > evaluated after successful _EJ0).
> >
> > Thanks,
> > Rafael
> >
> > ---
> > drivers/acpi/scan.c | 272 ++++++++++++++++++++++++++++++++++++++----------
> > include/acpi/acpi_bus.h | 7 +
> > 2 files changed, 226 insertions(+), 53 deletions(-)
> :
> > +static void acpi_scan_bus_device_check(acpi_handle handle, u32 ost_source)
> > +{
> > + struct acpi_device *device = NULL;
> > + u32 ost_code = ACPI_OST_SC_NON_SPECIFIC_FAILURE;
> > + int error;
> > +
> > + mutex_lock(&acpi_scan_lock);
> > +
> > + acpi_bus_get_device(handle, &device);
> > + if (device) {
> > + dev_warn(&device->dev, "Attempt to re-insert\n");
> > + goto out;
> > + }
> > + acpi_evaluate_hotplug_ost(handle, ost_source,
> > + ACPI_OST_SC_INSERT_IN_PROGRESS, NULL);
> > + ost_source = ACPI_OST_EC_OSPM_INSERTION;
>
> Thanks for the update. I confirmed that _OST was handled correctly for
> hot-delete. However, I found there is an issue for hot-add too.
> ACPI_OST_EC_OSPM_INSERTION is used for _OST when the OS initiated a
> hot-add event (which may not happen today). This case, however, is that
> hot-add is initiated by FW through an ACPI notification. So, ost_source
> must have the ACPI notification event value.

OK

So I think acpi_bus_device_eject() should be changed analogously.

I'll send another update in a while. :-)

Thanks,
Rafael


--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/