Re: [PATCH 1/1] megaraid_{mm,mbox}: fix a bug in reset handler

From: Andrew Morton
Date: Thu Apr 13 2006 - 01:05:54 EST


Andrew Morton <akpm@xxxxxxxx> wrote:
>
> > @@ -2918,12 +2933,12 @@
> > wmb();
> > WRINDOOR(raid_dev, raid_dev->mbox_dma | 0x1);
> >
> > - for (i = 0; i < 0xFFFFF; i++) {
> > + for (i = 0; i < 0xFFFFFF; i++) {
> > if (mbox->numstatus != 0xFF) break;
> > rmb();
> > }
>
> Oh my. That's an awfully long interrupts-off spin.

And if that mbox is in main memory, the duration of this spin will vary by
a factor of many tens across all the different machines on which this
driver must operate.

Careful use of ndelay() or udelay() would fix that.
-
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/