Re: [PATCH] libata: Register for dock events when the drive is inside a dock station
From: Holger Macht <hidden>
Date: 2008-02-28 18:31:42
Also in:
lkml
On Thu 28. Feb - 16:58:17, Holger Macht wrote:
On Thu 28. Feb - 22:05:53, Tejun Heo wrote:quoted
Holger Macht wrote:quoted
On Thu 28. Feb - 18:35:06, Tejun Heo wrote:quoted
Holger Macht wrote:quoted
The hotplug handler is only called if the device is actually inside the dock station. If it is not, nothing will happen. I hope that I got your question right?Yes, right.quoted
However, if this would be helpful, it would be easy to add something like a am_I_on_dock_station?(...) function to the dock driver.Hmm.. as long as the event is only delivered when the device is actually connected behind dock, I think it's okay.The dock driver also export a is_dock_device(acpi_handle) function, which could be used to make more fine-grained decisions, but it shouldn't be needed here.quoted
Does the attached patch fix the previous undock problem? It now explicitly tells libata EH to detach the notified devices on EJECT_REQUEST and wait for EH to complete such that control is returned to ACPI after all notified devices are actually detached.No it does not. Apparently, it freezes faster (from 1 second down to immediately). Before, it just froze when someone (in this case HAL) tried to access the device. The "echo 1 > undock" call does not even return, so it might have introduced another problem.The code should be in generally right direction. Can you be persuaded into tracking down what's going on?I had a quick glance with adding some printk's. Now I got a different behaviour once. System did not freeze, but were certainly confused. The last thing which got printed to messages was exactly before spin_lock_irqsave(ap->lock, flags); at the beginning of ata_acpi_handle_hotplug(...) The printk immediately after this call didn't come through anymore (with being able to use the system for a short time afterwards).
Ok, it seems that there is something broken somewhere else in 2.6.25.rc3. Not sure at all if it's your patch freezing the machine. I'll give 2.6.24.3 a try... Regards, Holger