scsi: hisi_sas: error hisi_sas_task_prep() when port down
authorJohn Garry <john.garry@huawei.com>
Wed, 22 Mar 2017 17:25:22 +0000 (01:25 +0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 23 Mar 2017 15:12:01 +0000 (11:12 -0400)
When sas_port is NULL, then return SAS_PHY_DOWN.

In addition, when the sas_dev is gone then explicitly return
SAS_PHY_DOWN.

Signed-off-by: John Garry <john.garry@huawei.com>
Signed-off-by: Xiang Chen <chenxiang66@hisilicon.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/hisi_sas/hisi_sas_main.c

index f64c1b6a4a76fd11e6e3bd0bc5c06638ab36ca5e..7c1fb75d11e6b38f9e929bc676095129f99eb689 100644 (file)
@@ -200,7 +200,7 @@ static int hisi_sas_task_prep(struct sas_task *task, struct hisi_hba *hisi_hba,
                 */
                if (device->dev_type != SAS_SATA_DEV)
                        task->task_done(task);
-               return 0;
+               return SAS_PHY_DOWN;
        }
 
        if (DEV_IS_GONE(sas_dev)) {
@@ -211,8 +211,7 @@ static int hisi_sas_task_prep(struct sas_task *task, struct hisi_hba *hisi_hba,
                        dev_info(dev, "task prep: device %016llx not ready\n",
                                 SAS_ADDR(device->sas_addr));
 
-               rc = SAS_PHY_DOWN;
-               return rc;
+               return SAS_PHY_DOWN;
        }
 
        port = to_hisi_sas_port(sas_port);