From owner-svn-src-stable@FreeBSD.ORG Sat Sep 14 09:10:01 2013 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 9DBD8C8E; Sat, 14 Sep 2013 09:10:01 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 8B0632AF3; Sat, 14 Sep 2013 09:10:01 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r8E9A14k094661; Sat, 14 Sep 2013 09:10:01 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r8E9A1Ve094660; Sat, 14 Sep 2013 09:10:01 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201309140910.r8E9A1Ve094660@svn.freebsd.org> From: Alexander Motin Date: Sat, 14 Sep 2013 09:10:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r255548 - stable/9/sys/cam/scsi X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Sep 2013 09:10:01 -0000 Author: mav Date: Sat Sep 14 09:10:01 2013 New Revision: 255548 URL: http://svnweb.freebsd.org/changeset/base/255548 Log: MFC r253803: Add NO_RC16 quirk to make da driver avoid using READ CAPACITY(16) command if possible. Use it for Kingston JetFlash USB sticks, that are known to return garbage in response to that command. Modified: stable/9/sys/cam/scsi/scsi_da.c Directory Properties: stable/9/sys/ (props changed) Modified: stable/9/sys/cam/scsi/scsi_da.c ============================================================================== --- stable/9/sys/cam/scsi/scsi_da.c Sat Sep 14 09:06:32 2013 (r255547) +++ stable/9/sys/cam/scsi/scsi_da.c Sat Sep 14 09:10:01 2013 (r255548) @@ -99,7 +99,8 @@ typedef enum { DA_Q_NO_SYNC_CACHE = 0x01, DA_Q_NO_6_BYTE = 0x02, DA_Q_NO_PREVENT = 0x04, - DA_Q_4K = 0x08 + DA_Q_4K = 0x08, + DA_Q_NO_RC16 = 0x10 } da_quirks; #define DA_Q_BIT_STRING \ @@ -107,7 +108,8 @@ typedef enum { "\001NO_SYNC_CACHE" \ "\002NO_6_BYTE" \ "\003NO_PREVENT" \ - "\0044K" + "\0044K" \ + "\005NO_RC16" typedef enum { DA_CCB_PROBE_RC = 0x01, @@ -681,6 +683,11 @@ static struct da_quirk_entry da_quirk_ta {T_DIRECT, SIP_MEDIA_REMOVABLE, "Kingston", "DataTraveler G3", "1.00"}, /*quirks*/ DA_Q_NO_PREVENT }, + { + /* At least several Transcent USB sticks lie on RC16. */ + {T_DIRECT, SIP_MEDIA_REMOVABLE, "JetFlash", "Transcend*", + "*"}, /*quirks*/ DA_Q_NO_RC16 + }, /* ATA/SATA devices over SAS/USB/... */ { /* Hitachi Advanced Format (4k) drives */ @@ -2087,7 +2094,8 @@ daregister(struct cam_periph *periph, vo softc->minimum_cmd_size = 16; /* Predict whether device may support READ CAPACITY(16). */ - if (SID_ANSI_REV(&cgd->inq_data) >= SCSI_REV_SPC3) { + if (SID_ANSI_REV(&cgd->inq_data) >= SCSI_REV_SPC3 && + (softc->quirks & DA_Q_NO_RC16) == 0) { softc->flags |= DA_FLAG_CAN_RC16; softc->state = DA_STATE_PROBE_RC16; }