diff mbox series

[-next] pcd: capture error codes on pcd_probe() and pf_probe()

Message ID 1632897629-84965-1-git-send-email-yang.lee@linux.alibaba.com (mailing list archive)
State New, archived
Headers show
Series [-next] pcd: capture error codes on pcd_probe() and pf_probe() | expand

Commit Message

Yang Li Sept. 29, 2021, 6:40 a.m. UTC
No error code were being captured when pcd_probe() and
pf_probe() fail, capture them by assigning them to ret.

Clean up smatch warning:
drivers/block/paride/pcd.c:939 pcd_init_unit() warn: missing error code
'ret'
drivers/block/paride/pf.c:963 pf_init_unit() warn: missing error code
'ret'

Reported-by: Abaci Robot <abaci@linux.alibaba.com>
Signed-off-by: Yang Li <yang.lee@linux.alibaba.com>
---
 drivers/block/paride/pcd.c | 3 ++-
 drivers/block/paride/pf.c  | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

Comments

Christoph Hellwig Sept. 29, 2021, 6:54 a.m. UTC | #1
On Wed, Sep 29, 2021 at 02:40:29PM +0800, Yang Li wrote:
> No error code were being captured when pcd_probe() and
> pf_probe() fail, capture them by assigning them to ret.
> 
> Clean up smatch warning:
> drivers/block/paride/pcd.c:939 pcd_init_unit() warn: missing error code
> 'ret'
> drivers/block/paride/pf.c:963 pf_init_unit() warn: missing error code
> 'ret'
> 
> Reported-by: Abaci Robot <abaci@linux.alibaba.com>
> Signed-off-by: Yang Li <yang.lee@linux.alibaba.com>

Please not.  I have a major rewrite of the paride probing pending,
which Jens just wanted to make conditional on potentially dropping the
drivers entirely.  So either we take the real series to clean this mess
up or we drop the drivers, but we need to stop this sugarcoating of
fundamentally bad code.
diff mbox series

Patch

diff --git a/drivers/block/paride/pcd.c b/drivers/block/paride/pcd.c
index 4cc0d14..9ae8859 100644
--- a/drivers/block/paride/pcd.c
+++ b/drivers/block/paride/pcd.c
@@ -935,7 +935,8 @@  static int pcd_init_unit(struct pcd_unit *cd, bool autoprobe, int port,
 	if (!pi_init(cd->pi, autoprobe, port, mode, unit, protocol, delay,
 			pcd_buffer, PI_PCD, verbose, cd->name))
 		goto out_free_disk;
-	if (pcd_probe(cd, ms))
+	ret = pcd_probe(cd, ms);
+	if (ret)
 		goto out_pi_release;
 
 	cd->present = 1;
diff --git a/drivers/block/paride/pf.c b/drivers/block/paride/pf.c
index 380d80e..7b9acfc 100644
--- a/drivers/block/paride/pf.c
+++ b/drivers/block/paride/pf.c
@@ -959,7 +959,8 @@  static int __init pf_init_unit(struct pf_unit *pf, bool autoprobe, int port,
 	if (!pi_init(pf->pi, autoprobe, port, mode, unit, protocol, delay,
 			pf_scratch, PI_PF, verbose, pf->name))
 		goto out_free_disk;
-	if (pf_probe(pf))
+	ret = pf_probe(pf);
+	if (ret)
 		goto out_pi_release;
 
 	ret = add_disk(disk);