Skip to contentSkip to conversation

libata-dev-2.6: verify cmd bug fixes/support

PATCH Applied Brett Russ 2 participants 4 messages Feb 2, 2005 – Feb 6, 2005

Subsystems (2)
lore
Share & tools
lore

Brett Russ

author
#0 lore raw

PATCH 1/1 libata-dev-2.6: verify cmd bug fixes/support

Below find a patch which gets the read verify command working. Note that in order to get this 100% working one also needs to apply Albert Lee's patch:
http://article.gmane.org/gmane.linux.ide/2798
to libata* before or after this. I've stripped out his portion of the changes because I can't sign off on his work.

This work was verified using a SATA bus analyzer and the sg_verify utility which sends VERIFY_10. Should libata support VERIFY_12?

===== drivers/scsi/libata-scsi.c 1.68 vs edited =====

drivers/scsi/libata-scsi.c 2005-02-01 19:26:55 -05:00 renamed from drivers/scsi/libata-scsi.c 2004-12-29 02:35:53 -05:00 +6 -1
@@ -741,13 +741,18 @@
        }
 
        if (lba48) {
+               tf->command = ATA_CMD_VERIFY_EXT;
+
                tf->hob_nsect = (n_sect >> 8) & 0xff;
 
                tf->hob_lbah = (sect >> 40) & 0xff;
                tf->hob_lbam = (sect >> 32) & 0xff;
                tf->hob_lbal = (sect >> 24) & 0xff;
-       } else
+       } else {
+               tf->command = ATA_CMD_VERIFY;
+
                tf->device |= (sect >> 24) & 0xf;
+       }
 
        tf->nsect = n_sect & 0xff;
 

===== include/linux/ata.h 1.20 vs edited =====

include/linux/ata.h 2005-02-01 16:28:09 -05:00 renamed from include/linux/ata.h 2004-11-14 03:21:22 -05:00 +3 -0
@@ -123,6 +123,9 @@
        ATA_CMD_PIO_WRITE_EXT   = 0x34,
        ATA_CMD_SET_FEATURES    = 0xEF,
        ATA_CMD_PACKET          = 0xA0,
+       ATA_CMD_VERIFY          = 0x40,
+       ATA_CMD_VERIFY_EXT      = 0x42,
+
 
        /* SETFEATURES stuff */
        SETFEATURES_XFER        = 0x03,
#1 lore raw
Quoted 5 lines · Brett Russ

Below find a patch which gets the read verify command working. Note that in order to get this 100% working one also needs to apply Albert Lee's patch:
http://article.gmane.org/gmane.linux.ide/2798
to libata* before or after this. I've stripped out his portion of the changes because I can't sign off on his work.

This work was verified using a SATA bus analyzer and the sg_verify utility which sends VERIFY_10. Should libata support VERIFY_12?

Unless there is some major application which needs _12 variants, I would prefer to avoid implementing them.

I want libata-scsi.c to be compatible with the upcoming T10 "SAT" specification, but I also wish to avoid translations which are rarely used (keeps the code small).

Quoted 27 lines

===== drivers/scsi/libata-scsi.c 1.68 vs edited =====

drivers/scsi/libata-scsi.c 2005-02-01 19:26:55 -05:00 renamed from drivers/scsi/libata-scsi.c 2004-12-29 02:35:53 -05:00 +6 -1
@@ -741,13 +741,18 @@
        }
 
        if (lba48) {
+               tf->command = ATA_CMD_VERIFY_EXT;
+
                tf->hob_nsect = (n_sect >> 8) & 0xff;
 
                tf->hob_lbah = (sect >> 40) & 0xff;
                tf->hob_lbam = (sect >> 32) & 0xff;
                tf->hob_lbal = (sect >> 24) & 0xff;
-       } else
+       } else {
+               tf->command = ATA_CMD_VERIFY;
+
                tf->device |= (sect >> 24) & 0xf;
+       }
 
        tf->nsect = n_sect & 0xff;
 

===== include/linux/ata.h 1.20 vs edited =====

include/linux/ata.h 2005-02-01 16:28:09 -05:00 line 127

Quoted 5 lines
include/linux/ata.h 2005-02-01 16:28:09 -05:00 renamed from include/linux/ata.h 2004-11-14 03:21:22 -05:00 +2 -0
@@ -123,6 +123,9 @@
        ATA_CMD_PIO_WRITE_EXT   = 0x34,
        ATA_CMD_SET_FEATURES    = 0xEF,
        ATA_CMD_PACKET          = 0xA0,
+       ATA_CMD_VERIFY          = 0x40,
+       ATA_CMD_VERIFY_EXT      = 0x42,

Your patch looks good, and I tried to apply it, but apparently your mailer turned all tabs into spaces. Can you resend?

Jeff

author
#2 lore raw

Re: [PATCH] libata-2.6: verify cmd bug fixes/support

Below is a resend of a patch which gets the read verify command working.
I moved the patch to the libata-2.6 tree since that seems to be where
Albert's patch ended up, so let's keep them together. Sending as an attachment to avoid mailer interference.

===== drivers/scsi/libata-scsi.c 1.63 vs edited =====

drivers/scsi/libata-scsi.c +6 -1
@@ -488,13 +488,18 @@
 	}
 
 	if (lba48) {
+		tf->command = ATA_CMD_VERIFY_EXT;
+
 		tf->hob_nsect = (n_sect >> 8) & 0xff;
 
 		tf->hob_lbah = (sect >> 40) & 0xff;
 		tf->hob_lbam = (sect >> 32) & 0xff;
 		tf->hob_lbal = (sect >> 24) & 0xff;
-	} else
+	} else {
+		tf->command = ATA_CMD_VERIFY;
+
 		tf->device |= (sect >> 24) & 0xf;
+	}
 
 	tf->nsect = n_sect & 0xff;
 

===== include/linux/ata.h 1.21 vs edited =====

include/linux/ata.h +2 -0
@@ -123,6 +123,8 @@
 	ATA_CMD_PIO_WRITE_EXT	= 0x34,
 	ATA_CMD_SET_FEATURES	= 0xEF,
 	ATA_CMD_PACKET		= 0xA0,
+	ATA_CMD_VERIFY		= 0x40,
+	ATA_CMD_VERIFY_EXT	= 0x42,
 
 	/* SETFEATURES stuff */
 	SETFEATURES_XFER	= 0x03,
Applied
#3 lore raw

Re: [PATCH] libata-2.6: verify cmd bug fixes/support

Quoted 5 lines · Brett Russ

Below is a resend of a patch which gets the read verify command working.
I moved the patch to the libata-2.6 tree since that seems to be where
Albert's patch ended up, so let's keep them together. Sending as an attachment to avoid mailer interference.

applied, thanks