Hi!

> > Hmm, hitting sysrq-w produces no blocked task until I eject pcmcia
> > card. Backtrace there is:
> > 
> > Greg, I believe some traces lead to sysfs, can you help here?
> 
> ide_unregister() does not complete :-(.
> 
>         device_unregister(&hwif->gendev);
> +       printk("ide_unregister: waiting for rel_comp\n");
>         wait_for_completion(&hwif->gendev_rel_comp);
> 
> ...that wait_for_completion never returns.

...and this fixes PCMCIA/IDE for me... (Pseudopatch)

                                                                Pavel

diff --git a/drivers/ide/ide.c b/drivers/ide/ide.c
--- a/drivers/ide/ide.c
+++ b/drivers/ide/ide.c
@@ -336,29 +341,38 @@ void ide_unregister(ide_hwif_t *hwif)
                        ++irq_count;
                g = g->next;
        } while (g != hwgroup->hwif);
        if (irq_count == 1)
                free_irq(hwif->irq, hwgroup);
 
        ide_remove_port_from_hwgroup(hwif);
 
        device_unregister(hwif->portdev);
        device_unregister(&hwif->gendev);
-       wait_for_completion(&hwif->gendev_rel_comp);
+//     wait_for_completion(&hwif->gendev_rel_comp);
+       msleep(1000);
 
        /*
         * Remove us from the kernel's knowledge
         */

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) 
http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

_______________________________________________
Linux PCMCIA reimplementation list
http://lists.infradead.org/mailman/listinfo/linux-pcmcia

Reply via email to