summaryrefslogtreecommitdiffstats
path: root/sys/cam/ata
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2012-11-26 20:07:10 +0000
committermav <mav@FreeBSD.org>2012-11-26 20:07:10 +0000
commita094deb5eec583e8af69dd76ce2d7cdc77e2274d (patch)
tree7c7be7d81a2c38147fe1b3895c856b4f002ec068 /sys/cam/ata
parent6a18eda622e1e5ceebf492ff86b00faf06f68257 (diff)
downloadFreeBSD-src-a094deb5eec583e8af69dd76ce2d7cdc77e2274d.zip
FreeBSD-src-a094deb5eec583e8af69dd76ce2d7cdc77e2274d.tar.gz
Fix problem with the Samsung 840 PRO series SSD detection.
The device reports support for SATA Asynchronous Notification in its IDENTIFY data, but returns error on attempt to enable that feature. Make SATA XPT of CAM only report these errors, but not fail the device. MFC after: 1 week
Diffstat (limited to 'sys/cam/ata')
-rw-r--r--sys/cam/ata/ata_xpt.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/cam/ata/ata_xpt.c b/sys/cam/ata/ata_xpt.c
index caa4d84..54cda1b 100644
--- a/sys/cam/ata/ata_xpt.c
+++ b/sys/cam/ata/ata_xpt.c
@@ -751,6 +751,14 @@ probedone(struct cam_periph *periph, union ccb *done_ccb)
goto noerror;
/*
+ * Some Samsung SSDs report supported Asynchronous Notification,
+ * but return ABORT on attempt to enable it.
+ */
+ } else if (softc->action == PROBE_SETAN &&
+ status == CAM_ATA_STATUS_ERROR) {
+ goto noerror;
+
+ /*
* SES and SAF-TE SEPs have different IDENTIFY commands,
* but SATA specification doesn't tell how to identify them.
* Until better way found, just try another if first fail.
OpenPOWER on IntegriCloud