[PATCH] scsi: 3ware: fix return 0 on the error path of probe

From: Yang Li
Date: Wed Jun 02 2021 - 06:03:11 EST


When tw_reset_sequence() failed and returns 1, the tw_probe() returns
retval with a value of 0. We set retval to -ENOMEM in this case.

Clean up smatch warning:
drivers/scsi/3w-xxxx.c:2309 tw_probe() warn: missing error code
'retval'.

Reported-by: Abaci Robot <abaci@xxxxxxxxxxxxxxxxx>
Signed-off-by: Yang Li <yang.lee@xxxxxxxxxxxxxxxxx>
---
drivers/scsi/3w-xxxx.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/scsi/3w-xxxx.c b/drivers/scsi/3w-xxxx.c
index a729288..6557663 100644
--- a/drivers/scsi/3w-xxxx.c
+++ b/drivers/scsi/3w-xxxx.c
@@ -2305,8 +2305,10 @@ static int tw_probe(struct pci_dev *pdev, const struct pci_device_id *dev_id)
TW_DISABLE_INTERRUPTS(tw_dev);

/* Initialize the card */
- if (tw_reset_sequence(tw_dev))
+ if (tw_reset_sequence(tw_dev)) {
+ retval = -ENOMEM;
goto out_release_mem_region;
+ }

/* Set host specific parameters */
host->max_id = TW_MAX_UNITS;
--
1.8.3.1