Re: IDE problems in 2.6.12-rc1-bk1 onwards (was Re: 2.6.12-rc3-mm1)

From: Richard Purdie
Date: Mon May 02 2005 - 14:43:46 EST


Alan Cox:
On Sul, 2005-05-01 at 18:59, Richard Purdie wrote:
Solution: ide_unregister() should return failure and pass responsibility for
handling it to ide-cs or it should always succeed. I'd favour the latter as
the ide layer should really handle its own cleanup. Maybe a parameter should
be added to ide_unregister() to select the behaviour if the drive is busy/in
use? If the hardware is gone, we want it to happen regardless for example...

This is what the -ac tree has done for some time. It tried to unregister
and
if that fails will wait and retry. It also sets the I/O operations to a
set of
null operations to ensure that there are no further unneccessary
writes/reads from the empty bus slot.

We've had this conversation before - I tried the -ac tree and found that whilst it will retry, it blocked whilst waiting and this blocking meant the status of the drive never changed. The "cardctl eject" command would therefore just sit there locked up which didn't really solve my problem.

The changeover to the driver model means all the callbacks.get handled by the kobjects and the function only needs to be called once. I applied that patch and so far it seems to be working very well. As an added bonus, hotunpluging is also working. I can still make it oops but seemingly not in the ide layer any longer (now it looks vfs related :).

Regards,

Richard

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/