Re: IDE lockups with 2.5.28...

From: Petr Vandrovec (VANDROVE@vc.cvut.cz)
Date: Fri Jul 26 2002 - 05:46:15 EST


On 26 Jul 02 at 12:30, Marcin Dalecki wrote:
> Petr Vandrovec wrote:
>
> > Well, no. Both of these loop have completely different terminating conditions.
> > You exit when IDE hardware is busy, while SCSI exits if hardware is busy,
> > or when there is nothing to do. Fundamental difference.
>
> Shit - you are right. We look until the next request sets IDE_BUSY as a
> side effect.... I just wanted to close the window between clear we clear
> IDE_BUSY in ata_irq_handler just before recalling do_request to set it
> immediately on again.
> Should be both of course.

Most of IDE code access IDE_BUSY flag when queue lock is held. So just
move it inside lock everywhere... As side benefit you do not have to use
atomic test_and_set then, you can use faster non-atomic (without lock prefix)
equivalents.

In fact it looks to me like that only tcq's udma_tcq_start accesses
IDE_BUSY without holding queue lock, and it is only read access to print
some BUG()-like message.
                                                        Petr Vandrovec
                                                        vandrove@vc.cvut.cz
                                                                       
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Tue Jul 30 2002 - 14:00:23 EST