Mmmm.. Tejun, here's a clue for what Linus saw on his system:
Right now I'm implementing support for READ/WRITE LONG commands via libata.
And the ata_piix driver gets into a non-recoverable state after successfully
doing a READ LONG command for me, a very similar state to what Linus reported.
But the ahci driver does NOT have this problem. I haven't tried others.
The thing about R/W LONG, is that they transfer a single PIO sector of data,
PLUS an extra 4 (or more) words at the end.
Funny thing about ATAPI DVD/RW drives, is that they also transfer odd amounts
of data, non-multiples of 512.
I'm betting that the ata_piix hardware has some kind of internal pipeline that
gets confused *sometimes* when a non-512 multiple passes through. Rarely, though.
I wonder if there's something on that device that we could bit-bang to reset
it's internal pipelines?
Cheers
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html