提交 1c9fbafc 编写于 作者: M Martin K. Petersen 提交者: James Bottomley

[SCSI] Remove SUGGEST flags

The SUGGEST_* flags in the SCSI command result have been out of fashion
for a while and we don't actually use them in the error handling.
Remove the remaining occurrences.
Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
上级 5a9ef25b
...@@ -2147,7 +2147,6 @@ static void zfcp_fsf_send_fcp_command_task_handler(struct zfcp_fsf_req *req) ...@@ -2147,7 +2147,6 @@ static void zfcp_fsf_send_fcp_command_task_handler(struct zfcp_fsf_req *req)
if (unlikely(req->status & ZFCP_STATUS_FSFREQ_ABORTED)) { if (unlikely(req->status & ZFCP_STATUS_FSFREQ_ABORTED)) {
set_host_byte(scpnt, DID_SOFT_ERROR); set_host_byte(scpnt, DID_SOFT_ERROR);
set_driver_byte(scpnt, SUGGEST_RETRY);
goto skip_fsfstatus; goto skip_fsfstatus;
} }
......
...@@ -1373,21 +1373,14 @@ static const char * const driverbyte_table[]={ ...@@ -1373,21 +1373,14 @@ static const char * const driverbyte_table[]={
"DRIVER_INVALID", "DRIVER_TIMEOUT", "DRIVER_HARD", "DRIVER_SENSE"}; "DRIVER_INVALID", "DRIVER_TIMEOUT", "DRIVER_HARD", "DRIVER_SENSE"};
#define NUM_DRIVERBYTE_STRS ARRAY_SIZE(driverbyte_table) #define NUM_DRIVERBYTE_STRS ARRAY_SIZE(driverbyte_table)
static const char * const driversuggest_table[]={"SUGGEST_OK",
"SUGGEST_RETRY", "SUGGEST_ABORT", "SUGGEST_REMAP", "SUGGEST_DIE",
"SUGGEST_5", "SUGGEST_6", "SUGGEST_7", "SUGGEST_SENSE"};
#define NUM_SUGGEST_STRS ARRAY_SIZE(driversuggest_table)
void scsi_show_result(int result) void scsi_show_result(int result)
{ {
int hb = host_byte(result); int hb = host_byte(result);
int db = (driver_byte(result) & DRIVER_MASK); int db = driver_byte(result);
int su = ((driver_byte(result) & SUGGEST_MASK) >> 4);
printk("Result: hostbyte=%s driverbyte=%s,%s\n", printk("Result: hostbyte=%s driverbyte=%s\n",
(hb < NUM_HOSTBYTE_STRS ? hostbyte_table[hb] : "invalid"), (hb < NUM_HOSTBYTE_STRS ? hostbyte_table[hb] : "invalid"),
(db < NUM_DRIVERBYTE_STRS ? driverbyte_table[db] : "invalid"), (db < NUM_DRIVERBYTE_STRS ? driverbyte_table[db] : "invalid"));
(su < NUM_SUGGEST_STRS ? driversuggest_table[su] : "invalid"));
} }
#else #else
......
...@@ -580,8 +580,7 @@ static void hptiop_finish_scsi_req(struct hptiop_hba *hba, u32 tag, ...@@ -580,8 +580,7 @@ static void hptiop_finish_scsi_req(struct hptiop_hba *hba, u32 tag,
break; break;
default: default:
scp->result = ((DRIVER_INVALID|SUGGEST_ABORT)<<24) | scp->result = DRIVER_INVALID << 24 | DID_ABORT << 16;
(DID_ABORT<<16);
break; break;
} }
......
...@@ -1004,8 +1004,7 @@ static int __ips_eh_reset(struct scsi_cmnd *SC) ...@@ -1004,8 +1004,7 @@ static int __ips_eh_reset(struct scsi_cmnd *SC)
DEBUG_VAR(1, "(%s%d) Failing active commands", ips_name, ha->host_num); DEBUG_VAR(1, "(%s%d) Failing active commands", ips_name, ha->host_num);
while ((scb = ips_removeq_scb_head(&ha->scb_activelist))) { while ((scb = ips_removeq_scb_head(&ha->scb_activelist))) {
scb->scsi_cmd->result = scb->scsi_cmd->result = DID_RESET << 16;
(DID_RESET << 16) | (SUGGEST_RETRY << 24);
scb->scsi_cmd->scsi_done(scb->scsi_cmd); scb->scsi_cmd->scsi_done(scb->scsi_cmd);
ips_freescb(ha, scb); ips_freescb(ha, scb);
} }
......
...@@ -259,7 +259,7 @@ static void fc_fcp_retry_cmd(struct fc_fcp_pkt *fsp) ...@@ -259,7 +259,7 @@ static void fc_fcp_retry_cmd(struct fc_fcp_pkt *fsp)
} }
fsp->state &= ~FC_SRB_ABORT_PENDING; fsp->state &= ~FC_SRB_ABORT_PENDING;
fsp->io_status = SUGGEST_RETRY << 24; fsp->io_status = 0;
fsp->status_code = FC_ERROR; fsp->status_code = FC_ERROR;
fc_fcp_complete_locked(fsp); fc_fcp_complete_locked(fsp);
} }
...@@ -859,7 +859,7 @@ static void fc_fcp_complete_locked(struct fc_fcp_pkt *fsp) ...@@ -859,7 +859,7 @@ static void fc_fcp_complete_locked(struct fc_fcp_pkt *fsp)
(!(fsp->scsi_comp_flags & FCP_RESID_UNDER) || (!(fsp->scsi_comp_flags & FCP_RESID_UNDER) ||
fsp->xfer_len < fsp->data_len - fsp->scsi_resid)) { fsp->xfer_len < fsp->data_len - fsp->scsi_resid)) {
fsp->status_code = FC_DATA_UNDRUN; fsp->status_code = FC_DATA_UNDRUN;
fsp->io_status = SUGGEST_RETRY << 24; fsp->io_status = 0;
} }
} }
...@@ -1267,7 +1267,7 @@ static void fc_fcp_rec(struct fc_fcp_pkt *fsp) ...@@ -1267,7 +1267,7 @@ static void fc_fcp_rec(struct fc_fcp_pkt *fsp)
rp = rport->dd_data; rp = rport->dd_data;
if (!fsp->seq_ptr || rp->rp_state != RPORT_ST_READY) { if (!fsp->seq_ptr || rp->rp_state != RPORT_ST_READY) {
fsp->status_code = FC_HRD_ERROR; fsp->status_code = FC_HRD_ERROR;
fsp->io_status = SUGGEST_RETRY << 24; fsp->io_status = 0;
fc_fcp_complete_locked(fsp); fc_fcp_complete_locked(fsp);
return; return;
} }
......
...@@ -1357,7 +1357,7 @@ lpfc_parse_bg_err(struct lpfc_hba *phba, struct lpfc_scsi_buf *lpfc_cmd, ...@@ -1357,7 +1357,7 @@ lpfc_parse_bg_err(struct lpfc_hba *phba, struct lpfc_scsi_buf *lpfc_cmd,
scsi_build_sense_buffer(1, cmd->sense_buffer, ILLEGAL_REQUEST, scsi_build_sense_buffer(1, cmd->sense_buffer, ILLEGAL_REQUEST,
0x10, 0x1); 0x10, 0x1);
cmd->result = (DRIVER_SENSE|SUGGEST_DIE) << 24 cmd->result = DRIVER_SENSE << 24
| ScsiResult(DID_ABORT, SAM_STAT_CHECK_CONDITION); | ScsiResult(DID_ABORT, SAM_STAT_CHECK_CONDITION);
phba->bg_guard_err_cnt++; phba->bg_guard_err_cnt++;
printk(KERN_ERR "BLKGRD: guard_tag error\n"); printk(KERN_ERR "BLKGRD: guard_tag error\n");
...@@ -1368,7 +1368,7 @@ lpfc_parse_bg_err(struct lpfc_hba *phba, struct lpfc_scsi_buf *lpfc_cmd, ...@@ -1368,7 +1368,7 @@ lpfc_parse_bg_err(struct lpfc_hba *phba, struct lpfc_scsi_buf *lpfc_cmd,
scsi_build_sense_buffer(1, cmd->sense_buffer, ILLEGAL_REQUEST, scsi_build_sense_buffer(1, cmd->sense_buffer, ILLEGAL_REQUEST,
0x10, 0x3); 0x10, 0x3);
cmd->result = (DRIVER_SENSE|SUGGEST_DIE) << 24 cmd->result = DRIVER_SENSE << 24
| ScsiResult(DID_ABORT, SAM_STAT_CHECK_CONDITION); | ScsiResult(DID_ABORT, SAM_STAT_CHECK_CONDITION);
phba->bg_reftag_err_cnt++; phba->bg_reftag_err_cnt++;
...@@ -1380,7 +1380,7 @@ lpfc_parse_bg_err(struct lpfc_hba *phba, struct lpfc_scsi_buf *lpfc_cmd, ...@@ -1380,7 +1380,7 @@ lpfc_parse_bg_err(struct lpfc_hba *phba, struct lpfc_scsi_buf *lpfc_cmd,
scsi_build_sense_buffer(1, cmd->sense_buffer, ILLEGAL_REQUEST, scsi_build_sense_buffer(1, cmd->sense_buffer, ILLEGAL_REQUEST,
0x10, 0x2); 0x10, 0x2);
cmd->result = (DRIVER_SENSE|SUGGEST_DIE) << 24 cmd->result = DRIVER_SENSE << 24
| ScsiResult(DID_ABORT, SAM_STAT_CHECK_CONDITION); | ScsiResult(DID_ABORT, SAM_STAT_CHECK_CONDITION);
phba->bg_apptag_err_cnt++; phba->bg_apptag_err_cnt++;
......
...@@ -374,9 +374,9 @@ static int st_chk_result(struct scsi_tape *STp, struct st_request * SRpnt) ...@@ -374,9 +374,9 @@ static int st_chk_result(struct scsi_tape *STp, struct st_request * SRpnt)
if (!debugging) { /* Abnormal conditions for tape */ if (!debugging) { /* Abnormal conditions for tape */
if (!cmdstatp->have_sense) if (!cmdstatp->have_sense)
printk(KERN_WARNING printk(KERN_WARNING
"%s: Error %x (sugg. bt 0x%x, driver bt 0x%x, host bt 0x%x).\n", "%s: Error %x (driver bt 0x%x, host bt 0x%x).\n",
name, result, suggestion(result), name, result, driver_byte(result),
driver_byte(result) & DRIVER_MASK, host_byte(result)); host_byte(result));
else if (cmdstatp->have_sense && else if (cmdstatp->have_sense &&
scode != NO_SENSE && scode != NO_SENSE &&
scode != RECOVERED_ERROR && scode != RECOVERED_ERROR &&
......
...@@ -781,7 +781,7 @@ void usb_stor_invoke_transport(struct scsi_cmnd *srb, struct us_data *us) ...@@ -781,7 +781,7 @@ void usb_stor_invoke_transport(struct scsi_cmnd *srb, struct us_data *us)
/* Did we transfer less than the minimum amount required? */ /* Did we transfer less than the minimum amount required? */
if ((srb->result == SAM_STAT_GOOD || srb->sense_buffer[2] == 0) && if ((srb->result == SAM_STAT_GOOD || srb->sense_buffer[2] == 0) &&
scsi_bufflen(srb) - scsi_get_resid(srb) < srb->underflow) scsi_bufflen(srb) - scsi_get_resid(srb) < srb->underflow)
srb->result = (DID_ERROR << 16) | (SUGGEST_RETRY << 24); srb->result = DID_ERROR << 16;
last_sector_hacks(us, srb); last_sector_hacks(us, srb);
return; return;
......
...@@ -402,16 +402,6 @@ static inline int scsi_is_wlun(unsigned int lun) ...@@ -402,16 +402,6 @@ static inline int scsi_is_wlun(unsigned int lun)
#define DRIVER_HARD 0x07 #define DRIVER_HARD 0x07
#define DRIVER_SENSE 0x08 #define DRIVER_SENSE 0x08
#define SUGGEST_RETRY 0x10
#define SUGGEST_ABORT 0x20
#define SUGGEST_REMAP 0x30
#define SUGGEST_DIE 0x40
#define SUGGEST_SENSE 0x80
#define SUGGEST_IS_OK 0xff
#define DRIVER_MASK 0x0f
#define SUGGEST_MASK 0xf0
/* /*
* Internal return values. * Internal return values.
*/ */
...@@ -447,7 +437,6 @@ static inline int scsi_is_wlun(unsigned int lun) ...@@ -447,7 +437,6 @@ static inline int scsi_is_wlun(unsigned int lun)
#define msg_byte(result) (((result) >> 8) & 0xff) #define msg_byte(result) (((result) >> 8) & 0xff)
#define host_byte(result) (((result) >> 16) & 0xff) #define host_byte(result) (((result) >> 16) & 0xff)
#define driver_byte(result) (((result) >> 24) & 0xff) #define driver_byte(result) (((result) >> 24) & 0xff)
#define suggestion(result) (driver_byte(result) & SUGGEST_MASK)
static inline void set_msg_byte(struct scsi_cmnd *cmd, char status) static inline void set_msg_byte(struct scsi_cmnd *cmd, char status)
{ {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册