Messages in this thread | | | Date | Thu, 28 Feb 2008 16:58:17 +0100 | From | Holger Macht <> | Subject | Re: [PATCH] libata: Register for dock events when the drive is inside a dock station |
| |
On Thu 28. Feb - 22:05:53, Tejun Heo wrote: > Holger Macht wrote: > > On Thu 28. Feb - 18:35:06, Tejun Heo wrote: > >> Holger Macht wrote: > >>> 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. > >> > >>> 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. > > > >> 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).
Maybe this helps.
For further debugging, I would have to setup remote debugger, but I doubt I get around to do this for the next couple of days or even 1-2 weeks.
I could test new patches, of course.
Regards, Holger
P.S.: You'll need [1] patch for testing, otherwise the hotplug handler is never called.
[1] http://git.kernel.org/?p=linux/kernel/git/lenb/linux-acpi-2.6.git;a=commit;h=3b5fee5952ff7eb6ff7a64247a01040b8b331b74
| |