Re: acpi : acpi_bus_trim() stops removing devices when failing toremove the device

From: Toshi Kani
Date: Wed Oct 10 2012 - 09:08:06 EST


On Wed, 2012-10-10 at 10:07 +0900, Yasuaki Ishimatsu wrote:
:
> >> if (acpi_drv) {
> >> if (acpi_drv->ops.notify)
> >> acpi_device_remove_notify_handler(acpi_dev);

THIS CALL

> >> - if (acpi_drv->ops.remove)
> >> - acpi_drv->ops.remove(acpi_dev, acpi_dev->removal_type);
> >> + if (acpi_drv->ops.remove) {
> >> + ret = acpi_drv->ops.remove(acpi_dev,
> >> + acpi_dev->removal_type);
> >> + if (ret)
> >
> > Hi Yasuaki,
> >
> > Shouldn't the notify handler be reinstalled here if it was removed by
> > the acpi_device_remove_notify_handler() above?
>
> I do not reinstall the notify handler.
> The function has not been removed on linux-3.6. And the patch is created
> on linux-3.6. So the function remains in the patch.

Umm... I am not sure what you meant. Let me clarify my comment. When
acpi_drv->ops.remove() failed, I thought we would need to roll-back the
procedure done by the acpi_device_remove_notify_handler() call, which I
indicated as "THIS CALL" above. So, in this error path, don't we need
something like below?

if (acpi_drv->ops.notify)
acpi_device_install_notify_handler(acpi_dev)

Thanks,
-Toshi




--
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/