[SCSI] ufs: fix incorrect return value about SUCCESS and FAILED

Currently the UFS host driver has returned incorrect values for SUCCESS
and FAILED.  Fix it to return the correct value to the upper layer.

Signed-off-by: Namjae Jeon <linkinjeon@gmail.com>
Acked-by: Santosh Y <santoshsy@gmail.com>
Signed-off-by: Venkatraman S <svenkatr@ti.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
This commit is contained in:
Namjae Jeon 2012-07-10 20:41:54 +05:30 committed by James Bottomley
parent 73ec513a3b
commit 94c122ab01
1 changed files with 6 additions and 4 deletions

View File

@ -1163,6 +1163,8 @@ static int ufshcd_task_req_compl(struct ufs_hba *hba, u32 index)
if (task_result != UPIU_TASK_MANAGEMENT_FUNC_COMPL && if (task_result != UPIU_TASK_MANAGEMENT_FUNC_COMPL &&
task_result != UPIU_TASK_MANAGEMENT_FUNC_SUCCEEDED) task_result != UPIU_TASK_MANAGEMENT_FUNC_SUCCEEDED)
task_result = FAILED; task_result = FAILED;
else
task_result = SUCCESS;
} else { } else {
task_result = FAILED; task_result = FAILED;
dev_err(&hba->pdev->dev, dev_err(&hba->pdev->dev,
@ -1556,7 +1558,7 @@ ufshcd_issue_tm_cmd(struct ufs_hba *hba,
goto out; goto out;
} }
clear_bit(free_slot, &hba->tm_condition); clear_bit(free_slot, &hba->tm_condition);
return ufshcd_task_req_compl(hba, free_slot); err = ufshcd_task_req_compl(hba, free_slot);
out: out:
return err; return err;
} }
@ -1580,7 +1582,7 @@ static int ufshcd_device_reset(struct scsi_cmnd *cmd)
tag = cmd->request->tag; tag = cmd->request->tag;
err = ufshcd_issue_tm_cmd(hba, &hba->lrb[tag], UFS_LOGICAL_RESET); err = ufshcd_issue_tm_cmd(hba, &hba->lrb[tag], UFS_LOGICAL_RESET);
if (err) if (err == FAILED)
goto out; goto out;
for (pos = 0; pos < hba->nutrs; pos++) { for (pos = 0; pos < hba->nutrs; pos++) {
@ -1620,7 +1622,7 @@ static int ufshcd_host_reset(struct scsi_cmnd *cmd)
if (hba->ufshcd_state == UFSHCD_STATE_RESET) if (hba->ufshcd_state == UFSHCD_STATE_RESET)
return SUCCESS; return SUCCESS;
return (ufshcd_do_reset(hba) == SUCCESS) ? SUCCESS : FAILED; return ufshcd_do_reset(hba);
} }
/** /**
@ -1652,7 +1654,7 @@ static int ufshcd_abort(struct scsi_cmnd *cmd)
spin_unlock_irqrestore(host->host_lock, flags); spin_unlock_irqrestore(host->host_lock, flags);
err = ufshcd_issue_tm_cmd(hba, &hba->lrb[tag], UFS_ABORT_TASK); err = ufshcd_issue_tm_cmd(hba, &hba->lrb[tag], UFS_ABORT_TASK);
if (err) if (err == FAILED)
goto out; goto out;
scsi_dma_unmap(cmd); scsi_dma_unmap(cmd);