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
This commit is contained in:
scottl 2016-11-04 17:08:52 +00:00
parent 4c55279f60
commit 21cc02ad16

View File

@ -4310,8 +4310,14 @@ dadone(struct cam_periph *periph, union ccb *done_ccb)
* 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;