Blame SOURCES/0001-scsi-3ware-fix-return-0-on-the-error-path-of-probe.patch

Kmods SIG e227be
From 4dc98c1995482262e70e83ef029135247fafe0f2 Mon Sep 17 00:00:00 2001
Kmods SIG e227be
From: Anton Vasilyev <vasilyev@ispras.ru>
Kmods SIG e227be
Date: Fri, 27 Jul 2018 16:51:57 +0300
Kmods SIG e227be
Subject: [Backport 4dc98c199548] scsi: 3ware: fix return 0 on the error path
Kmods SIG e227be
 of probe
Kmods SIG e227be
Kmods SIG e227be
tw_probe() returns 0 in case of fail of tw_initialize_device_extension(),
Kmods SIG e227be
pci_resource_start() or tw_reset_sequence() and releases resources.
Kmods SIG e227be
twl_probe() returns 0 in case of fail of twl_initialize_device_extension(),
Kmods SIG e227be
pci_iomap() and twl_reset_sequence().  twa_probe() returns 0 in case of
Kmods SIG e227be
fail of tw_initialize_device_extension(), ioremap() and
Kmods SIG e227be
twa_reset_sequence().
Kmods SIG e227be
Kmods SIG e227be
The patch adds retval initialization for these cases.
Kmods SIG e227be
Kmods SIG e227be
Found by Linux Driver Verification project (linuxtesting.org).
Kmods SIG e227be
Kmods SIG e227be
Signed-off-by: Anton Vasilyev <vasilyev@ispras.ru>
Kmods SIG e227be
Acked-by: Adam Radford <aradford@gmail.com>
Kmods SIG e227be
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Kmods SIG e227be
---
Kmods SIG e227be
 src/3w-xxxx.c | 2 ++
Kmods SIG e227be
 1 file changed, 2 insertions(+)
Kmods SIG e227be
Kmods SIG e227be
diff --git a/src/3w-xxxx.c b/src/3w-xxxx.c
Kmods SIG e227be
index a40d353bd8b3981986ee1e4fea3ed6771b078f7e..471366945bd4fc8b3d92ede8247f8a4d5706d508 100644
Kmods SIG e227be
--- a/src/3w-xxxx.c
Kmods SIG e227be
+++ b/src/3w-xxxx.c
Kmods SIG e227be
@@ -2280,6 +2280,7 @@ static int tw_probe(struct pci_dev *pdev, const struct pci_device_id *dev_id)
Kmods SIG e227be
 
Kmods SIG e227be
 	if (tw_initialize_device_extension(tw_dev)) {
Kmods SIG e227be
 		printk(KERN_WARNING "3w-xxxx: Failed to initialize device extension.");
Kmods SIG e227be
+		retval = -ENOMEM;
Kmods SIG e227be
 		goto out_free_device_extension;
Kmods SIG e227be
 	}
Kmods SIG e227be
 
Kmods SIG e227be
@@ -2294,6 +2295,7 @@ static int tw_probe(struct pci_dev *pdev, const struct pci_device_id *dev_id)
Kmods SIG e227be
 	tw_dev->base_addr = pci_resource_start(pdev, 0);
Kmods SIG e227be
 	if (!tw_dev->base_addr) {
Kmods SIG e227be
 		printk(KERN_WARNING "3w-xxxx: Failed to get io address.");
Kmods SIG e227be
+		retval = -ENOMEM;
Kmods SIG e227be
 		goto out_release_mem_region;
Kmods SIG e227be
 	}
Kmods SIG e227be
 
Kmods SIG e227be
-- 
Kmods SIG e227be
2.31.1
Kmods SIG e227be