|
@@ -33,6 +33,7 @@
|
|
|
#include <scsi/scsi_host.h>
|
|
|
#include <scsi/scsi_tcq.h>
|
|
|
#include <scsi/scsi_dbg.h>
|
|
|
+#include <scsi/scsi_eh.h>
|
|
|
|
|
|
#define DRV_NAME "stex"
|
|
|
#define ST_DRIVER_VERSION "3.6.0000.1"
|
|
@@ -362,22 +363,14 @@ static struct status_msg *stex_get_status(struct st_hba *hba)
|
|
|
return status;
|
|
|
}
|
|
|
|
|
|
-static void stex_set_sense(struct scsi_cmnd *cmd, u8 sk, u8 asc, u8 ascq)
|
|
|
-{
|
|
|
- cmd->result = (DRIVER_SENSE << 24) | SAM_STAT_CHECK_CONDITION;
|
|
|
-
|
|
|
- cmd->sense_buffer[0] = 0x70; /* fixed format, current */
|
|
|
- cmd->sense_buffer[2] = sk;
|
|
|
- cmd->sense_buffer[7] = 18 - 8; /* additional sense length */
|
|
|
- cmd->sense_buffer[12] = asc;
|
|
|
- cmd->sense_buffer[13] = ascq;
|
|
|
-}
|
|
|
-
|
|
|
static void stex_invalid_field(struct scsi_cmnd *cmd,
|
|
|
void (*done)(struct scsi_cmnd *))
|
|
|
{
|
|
|
+ cmd->result = (DRIVER_SENSE << 24) | SAM_STAT_CHECK_CONDITION;
|
|
|
+
|
|
|
/* "Invalid field in cbd" */
|
|
|
- stex_set_sense(cmd, ILLEGAL_REQUEST, 0x24, 0x0);
|
|
|
+ scsi_build_sense_buffer(0, cmd->sense_buffer, ILLEGAL_REQUEST, 0x24,
|
|
|
+ 0x0);
|
|
|
done(cmd);
|
|
|
}
|
|
|
|