Re: [PATCH] genhd fix or ide workaround -- choose one

Anton Vorontsov
2006-10-19T12:24:25Z

On Thu, Oct 19, 2006 at 01:05:52PM +0100, Alan Cox wrote:
> Ar Iau, 2006-10-19 am 02:15 +0400, ysgrifennodd Anton Vorontsov:
> > Hi all,
> >
> > I've caught deadlock inside IDE layer using IDE-CS: after accessing
> > to IDE disk placed in PCMCIA (CF card really), it will never probe
> > again after pulling it from PCMCIA/CF.
>
> Works for me, and has done for a long time and I've also had no other
> reports of this in the past couple of years so I'm curious what trips it
> in your case ?

It just happens every time on HP iPaq hx4700. hx4700 have internal CF
slot, which is working via pxa2xx pcmcia driver.

Have you tried it recently or about six months ago? Because at that time
it was working for me too, but some kernel change
(I suppose semaphores->completion conversion) unearthed that bug, but I'm
not sure.

> > The kernel is stuck at
> > drivers/ide/ide.c:ide_unregister():604:
> >
> > 602 spin_unlock_irq(&ide_lock);
> > 603 device_unregister(&drive->gendev);
> > 604 wait_for_completion(&drive->gendev_rel_comp);
> > 605 spin_lock_irq(&ide_lock);
>
> We need to know all the references have gone away, if someone has a disk
> referenced and you pull it out we can't clean up immediately so this is
> the right place to get stuck both on a refcounting bug and if you've got
> something holding a reference for real (eg HAL)

No HAL used. No udev used. Bare kernel + static /dev + shell. CF is not
even mounted once.

Have you read comments inside -fix patch? Imho it's obvious that nobody
putting driverfs_device second time, but got it twice.

Thanks,

-- Anton (irc: bd2)