Alan Cox wrote:
On Sul, 2006-02-26 at 15:36 -0500, Mark Lord wrote:
It still is unreliable, as being discussed in another thread.
libata wrongly says "medium error" any time it issues a command
that the drive rejects (unsupported, invalid parameters, etc..).
It seems to still get a single case wrong. But it does the report the
ATA state correctly still.
This is biting a few people in 2.6.16-rc*, due to the FUA stuff.
It is driven by a table in
libata-scsi.c:ata_to_sense_error()
so if you can figure out the wrong entry and tweak the table that would be great
It's the fall-through case, where the table is not used.
/* No error? Undecoded? */
printk(KERN_WARNING "ata%u: no sense translation for op=0x%02x status: 0x%02x\n",
id, opcode, drv_stat);
/* For our last chance pick, use medium read error because
* it's much more common than an ATA drive telling you a write
* has failed.
*/
*sk = MEDIUM_ERROR;
*asc = 0x11; /* "unrecovered read error" */
*ascq = 0x04; /* "auto-reallocation failed" */
Cheers
-
: 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