svn commit: r349339 - head/sys/cam/ata
Warner Losh
imp at FreeBSD.org
Mon Jun 24 20:18:51 UTC 2019
Author: imp
Date: Mon Jun 24 20:18:49 2019
New Revision: 349339
URL: https://svnweb.freebsd.org/changeset/base/349339
Log:
Go ahead and completely fix the ata_params before calling the veto
function. This breaks nothing that uses it in the tree since
ata_params is ignored in storvsc_ada_probe_veto which is the only
in-tree consumer.
Modified:
head/sys/cam/ata/ata_xpt.c
Modified: head/sys/cam/ata/ata_xpt.c
==============================================================================
--- head/sys/cam/ata/ata_xpt.c Mon Jun 24 20:08:28 2019 (r349338)
+++ head/sys/cam/ata/ata_xpt.c Mon Jun 24 20:18:49 2019 (r349339)
@@ -896,22 +896,14 @@ noerror:
int16_t *ptr;
int veto = 0;
+ /*
+ * Convert to host byte order, and fix the strings.
+ */
ident_buf = &softc->ident_data;
for (ptr = (int16_t *)ident_buf;
ptr < (int16_t *)ident_buf + sizeof(struct ata_params)/2; ptr++) {
*ptr = le16toh(*ptr);
}
-
- /*
- * Allow others to veto this ATA disk attachment. This
- * is mainly used by VMs, whose disk controllers may
- * share the disks with the simulated ATA controllers.
- */
- EVENTHANDLER_INVOKE(ada_probe_veto, path, ident_buf, &veto);
- if (veto) {
- goto device_fail;
- }
-
if (strncmp(ident_buf->model, "FX", 2) &&
strncmp(ident_buf->model, "NEC", 3) &&
strncmp(ident_buf->model, "Pioneer", 7) &&
@@ -926,6 +918,17 @@ noerror:
ata_bpack(ident_buf->revision, ident_buf->revision, sizeof(ident_buf->revision));
ata_btrim(ident_buf->serial, sizeof(ident_buf->serial));
ata_bpack(ident_buf->serial, ident_buf->serial, sizeof(ident_buf->serial));
+
+ /*
+ * Allow others to veto this ATA disk attachment. This
+ * is mainly used by VMs, whose disk controllers may
+ * share the disks with the simulated ATA controllers.
+ */
+ EVENTHANDLER_INVOKE(ada_probe_veto, path, ident_buf, &veto);
+ if (veto) {
+ goto device_fail;
+ }
+
/* Device may need spin-up before IDENTIFY become valid. */
if ((ident_buf->specconf == 0x37c8 ||
ident_buf->specconf == 0x738c) &&
More information about the svn-src-all
mailing list