Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 4 Nov 2016 17:08:52 +0000 (UTC)
From:      Scott Long <scottl@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r308299 - head/sys/cam/scsi
Message-ID:  <201611041708.uA4H8qcc032528@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: scottl
Date: Fri Nov  4 17:08:52 2016
New Revision: 308299
URL: https://svnweb.freebsd.org/changeset/base/308299

Log:
  If the da periph probe state machine gets an asc=0x44 error, the periph
  is not going to recover until the system is reset.  Treat it as a special
  case and don't allow it to fall through to quasi-success.
  
  Reviewed by:	ken, imp
  Obtained from:	Netflix
  MFC after:	3 days

Modified:
  head/sys/cam/scsi/scsi_da.c

Modified: head/sys/cam/scsi/scsi_da.c
==============================================================================
--- head/sys/cam/scsi/scsi_da.c	Fri Nov  4 17:04:45 2016	(r308298)
+++ head/sys/cam/scsi/scsi_da.c	Fri Nov  4 17:08:52 2016	(r308299)
@@ -4310,8 +4310,14 @@ dadone(struct cam_periph *periph, union 
 				 * direct access or optical disk device,
 				 * as long as it doesn't return a "Logical
 				 * unit not supported" (0x25) error.
+				 * "Internal Target Failure" (0x44) is also
+				 * special and typically means that the
+				 * device is a SATA drive behind a SATL
+				 * translation that's fallen into a
+				 * terminally fatal state.
 				 */
-				if ((have_sense) && (asc != 0x25)
+				if ((have_sense)
+				 && (asc != 0x25) && (asc != 0x44)
 				 && (error_code == SSD_CURRENT_ERROR)) {
 					const char *sense_key_desc;
 					const char *asc_desc;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201611041708.uA4H8qcc032528>