kern/188999: QUIRK: ADATA USB Flash Drive

Wes Morgan morganw at gmail.com
Fri Apr 25 19:30:01 UTC 2014


>Number:         188999
>Category:       kern
>Synopsis:       QUIRK: ADATA USB Flash Drive
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Apr 25 19:30:00 UTC 2014
>Closed-Date:
>Last-Modified:
>Originator:     Wes Morgan
>Release:        10-STABLE
>Organization:
>Environment:
FreeBSD mercury 10.0-STABLE FreeBSD 10.0-STABLE #22 r264766:264921M: Fri Apr 25 13:56:54 CDT 2014     root at mercury:/usr/obj/usr/src/sys/MERCURY  amd64

>Description:
Device needs the NO_RC16 quirk:

da0 at umass-sim0 bus 0 scbus4 target 0 lun 0
da0: <ADATA USB Flash Drive 1.00> Removable Direct Access SCSI-6 device
da0: Serial Number 1411216542340002
da0: 40.000MB/s transfers                                                  
da0: 120842MB (247484416 512 byte sectors: 255H 63S/T 15405C) 247484415 512
da0: quirks=0x2<NO_6_BYTE>
(da0:umass-sim0:0:0:0): READ(10). CDB: 28 00 0e c0 4f ff 00 00 01 00
(da0:umass-sim0:0:0:0): CAM status: SCSI Status Error
(da0:umass-sim0:0:0:0): SCSI status: Check Condition
(da0:umass-sim0:0:0:0): SCSI sense: ILLEGAL REQUEST asc:21,0 (Logical block address out of range)
(da0:umass-sim0:0:0:0): Error 22, Unretryable error
(da0:umass-sim0:0:0:0): READ(10). CDB: 28 00 0e c0 4f ff 00 00 01 00
(da0:umass-sim0:0:0:0): CAM status: SCSI Status Error
(da0:umass-sim0:0:0:0): SCSI status: Check Condition
(da0:umass-sim0:0:0:0): SCSI sense: ILLEGAL REQUEST asc:21,0 (Logical block address out of range)
(da0:umass-sim0:0:0:0): Error 22, Unretryable error
(da0:umass-sim0:0:0:0): READ(10). CDB: 28 00 0e c0 4f ff 00 00 01 00
(da0:umass-sim0:0:0:0): CAM status: SCSI Status Error
(da0:umass-sim0:0:0:0): SCSI status: Check Condition
(da0:umass-sim0:0:0:0): SCSI sense: ILLEGAL REQUEST asc:21,0 (Logical block address out of range)
(da0:umass-sim0:0:0:0): Error 22, Unretryable error


After adding the quirk to scsi_da.c, we now have the correct size:

da0: <ADATA USB Flash Drive 1.00> Removable Direct Access SCSI-6 device 
da0: Serial Number 1411216542340002
da0: 40.000MB/s transfers
da0: 120586MB (246960128 512 byte sectors: 255H 63S/T 15372C)
da0: quirks=0x12<NO_6_BYTE,NO_RC16>

>How-To-Repeat:
Problem occurs any time said flash drive is used. Two sticks of the same make and model exhibit this behavior.

>Fix:
Add DA_Q_NO_RC16 quirk to CAM layer for this device.


Patch attached with submission follows:

--- sys/cam/scsi/scsi_da.c~	2014-04-25 13:44:36.000000000 -0500
+++ sys/cam/scsi/scsi_da.c	2014-04-25 13:51:19.051644688 -0500
@@ -684,6 +684,11 @@
 		{T_DIRECT, SIP_MEDIA_REMOVABLE, "JetFlash", "Transcend*",
 		 "*"}, /*quirks*/ DA_Q_NO_RC16
 	},
+	{
+		/* ADATA USB sticks lie on RC16. */
+		{T_DIRECT, SIP_MEDIA_REMOVABLE, "ADATA", "USB Flash Drive*",
+		 "*"}, /*quirks*/ DA_Q_NO_RC16
+	},
 	/* ATA/SATA devices over SAS/USB/... */
 	{
 		/* Hitachi Advanced Format (4k) drives */


>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list