summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUma Krishnan <ukrishn@linux.vnet.ibm.com>2017-06-21 21:13:48 -0500
committerMartin K. Petersen <martin.petersen@oracle.com>2017-06-26 15:01:07 -0400
commit539d890cecee6b5d7304914afc51b7f53150163d (patch)
tree7304d15a56d7306b7664f6499ee3fe7acd977551
parent66ea9bcc392017b6df465b6f5847f6eac966a801 (diff)
downloadtalos-obmc-linux-539d890cecee6b5d7304914afc51b7f53150163d.tar.gz
talos-obmc-linux-539d890cecee6b5d7304914afc51b7f53150163d.zip
scsi: cxlflash: Update cxlflash_afu_sync() to return errno
The cxlflash_afu_sync() routine returns a negative one to indicate any kind of failure. This makes it impossible to establish why the error occurred. Update the return codes to clearly indicate the failure cause to the caller. Signed-off-by: Uma Krishnan <ukrishn@linux.vnet.ibm.com> Acked-by: Matthew R. Ochs <mrochs@linux.vnet.ibm.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-rw-r--r--drivers/scsi/cxlflash/main.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/scsi/cxlflash/main.c b/drivers/scsi/cxlflash/main.c
index 64ea597ca98e..815d04b3e7aa 100644
--- a/drivers/scsi/cxlflash/main.c
+++ b/drivers/scsi/cxlflash/main.c
@@ -2022,8 +2022,7 @@ err1:
* going away).
*
* Return:
- * 0 on success
- * -1 on failure
+ * 0 on success, -errno on failure
*/
int cxlflash_afu_sync(struct afu *afu, ctx_hndl_t ctx_hndl_u,
res_hndl_t res_hndl_u, u8 mode)
@@ -2047,7 +2046,7 @@ int cxlflash_afu_sync(struct afu *afu, ctx_hndl_t ctx_hndl_u,
buf = kzalloc(sizeof(*cmd) + __alignof__(*cmd) - 1, GFP_KERNEL);
if (unlikely(!buf)) {
dev_err(dev, "%s: no memory for command\n", __func__);
- rc = -1;
+ rc = -ENOMEM;
goto out;
}
@@ -2071,12 +2070,14 @@ int cxlflash_afu_sync(struct afu *afu, ctx_hndl_t ctx_hndl_u,
*((__be32 *)&cmd->rcb.cdb[4]) = cpu_to_be32(res_hndl_u);
rc = afu->send_cmd(afu, cmd);
- if (unlikely(rc))
+ if (unlikely(rc)) {
+ rc = -ENOBUFS;
goto out;
+ }
rc = wait_resp(afu, cmd);
if (unlikely(rc))
- rc = -1;
+ rc = -EIO;
out:
atomic_dec(&afu->cmds_active);
mutex_unlock(&sync_active);
OpenPOWER on IntegriCloud