scsi: libsas: Introduce more SAM status code aliases in enum exec_status
authorBart Van Assche <bvanassche@acm.org>
Mon, 24 May 2021 02:54:55 +0000 (19:54 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 2 Jun 2021 20:10:46 +0000 (16:10 -0400)
This patch prepares for converting SAM status codes into an enum. Without
this patch converting SAM status codes into an enumeration type would
trigger complaints about enum type mismatches for the SAS code.

Link: https://lore.kernel.org/r/20210524025457.11299-2-bvanassche@acm.org
Cc: Hannes Reinecke <hare@suse.com>
Cc: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
Cc: Jason Yan <yanaijie@huawei.com>
Reviewed-by: John Garry <john.garry@huawei.com>
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Acked-by: Jack Wang <jinpu.wang@ionos.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
14 files changed:
drivers/scsi/aic94xx/aic94xx_task.c
drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
drivers/scsi/isci/request.c
drivers/scsi/isci/task.c
drivers/scsi/libsas/sas_ata.c
drivers/scsi/libsas/sas_expander.c
drivers/scsi/libsas/sas_task.c
drivers/scsi/mvsas/mv_sas.c
drivers/scsi/pm8001/pm8001_hwi.c
drivers/scsi/pm8001/pm8001_sas.c
drivers/scsi/pm8001/pm80xx_hwi.c
include/scsi/libsas.h

index 71d18f607dae0d919fff466d964a461c58e1a0d2..c6b63eae28f511077ef46c066cfa875aa4eb3bee 100644 (file)
@@ -205,7 +205,7 @@ Again:
        switch (opcode) {
        case TC_NO_ERROR:
                ts->resp = SAS_TASK_COMPLETE;
-               ts->stat = SAM_STAT_GOOD;
+               ts->stat = SAS_SAM_STAT_GOOD;
                break;
        case TC_UNDERRUN:
                ts->resp = SAS_TASK_COMPLETE;
index 3cba7bfba2965587f83dcc30b24a7fd85127708a..9e58009369f9e0db3a67b038f3c4cd3fec3111d5 100644 (file)
@@ -1152,14 +1152,14 @@ static void slot_err_v1_hw(struct hisi_hba *hisi_hba,
                }
                default:
                {
-                       ts->stat = SAM_STAT_CHECK_CONDITION;
+                       ts->stat = SAS_SAM_STAT_CHECK_CONDITION;
                        break;
                }
                }
        }
                break;
        case SAS_PROTOCOL_SMP:
-               ts->stat = SAM_STAT_CHECK_CONDITION;
+               ts->stat = SAS_SAM_STAT_CHECK_CONDITION;
                break;
 
        case SAS_PROTOCOL_SATA:
