Messages in this thread | | | Subject | Re: Linux 2.4.21-pre3-ac4 | From | Benjamin Herrenschmidt <> | Date | 21 Jan 2003 18:07:15 +0100 |
| |
On Tue, 2003-01-21 at 00:31, Alan Cox wrote: > On Tue, 2003-01-14 at 17:38, Benjamin Herrenschmidt wrote: > > > Fatal on PIIX PIO > > > > Ok, but PIIX runs on intel platforms with real IOs, so there is no need > > to perform a read... If we go the hwif->IOSYNC() way, we might well set > > it up to no-op on x86 PIO iops by default and read of alt-status on > > other archs if it's safe enough on other controllers/drives... > > PIIX is also found on MIPS, IA-64 and some other platforms. I also fear > that bug may be far from unique
Then we may want to have the actual implementation of the default iops IOSYNC() for PIO & MMIO be arch specific. I would suggest nothing for PIO on x86 and at least and mb() on others. For MMIO, then, we have the choice of reading the alt status, or reading the dma_base if any.
Of course these are defaults, I expect controllers like ide-pmac to implement their own IOSYNC.
That means that we must _both_ call IOSYNC and do the 400ns delay (I don't trust reading alt status to be enough, especially on MMIO based controlers, also, on ide-pmac, I plan to go read some other register instead).
What do you think ?
Ben. - 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/
| |