Re: Promise, DMA and RAID5 problems running 2.4.1

Petr Vandrovec
2001-02-07T19:42:13Z

On 7 Feb 01 at 19:33, Alan Cox wrote:
> > It is known bug which I reported to Andre already. Open
> > drivers/ide/ide.c in favorite text editor, and replace strange
> > body of ide_delay_50ms() with simple mdelay(50). Promise driver
> > invokes ide_delay_50ms with interrupts disabled, so it freezes
> > here forever. If you have NMI watchdog, you'll get nice oopses.
>
> Its a bug in the promise driver. ide_delay_50ms() is being friendly to the
> rest of the box. If the reset path for the promise cant be polite then it
> should use mdelay() itself.

Iff CONFIG_BLK_DEV_IDECS is set then yes, doing schedule is better.
But I do not see any benefit in doing

unsigned long timeout = jiffies + ((HZ + 19)/20) + 1;
while (0 < (signed long)(timeout - jiffies));

over

mdelay(50);

And on my box, busy while loop is executed, not schedule(HZ/20)...

Thanks,
Petr Vandrovec
vandrove@vc.cvut.cz