@@ -1281,7 +1281,7 @@ static void slot_complete_v1_hw(struct hisi_hba *hisi_hba,
                struct scatterlist *sg_resp = &task->smp_task.smp_resp;
                void *to = page_address(sg_page(sg_resp));
 
-               ts->stat = SAM_STAT_GOOD;
+               ts->stat = SAS_SAM_STAT_GOOD;
 
                dma_unmap_sg(dev, &task->smp_task.smp_req, 1,
                             DMA_TO_DEVICE);
@@ -1298,7 +1298,7 @@ static void slot_complete_v1_hw(struct hisi_hba *hisi_hba,
                break;
 
        default:
-               ts->stat = SAM_STAT_CHECK_CONDITION;
+               ts->stat = SAS_SAM_STAT_CHECK_CONDITION;
                break;
        }
 
index 46f60fc2a069dacca786114825963fa72662f75c..af51ac49d9fb87200cf7e477aecd8863bc09ca0b 100644 (file)
@@ -2168,7 +2168,7 @@ static void slot_err_v2_hw(struct hisi_hba *hisi_hba,
        }
                break;
        case SAS_PROTOCOL_SMP:
-               ts->stat = SAM_STAT_CHECK_CONDITION;
+               ts->stat = SAS_SAM_STAT_CHECK_CONDITION;
                break;
 
        case SAS_PROTOCOL_SATA:
@@ -2427,7 +2427,7 @@ static void slot_complete_v2_hw(struct hisi_hba *hisi_hba,
                struct scatterlist *sg_resp = &task->smp_task.smp_resp;
                void *to = page_address(sg_page(sg_resp));
 
-               ts->stat = SAM_STAT_GOOD;
+               ts->stat = SAS_SAM_STAT_GOOD;
 
                dma_unmap_sg(dev, &task->smp_task.smp_req, 1,
                             DMA_TO_DEVICE);
@@ -2441,12 +2441,12 @@ static void slot_complete_v2_hw(struct hisi_hba *hisi_hba,
        case SAS_PROTOCOL_STP:
        case SAS_PROTOCOL_SATA | SAS_PROTOCOL_STP:
        {
-               ts->stat = SAM_STAT_GOOD;
+               ts->stat = SAS_SAM_STAT_GOOD;
                hisi_sas_sata_done(task, slot);
                break;
        }
        default:
-               ts->stat = SAM_STAT_CHECK_CONDITION;
+               ts->stat = SAS_SAM_STAT_CHECK_CONDITION;
                break;
        }
 
index 499c770d405c78fcc13d0dfb1f64b7b53f37190e..932afd6901835e4ac7952f558455dd67af83906f 100644 (file)
@@ -2178,7 +2178,7 @@ slot_err_v3_hw(struct hisi_hba *hisi_hba, struct sas_task *task,
                hisi_sas_sata_done(task, slot);
                break;
        case SAS_PROTOCOL_SMP:
-               ts->stat = SAM_STAT_CHECK_CONDITION;
+               ts->stat = SAS_SAM_STAT_CHECK_CONDITION;
                break;
        default:
                break;
@@ -2285,7 +2285,7 @@ static void slot_complete_v3_hw(struct hisi_hba *hisi_hba,
                struct scatterlist *sg_resp = &task->smp_task.smp_resp;
                void *to = page_address(sg_page(sg_resp));
 
-               ts->stat = SAM_STAT_GOOD;
+               ts->stat = SAS_SAM_STAT_GOOD;
 
                dma_unmap_sg(dev, &task->smp_task.smp_req, 1,
                             DMA_TO_DEVICE);
@@ -2298,11 +2298,11 @@ static void slot_complete_v3_hw(struct hisi_hba *hisi_hba,
        case SAS_PROTOCOL_SATA:
        case SAS_PROTOCOL_STP:
        case SAS_PROTOCOL_SATA | SAS_PROTOCOL_STP:
-               ts->stat = SAM_STAT_GOOD;
+               ts->stat = SAS_SAM_STAT_GOOD;
                hisi_sas_sata_done(task, slot);
                break;
        default:
-               ts->stat = SAM_STAT_CHECK_CONDITION;
+               ts->stat = SAS_SAM_STAT_CHECK_CONDITION;
                break;
        }
 
index e7c6cb4c1556aaa295a5d6664f277bdec7681c65..e1ff79464131fcd4c1a7b6b071747b3de975a889 100644 (file)
@@ -2566,7 +2566,7 @@ static void isci_request_handle_controller_specific_errors(
                        if (!idev)
                                *status_ptr = SAS_DEVICE_UNKNOWN;
                        else
-                               *status_ptr = SAM_STAT_TASK_ABORTED;
+                               *status_ptr = SAS_SAM_STAT_TASK_ABORTED;
 
                        clear_bit(IREQ_COMPLETE_IN_TARGET, &request->flags);
                }
@@ -2696,7 +2696,7 @@ static void isci_request_handle_controller_specific_errors(
        default:
                /* Task in the target is not done. */
                *response_ptr = SAS_TASK_UNDELIVERED;
-               *status_ptr = SAM_STAT_TASK_ABORTED;
+               *status_ptr = SAS_SAM_STAT_TASK_ABORTED;
 
                if (task->task_proto == SAS_PROTOCOL_SMP)
                        set_bit(IREQ_COMPLETE_IN_TARGET, &request->flags);
@@ -2719,7 +2719,7 @@ static void isci_process_stp_response(struct sas_task *task, struct dev_to_host_
        if (ac_err_mask(fis->status))
                ts->stat = SAS_PROTO_RESPONSE;
        else
-               ts->stat = SAM_STAT_GOOD;
+               ts->stat = SAS_SAM_STAT_GOOD;
 
        ts->resp = SAS_TASK_COMPLETE;
 }
@@ -2782,7 +2782,7 @@ static void isci_request_io_request_complete(struct isci_host *ihost,
        case SCI_IO_SUCCESS_IO_DONE_EARLY:
 
                response = SAS_TASK_COMPLETE;
-               status   = SAM_STAT_GOOD;
+               status   = SAS_SAM_STAT_GOOD;
                set_bit(IREQ_COMPLETE_IN_TARGET, &request->flags);
 
                if (completion_status == SCI_IO_SUCCESS_IO_DONE_EARLY) {
@@ -2852,7 +2852,7 @@ static void isci_request_io_request_complete(struct isci_host *ihost,
 
                /* Fail the I/O. */
                response = SAS_TASK_UNDELIVERED;
-               status = SAM_STAT_TASK_ABORTED;
+               status = SAS_SAM_STAT_TASK_ABORTED;
 
                clear_bit(IREQ_COMPLETE_IN_TARGET, &request->flags);
                break;
index eeaec26ac3240ad18d46076a1ffa0af917d0dfbe..3fd88d72a0c0127aa89050bee01f04fa541f0910 100644 (file)
@@ -160,7 +160,7 @@ int isci_task_execute_task(struct sas_task *task, gfp_t gfp_flags)
 
                        isci_task_refuse(ihost, task,
                                         SAS_TASK_UNDELIVERED,
-                                        SAM_STAT_TASK_ABORTED);
+                                        SAS_SAM_STAT_TASK_ABORTED);
                } else {
                        task->task_state_flags |= SAS_TASK_AT_INITIATOR;
                        spin_unlock_irqrestore(&task->task_state_lock, flags);
index e9a86128f1f10124027358ec149cc85e8fab7bb4..4aa1fda95f35dd4c34f9ce69ed1d2b76fe65be2b 100644 (file)
@@ -116,9 +116,10 @@ static void sas_ata_task_done(struct sas_task *task)
                }
        }
 
-       if (stat->stat == SAS_PROTO_RESPONSE || stat->stat == SAM_STAT_GOOD ||
-           ((stat->stat == SAM_STAT_CHECK_CONDITION &&
-             dev->sata_dev.class == ATA_DEV_ATAPI))) {
+       if (stat->stat == SAS_PROTO_RESPONSE ||
+           stat->stat == SAS_SAM_STAT_GOOD ||
+           (stat->stat == SAS_SAM_STAT_CHECK_CONDITION &&
+             dev->sata_dev.class == ATA_DEV_ATAPI)) {
                memcpy(dev->sata_dev.fis, resp->ending_fis, ATA_RESP_FIS_SIZE);
 
                if (!link->sactive) {
index 6d583e8c403aa93bf8d8cddf5a266de9fba4adc0..e006885402197c9f9dca20f7ef3ddd5263cfd48f 100644 (file)
@@ -101,7 +101,7 @@ static int smp_execute_task_sg(struct domain_device *dev,
                        }
                }
                if (task->task_status.resp == SAS_TASK_COMPLETE &&
-                   task->task_status.stat == SAM_STAT_GOOD) {
+                   task->task_status.stat == SAS_SAM_STAT_GOOD) {
                        res = 0;
                        break;
                }
index e2d42593ce529faac0f586be88a24ed96fbef43e..2966ead1d4217b2c6a0622945f0534fdca295766 100644 (file)
@@ -20,7 +20,7 @@ void sas_ssp_task_response(struct device *dev, struct sas_task *task,
        else if (iu->datapres == 1)
                tstat->stat = iu->resp_data[3];
        else if (iu->datapres == 2) {
-               tstat->stat = SAM_STAT_CHECK_CONDITION;
+               tstat->stat = SAS_SAM_STAT_CHECK_CONDITION;
                tstat->buf_valid_size =
                        min_t(int, SAS_STATUS_BUF_SIZE,
                              be32_to_cpu(iu->sense_data_len));
@@ -32,7 +32,7 @@ void sas_ssp_task_response(struct device *dev, struct sas_task *task,
        }
        else
                /* when datapres contains corrupt/unknown value... */
-               tstat->stat = SAM_STAT_CHECK_CONDITION;
+               tstat->stat = SAS_SAM_STAT_CHECK_CONDITION;
 }
 EXPORT_SYMBOL_GPL(sas_ssp_task_response);
 
index 1acea528f27f9efc291bfce707634085e6d02703..31d1ea5a5dd2bf321184a87ba590ebe95e23d8f1 100644 (file)
@@ -1314,7 +1314,7 @@ static int mvs_exec_internal_tmf_task(struct domain_device *dev,
                }
 
                if (task->task_status.resp == SAS_TASK_COMPLETE &&
-                   task->task_status.stat == SAM_STAT_GOOD) {
+                   task->task_status.stat == SAS_SAM_STAT_GOOD) {
                        res = TMF_RESP_FUNC_COMPLETE;
                        break;
                }
@@ -1764,7 +1764,7 @@ int mvs_slot_complete(struct mvs_info *mvi, u32 rx_desc, u32 flags)
        case SAS_PROTOCOL_SSP:
                /* hw says status == 0, datapres == 0 */
                if (rx_desc & RXQ_GOOD) {
-                       tstat->stat = SAM_STAT_GOOD;
+                       tstat->stat = SAS_SAM_STAT_GOOD;
                        tstat->resp = SAS_TASK_COMPLETE;
                }
                /* response frame present */
@@ -1773,12 +1773,12 @@ int mvs_slot_complete(struct mvs_info *mvi, u32 rx_desc, u32 flags)
                                                sizeof(struct mvs_err_info);
                        sas_ssp_task_response(mvi->dev, task, iu);
                } else
-                       tstat->stat = SAM_STAT_CHECK_CONDITION;
+                       tstat->stat = SAS_SAM_STAT_CHECK_CONDITION;
                break;
 
        case SAS_PROTOCOL_SMP: {
                        struct scatterlist *sg_resp = &task->smp_task.smp_resp;
-                       tstat->stat = SAM_STAT_GOOD;
+                       tstat->stat = SAS_SAM_STAT_GOOD;
                        to = kmap_atomic(sg_page(sg_resp));
                        memcpy(to + sg_resp->offset,
                                slot->response + sizeof(struct mvs_err_info),
@@ -1795,7 +1795,7 @@ int mvs_slot_complete(struct mvs_info *mvi, u32 rx_desc, u32 flags)
                }
 
        default:
-               tstat->stat = SAM_STAT_CHECK_CONDITION;
+               tstat->stat = SAS_SAM_STAT_CHECK_CONDITION;
                break;
        }
        if (!slot->port->port_attached) {
index ecd06d2d7e81624553b67f4da111d7603dca6341..0fb04cec5fe2acb0a56a7e14efb95604fecddf45 100644 (file)
@@ -1930,7 +1930,7 @@ mpi_ssp_completion(struct pm8001_hba_info *pm8001_ha, void *piomb)
                           param);
                if (param == 0) {
                        ts->resp = SAS_TASK_COMPLETE;
-                       ts->stat = SAM_STAT_GOOD;
+                       ts->stat = SAS_SAM_STAT_GOOD;
                } else {
                        ts->resp = SAS_TASK_COMPLETE;
                        ts->stat = SAS_PROTO_RESPONSE;
@@ -2390,7 +2390,7 @@ mpi_sata_completion(struct pm8001_hba_info *pm8001_ha, void *piomb)
                pm8001_dbg(pm8001_ha, IO, "IO_SUCCESS\n");
                if (param == 0) {
                        ts->resp = SAS_TASK_COMPLETE;
-                       ts->stat = SAM_STAT_GOOD;
+                       ts->stat = SAS_SAM_STAT_GOOD;
                        /* check if response is for SEND READ LOG */
                        if (pm8001_dev &&
                                (pm8001_dev->id & NCQ_READ_LOG_FLAG)) {
@@ -2912,7 +2912,7 @@ mpi_smp_completion(struct pm8001_hba_info *pm8001_ha, void *piomb)
        case IO_SUCCESS:
                pm8001_dbg(pm8001_ha, IO, "IO_SUCCESS\n");
                ts->resp = SAS_TASK_COMPLETE;
-               ts->stat = SAM_STAT_GOOD;
+               ts->stat = SAS_SAM_STAT_GOOD;
                if (pm8001_dev)
                        atomic_dec(&pm8001_dev->running_req);
                break;
@@ -2939,17 +2939,17 @@ mpi_smp_completion(struct pm8001_hba_info *pm8001_ha, void *piomb)
        case IO_ERROR_HW_TIMEOUT:
                pm8001_dbg(pm8001_ha, IO, "IO_ERROR_HW_TIMEOUT\n");
                ts->resp = SAS_TASK_COMPLETE;
-               ts->stat = SAM_STAT_BUSY;
+               ts->stat = SAS_SAM_STAT_BUSY;
                break;
        case IO_XFER_ERROR_BREAK:
                pm8001_dbg(pm8001_ha, IO, "IO_XFER_ERROR_BREAK\n");
                ts->resp = SAS_TASK_COMPLETE;
-               ts->stat = SAM_STAT_BUSY;
+               ts->stat = SAS_SAM_STAT_BUSY;
                break;
        case IO_XFER_ERROR_PHY_NOT_READY:
                pm8001_dbg(pm8001_ha, IO, "IO_XFER_ERROR_PHY_NOT_READY\n");
                ts->resp = SAS_TASK_COMPLETE;
-               ts->stat = SAM_STAT_BUSY;
+               ts->stat = SAS_SAM_STAT_BUSY;
                break;
        case IO_OPEN_CNX_ERROR_PROTOCOL_NOT_SUPPORTED:
                pm8001_dbg(pm8001_ha, IO,
@@ -3710,7 +3710,7 @@ int pm8001_mpi_task_abort_resp(struct pm8001_hba_info *pm8001_ha, void *piomb)
        case IO_SUCCESS:
                pm8001_dbg(pm8001_ha, EH, "IO_SUCCESS\n");
                ts->resp = SAS_TASK_COMPLETE;
-               ts->stat = SAM_STAT_GOOD;
+               ts->stat = SAS_SAM_STAT_GOOD;
                break;
        case IO_NOT_VALID:
                pm8001_dbg(pm8001_ha, EH, "IO_NOT_VALID\n");
@@ -4355,7 +4355,7 @@ static int pm8001_chip_sata_req(struct pm8001_hba_info *pm8001_ha,
 
                        spin_lock_irqsave(&task->task_state_lock, flags);
                        ts->resp = SAS_TASK_COMPLETE;
-                       ts->stat = SAM_STAT_GOOD;
+                       ts->stat = SAS_SAM_STAT_GOOD;
                        task->task_state_flags &= ~SAS_TASK_STATE_PENDING;
                        task->task_state_flags &= ~SAS_TASK_AT_INITIATOR;
                        task->task_state_flags |= SAS_TASK_STATE_DONE;
index d28af413b93a227014e529addec26d2ff54ee68b..01122993c943fdb2023c199087b5692fe1da8838 100644 (file)
@@ -753,7 +753,7 @@ static int pm8001_exec_internal_tmf_task(struct domain_device *dev,
                }
 
                if (task->task_status.resp == SAS_TASK_COMPLETE &&
-                       task->task_status.stat == SAM_STAT_GOOD) {
+                       task->task_status.stat == SAS_SAM_STAT_GOOD) {
                        res = TMF_RESP_FUNC_COMPLETE;
                        break;
                }
@@ -838,7 +838,7 @@ pm8001_exec_internal_task_abort(struct pm8001_hba_info *pm8001_ha,
                }
 
                if (task->task_status.resp == SAS_TASK_COMPLETE &&
-                       task->task_status.stat == SAM_STAT_GOOD) {
+                       task->task_status.stat == SAS_SAM_STAT_GOOD) {
                        res = TMF_RESP_FUNC_COMPLETE;
                        break;
 
index 4e980830f9f59f137f1a80cefaba49199ee6894c..57c8394cd1b52f9d6ed6b89dd152b5f02a0b7364 100644 (file)
@@ -1952,7 +1952,7 @@ mpi_ssp_completion(struct pm8001_hba_info *pm8001_ha, void *piomb)
                           param);
                if (param == 0) {
                        ts->resp = SAS_TASK_COMPLETE;
-                       ts->stat = SAM_STAT_GOOD;
+                       ts->stat = SAS_SAM_STAT_GOOD;
                } else {
                        ts->resp = SAS_TASK_COMPLETE;
                        ts->stat = SAS_PROTO_RESPONSE;
@@ -2487,7 +2487,7 @@ mpi_sata_completion(struct pm8001_hba_info *pm8001_ha, void *piomb)
                pm8001_dbg(pm8001_ha, IO, "IO_SUCCESS\n");
                if (param == 0) {
                        ts->resp = SAS_TASK_COMPLETE;
-                       ts->stat = SAM_STAT_GOOD;
+                       ts->stat = SAS_SAM_STAT_GOOD;
                        /* check if response is for SEND READ LOG */
                        if (pm8001_dev &&
                                (pm8001_dev->id & NCQ_READ_LOG_FLAG)) {
@@ -3042,7 +3042,7 @@ mpi_smp_completion(struct pm8001_hba_info *pm8001_ha, void *piomb)
        case IO_SUCCESS:
                pm8001_dbg(pm8001_ha, IO, "IO_SUCCESS\n");
                ts->resp = SAS_TASK_COMPLETE;
-               ts->stat = SAM_STAT_GOOD;
+               ts->stat = SAS_SAM_STAT_GOOD;
                if (pm8001_dev)
                        atomic_dec(&pm8001_dev->running_req);
                if (pm8001_ha->smp_exp_mode == SMP_DIRECT) {
@@ -3084,17 +3084,17 @@ mpi_smp_completion(struct pm8001_hba_info *pm8001_ha, void *piomb)
        case IO_ERROR_HW_TIMEOUT:
                pm8001_dbg(pm8001_ha, IO, "IO_ERROR_HW_TIMEOUT\n");
                ts->resp = SAS_TASK_COMPLETE;
-               ts->stat = SAM_STAT_BUSY;
+               ts->stat = SAS_SAM_STAT_BUSY;
                break;
        case IO_XFER_ERROR_BREAK:
                pm8001_dbg(pm8001_ha, IO, "IO_XFER_ERROR_BREAK\n");
                ts->resp = SAS_TASK_COMPLETE;
-               ts->stat = SAM_STAT_BUSY;
+               ts->stat = SAS_SAM_STAT_BUSY;
                break;
        case IO_XFER_ERROR_PHY_NOT_READY:
                pm8001_dbg(pm8001_ha, IO, "IO_XFER_ERROR_PHY_NOT_READY\n");
                ts->resp = SAS_TASK_COMPLETE;
-               ts->stat = SAM_STAT_BUSY;
+               ts->stat = SAS_SAM_STAT_BUSY;
                break;
        case IO_OPEN_CNX_ERROR_PROTOCOL_NOT_SUPPORTED:
                pm8001_dbg(pm8001_ha, IO,
@@ -4699,7 +4699,7 @@ static int pm80xx_chip_sata_req(struct pm8001_hba_info *pm8001_ha,
 
                        spin_lock_irqsave(&task->task_state_lock, flags);
                        ts->resp = SAS_TASK_COMPLETE;
-                       ts->stat = SAM_STAT_GOOD;
+                       ts->stat = SAS_SAM_STAT_GOOD;
                        task->task_state_flags &= ~SAS_TASK_STATE_PENDING;
                        task->task_state_flags &= ~SAS_TASK_AT_INITIATOR;
                        task->task_state_flags |= SAS_TASK_STATE_DONE;
index 9271d7a49b902f4a4a5ec4d78b2616851b56ce68..6fe125a71b6088390fbca461b53131ea7d25499f 100644 (file)
@@ -474,10 +474,16 @@ enum service_response {
 };
 
 enum exec_status {
-       /* The SAM_STAT_.. codes fit in the lower 6 bits, alias some of
-        * them here to silence 'case value not in enumerated type' warnings
+       /*
+        * Values 0..0x7f are used to return the SAM_STAT_* codes.  To avoid
+        * 'case value not in enumerated type' compiler warnings every value
+        * returned through the exec_status enum needs an alias with the SAS_
+        * prefix here.
         */
-       __SAM_STAT_CHECK_CONDITION = SAM_STAT_CHECK_CONDITION,
+       SAS_SAM_STAT_GOOD = SAM_STAT_GOOD,
+       SAS_SAM_STAT_BUSY = SAM_STAT_BUSY,
+       SAS_SAM_STAT_TASK_ABORTED = SAM_STAT_TASK_ABORTED,
+       SAS_SAM_STAT_CHECK_CONDITION = SAM_STAT_CHECK_CONDITION,
 
        SAS_DEV_NO_RESPONSE = 0x80,
        SAS_DATA_UNDERRUN,