Re: [PATCH] libata: Forcing PIO0 mode on reset must not freeze system

Tejun Heo
2008-02-11T13:11:52Z

Holger Macht wrote:
>> It should be called via ata_acpi_{ap|dev}_notify() callbacks installed
>> via acpi_install_notify_handler(). Can you add dump_stack() in the
>> function and verify that it actually is being called? It could be that
>> the method is called too late or libata takes too long to actually
>> unplug the device. Hmmm... It seems what ata_acpi_handle_hotplug() does
>> isn't enough for undock. It probably should request detaching the
>> device instead of just notifying hotplug event. Anyways, please lemme
>> know whether and when the function is called.
>
> I already checked, it's never called AFAICS. And I couldn't find a place
> where it should be installed, otherwise, I would have sent a patch. The
> dock driver already calls the notify methods on devices in the dock
> station before doing the real undock.

ata_acpi_associate() calls acpi_install_notify_handler() for each
device. Isn't that enough?

> immediate_undock=1:
> User presses undock button on the dock station, dock driver calls ACPI
> undock method immediately.
>
> immediate_undock=0:
> User presses undock button on the dock station, dock driver throws uevent
> and waits for userland to undock the system via sysfs.
>
> immediate_undock is currently set to 1 by default.

Thanks for the explanation.

--
tejun