Messages in this thread | | | Subject | Re: acpi : acpi_bus_trim() stops removing devices when failing to remove the device | From | Toshi Kani <> | Date | Wed, 10 Oct 2012 07:01:05 -0600 |
| |
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
| |