[U-Boot] [PATCH 25/29] dm: scsi: Adjust return value of scsi_exec()

Simon Glass sjg at chromium.org
Mon Jun 5 19:15:12 UTC 2017


Change this function to return an error number instead of true/false.
This allows us to return a proper error number.

Signed-off-by: Simon Glass <sjg at chromium.org>
---

 drivers/ata/ahci.c  | 6 +++---
 drivers/scsi/scsi.c | 8 ++++----
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index 5a20b97c4b..3528a1f3da 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -960,14 +960,14 @@ static int ahci_scsi_exec(struct udevice *dev, struct scsi_cmd *pccb)
 		break;
 	default:
 		printf("Unsupport SCSI command 0x%02x\n", pccb->cmd[0]);
-		return false;
+		return -ENOTSUPP;
 	}
 
 	if (ret) {
 		debug("SCSI command 0x%02x ret errno %d\n", pccb->cmd[0], ret);
-		return false;
+		return ret;
 	}
-	return true;
+	return 0;
 
 }
 
diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
index f3f8d31e1a..80c5ce699e 100644
--- a/drivers/scsi/scsi.c
+++ b/drivers/scsi/scsi.c
@@ -368,7 +368,7 @@ static int scsi_read_capacity(struct udevice *dev, struct scsi_cmd *pccb,
 	pccb->msgout[0] = SCSI_IDENTIFY; /* NOT USED */
 
 	pccb->datalen = 8;
-	if (scsi_exec(dev, pccb) != true)
+	if (scsi_exec(dev, pccb))
 		return 1;
 
 	*capacity = ((lbaint_t)pccb->pdata[0] << 24) |
@@ -393,7 +393,7 @@ static int scsi_read_capacity(struct udevice *dev, struct scsi_cmd *pccb,
 	pccb->msgout[0] = SCSI_IDENTIFY; /* NOT USED */
 
 	pccb->datalen = 16;
-	if (scsi_exec(dev, pccb) != true)
+	if (scsi_exec(dev, pccb))
 		return 1;
 
 	*capacity = ((uint64_t)pccb->pdata[0] << 56) |
@@ -499,7 +499,7 @@ static int scsi_detect_dev(struct udevice *dev, int target, int lun,
 	pccb->pdata = (unsigned char *)&tempbuff;
 	pccb->datalen = 512;
 	scsi_setup_inquiry(pccb);
-	if (scsi_exec(dev, pccb) != true) {
+	if (scsi_exec(dev, pccb)) {
 		if (pccb->contr_stat == SCSI_SEL_TIME_OUT) {
 			/*
 			  * selection timeout => assuming no
@@ -530,7 +530,7 @@ static int scsi_detect_dev(struct udevice *dev, int target, int lun,
 
 	pccb->datalen = 0;
 	scsi_setup_test_unit_ready(pccb);
-	if (scsi_exec(dev, pccb) != true) {
+	if (scsi_exec(dev, pccb)) {
 		if (dev_desc->removable) {
 			dev_desc->type = perq;
 			goto removable;
-- 
2.13.0.506.g27d5fe0cd-goog



More information about the U-Boot mailing list