Move SAM_STAT_CHECK_CONDITION out of switch to fix:
warning: case value ‘2’ not in enumerated type ‘enum exec_status’
[-Wswitch]
Signed-off-by: Danny Kukawka <[email protected]>
---
drivers/scsi/libsas/sas_ata.c | 3 +-
drivers/scsi/libsas/sas_scsi_host.c | 91 ++++++++++++++++++-----------------
2 files changed, 48 insertions(+), 46 deletions(-)
diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c
index db9238f..4cbdb6e 100644
--- a/drivers/scsi/libsas/sas_ata.c
+++ b/drivers/scsi/libsas/sas_ata.c
@@ -43,6 +43,8 @@ static enum ata_completion_errors sas_to_ata_err(struct task_status_struct *ts)
/* transport error */
if (ts->resp == SAS_TASK_UNDELIVERED)
return AC_ERR_ATA_BUS;
+ if (ts->stat == SAM_STAT_CHECK_CONDITION)
+ return AC_ERR_DEV;
/* ts->resp == SAS_TASK_COMPLETE */
/* task delivered, what happened afterwards? */
@@ -77,7 +79,6 @@ static enum ata_completion_errors sas_to_ata_err(struct task_status_struct *ts)
__func__, ts->stat);
return AC_ERR_OTHER;
- case SAM_STAT_CHECK_CONDITION:
case SAS_ABORTED_TASK:
return AC_ERR_DEV;
diff --git a/drivers/scsi/libsas/sas_scsi_host.c b/drivers/scsi/libsas/sas_scsi_host.c
index b6e233d..559b37c 100644
--- a/drivers/scsi/libsas/sas_scsi_host.c
+++ b/drivers/scsi/libsas/sas_scsi_host.c
@@ -75,53 +75,54 @@ static void sas_scsi_task_done(struct sas_task *task)
hs = DID_NO_CONNECT;
} else { /* ts->resp == SAS_TASK_COMPLETE */
/* task delivered, what happened afterwards? */
- switch (ts->stat) {
- case SAS_DEV_NO_RESPONSE:
- case SAS_INTERRUPTED:
- case SAS_PHY_DOWN:
- case SAS_NAK_R_ERR:
- case SAS_OPEN_TO:
- hs = DID_NO_CONNECT;
- break;
- case SAS_DATA_UNDERRUN:
- scsi_set_resid(sc, ts->residual);
- if (scsi_bufflen(sc) - scsi_get_resid(sc) < sc->underflow)
- hs = DID_ERROR;
- break;
- case SAS_DATA_OVERRUN:
- hs = DID_ERROR;
- break;
- case SAS_QUEUE_FULL:
- hs = DID_SOFT_ERROR; /* retry */
- break;
- case SAS_DEVICE_UNKNOWN:
- hs = DID_BAD_TARGET;
- break;
- case SAS_SG_ERR:
- hs = DID_PARITY;
- break;
- case SAS_OPEN_REJECT:
- if (ts->open_rej_reason == SAS_OREJ_RSVD_RETRY)
- hs = DID_SOFT_ERROR; /* retry */
- else
- hs = DID_ERROR;
- break;
- case SAS_PROTO_RESPONSE:
- SAS_DPRINTK("LLDD:%s sent SAS_PROTO_RESP for an SSP "
- "task; please report this\n",
- task->dev->port->ha->sas_ha_name);
- break;
- case SAS_ABORTED_TASK:
- hs = DID_ABORT;
- break;
- case SAM_STAT_CHECK_CONDITION:
+ if (ts->stat == SAM_STAT_CHECK_CONDITION) {
memcpy(sc->sense_buffer, ts->buf,
- min(SCSI_SENSE_BUFFERSIZE, ts->buf_valid_size));
+ min(SCSI_SENSE_BUFFERSIZE, ts->buf_valid_size));
stat = SAM_STAT_CHECK_CONDITION;
- break;
- default:
- stat = ts->stat;
- break;
+ } else {
+ switch (ts->stat) {
+ case SAS_DEV_NO_RESPONSE:
+ case SAS_INTERRUPTED:
+ case SAS_PHY_DOWN:
+ case SAS_NAK_R_ERR:
+ case SAS_OPEN_TO:
+ hs = DID_NO_CONNECT;
+ break;
+ case SAS_DATA_UNDERRUN:
+ scsi_set_resid(sc, ts->residual);
+ if (scsi_bufflen(sc) - scsi_get_resid(sc) < sc->underflow)
+ hs = DID_ERROR;
+ break;
+ case SAS_DATA_OVERRUN:
+ hs = DID_ERROR;
+ break;
+ case SAS_QUEUE_FULL:
+ hs = DID_SOFT_ERROR; /* retry */
+ break;
+ case SAS_DEVICE_UNKNOWN:
+ hs = DID_BAD_TARGET;
+ break;
+ case SAS_SG_ERR:
+ hs = DID_PARITY;
+ break;
+ case SAS_OPEN_REJECT:
+ if (ts->open_rej_reason == SAS_OREJ_RSVD_RETRY)
+ hs = DID_SOFT_ERROR; /* retry */
+ else
+ hs = DID_ERROR;
+ break;
+ case SAS_PROTO_RESPONSE:
+ SAS_DPRINTK("LLDD:%s sent SAS_PROTO_RESP for "
+ "an SSP task; please report this\n",
+ task->dev->port->ha->sas_ha_name);
+ break;
+ case SAS_ABORTED_TASK:
+ hs = DID_ABORT;
+ break;
+ default:
+ stat = ts->stat;
+ break;
+ }
}
}
ASSIGN_SAS_TASK(sc, NULL);
--
1.7.7.3
On Tue, Feb 14, 2012 at 6:49 AM, Danny Kukawka <[email protected]> wrote:
> Move SAM_STAT_CHECK_CONDITION out of switch to fix:
>
> warning: case value ?2? not in enumerated type ?enum exec_status?
> ?[-Wswitch]
>
> Signed-off-by: Danny Kukawka <[email protected]>
Thanks Danny. This warning got killed in the following commit that is
pending in -next.
http://git.kernel.org/?p=linux/kernel/git/djbw/isci.git;a=commitdiff;h=9540580ba80e2b3e61041ec935992a7a7d22ff89
--
Dan