$OpenBSD $

Upstream r5213: Use correct devicename for autodetection
Upstream r5214: Apply conversion to seconds for timeouts in scsi_pass_through
Upstream r5215: fix SAT autodetection for the sd* devices

--- os_openbsd.cpp   Tue Oct  6 17:31:47 2020
+++ os_openbsd.cpp.patched Wed Apr  7 09:39:24 2021
@@ -266,7 +266,7 @@ bool openbsd_scsi_device::scsi_pass_through(scsi_cmnd_
   sc.databuf = (char *)iop->dxferp;
   sc.datalen = iop->dxfer_len;
   sc.senselen = iop->max_sense_len;
-  sc.timeout = iop->timeout == 0 ? 60000 : iop->timeout;	/* XXX */
+  sc.timeout = (iop->timeout == 0 ? 60 : iop->timeout) * 1000;
   sc.flags =
     (iop->dxfer_dir == DXFER_NONE ? SCCMD_READ :
     (iop->dxfer_dir == DXFER_FROM_DEVICE ? SCCMD_READ : SCCMD_WRITE));
@@ -582,17 +582,17 @@ smart_device * openbsd_smart_interface::autodetect_sma
   if (str_starts_with(test_name, net_dev_prefix)) {
     test_name += strlen(net_dev_prefix);
     if (!strncmp(net_dev_ata_disk, test_name, strlen(net_dev_ata_disk)))
-      return get_ata_device(test_name, "ata");
+      return get_ata_device(name, "ata");
     if (!strncmp(net_dev_scsi_disk, test_name, strlen(net_dev_scsi_disk))) {
       // XXX Try to detect possible USB->(S)ATA bridge
       // XXX get USB vendor ID, product ID and version from sd(4)/umass(4).
       // XXX check sat device via get_usb_dev_type_by_id().
 
       // No USB bridge found, assume regular SCSI device
-      return get_scsi_device(test_name, "scsi");
+      return get_scsi_device(name, "");
     }
     if (!strncmp(net_dev_scsi_tape, test_name, strlen(net_dev_scsi_tape)))
-      return get_scsi_device(test_name, "scsi");
+      return get_scsi_device(name, "scsi");
   }
   // device type unknown
   return 0;
