On Sun, 9 Jul 2006, Mark Lord wrote:
Mmm.. there are two main paths into those messages, and my current patch only caught one of them. Here's a reworked version that catches the ata_op on both paths. Maybe this will dump out the info we need to diagnose Justin's system. Compiles & links fine on 2.6.17, but not tested. Cheers --- linux/drivers/scsi/libata-scsi.c.orig 2006-06-23 13:38:37.000000000 -0400 +++ linux/drivers/scsi/libata-scsi.c 2006-07-09 12:19:52.000000000 -0400 @@ -542,6 +542,7 @@ struct ata_taskfile *tf = &qc->tf; unsigned char *sb = cmd->sense_buffer; unsigned char *desc = sb + 8; + unsigned char ata_op = tf->command; memset(sb, 0, SCSI_SENSE_BUFFERSIZE); @@ -558,6 +559,7 @@ * onto sense key, asc & ascq. */ if (tf->command & (ATA_BUSY | ATA_DF | ATA_ERR | ATA_DRQ)) { + printk(KERN_WARNING "ata_gen_ata_desc_sense: failed ata_op=0x%02x\n", ata_op); ata_to_sense_error(qc->ap->id, tf->command, tf->feature, &sb[1], &sb[2], &sb[3]); sb[1] &= 0x0f; @@ -617,6 +619,7 @@ struct scsi_cmnd *cmd = qc->scsicmd; struct ata_taskfile *tf = &qc->tf; unsigned char *sb = cmd->sense_buffer; + unsigned char ata_op = tf->command; memset(sb, 0, SCSI_SENSE_BUFFERSIZE); @@ -633,6 +636,7 @@ * onto sense key, asc & ascq. */ if (tf->command & (ATA_BUSY | ATA_DF | ATA_ERR | ATA_DRQ)) { + printk(KERN_WARNING "ata_gen_fixed_sense: failed ata_op=0x%02x\n", ata_op); ata_to_sense_error(qc->ap->id, tf->command, tf->feature, &sb[2], &sb[12], &sb[13]); sb[2] &= 0x0f;
Thanks Mark! Applying now. - : 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