diff options
author | Dan Carpenter <dan.carpenter@oracle.com> | 2015-12-09 13:48:36 +0300 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2015-12-10 13:33:18 -0500 |
commit | 9c9d18e7a680f3eceeb891e24709eda817ef738e (patch) | |
tree | e8d5504425f0f2bfd55dab13e466184a9ee1c367 /drivers/scsi/hisi_sas | |
parent | 9a2fcad8dce219df6cac3db91f373080f017856a (diff) | |
download | linux-stable-9c9d18e7a680f3eceeb891e24709eda817ef738e.tar.gz linux-stable-9c9d18e7a680f3eceeb891e24709eda817ef738e.tar.bz2 linux-stable-9c9d18e7a680f3eceeb891e24709eda817ef738e.zip |
hisi_sas: fix error codes in hisi_sas_task_prep()
There were a couple cases where the error codes weren't set and also I
changed the success return to "return 0;" which is the same as
"return rc;" but more explicit.
Fixes: 42e7a69368a5 ('hisi_sas: Add ssp command functio')
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Tested-by: John Garry <john.garry@huawei.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/hisi_sas')
-rw-r--r-- | drivers/scsi/hisi_sas/hisi_sas_main.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/scsi/hisi_sas/hisi_sas_main.c b/drivers/scsi/hisi_sas/hisi_sas_main.c index 29290181b131..99b1950d751c 100644 --- a/drivers/scsi/hisi_sas/hisi_sas_main.c +++ b/drivers/scsi/hisi_sas/hisi_sas_main.c @@ -208,15 +208,19 @@ static int hisi_sas_task_prep(struct sas_task *task, struct hisi_hba *hisi_hba, slot->status_buffer = dma_pool_alloc(hisi_hba->status_buffer_pool, GFP_ATOMIC, &slot->status_buffer_dma); - if (!slot->status_buffer) + if (!slot->status_buffer) { + rc = -ENOMEM; goto err_out_slot_buf; + } memset(slot->status_buffer, 0, HISI_SAS_STATUS_BUF_SZ); slot->command_table = dma_pool_alloc(hisi_hba->command_table_pool, GFP_ATOMIC, &slot->command_table_dma); - if (!slot->command_table) + if (!slot->command_table) { + rc = -ENOMEM; goto err_out_status_buf; + } memset(slot->command_table, 0, HISI_SAS_COMMAND_TABLE_SZ); memset(slot->cmd_hdr, 0, sizeof(struct hisi_sas_cmd_hdr)); @@ -254,7 +258,7 @@ static int hisi_sas_task_prep(struct sas_task *task, struct hisi_hba *hisi_hba, sas_dev->running_req++; ++(*pass); - return rc; + return 0; err_out_sge: dma_pool_free(hisi_hba->sge_page_pool, slot->sge_page, |