DF-4717 / fix.diff
--- a/sys/dev/raid/aac/aac_cam.c +++ b/sys/dev/raid/aac/aac_cam.c @@ -411,6 +411,10 @@ srb = (struct aac_srb *)&fib->data[0]; cm->cm_datalen = 0; + /* Set command (needed by XPT_SCSI_IO and XPT_RESET_DEV alike) */ + fib->Header.Command = (sc->flags & AAC_FLAGS_SG_64BIT) ? + ScsiPortCommandU64 : ScsiPortCommand; + switch (ccb->ccb_h.flags & CAM_DIR_MASK) { case CAM_DIR_IN: srb->flags = AAC_SRB_FLAGS_DATA_IN; @@ -447,10 +451,6 @@ else bcopy(csio->cdb_io.cdb_bytes, (u_int8_t *)&srb->cdb[0], srb->cdb_len); - - /* Set command */ - fib->Header.Command = (sc->flags & AAC_FLAGS_SG_64BIT) ? - ScsiPortCommandU64 : ScsiPortCommand; /* Map the s/g list. XXX 32bit addresses only! */ if ((ccb->ccb_h.flags & CAM_DIR_MASK) != CAM_DIR_NONE) { |