[PATCH 1/2] fsl/qe: NULL dereference on error in ucc_of_parse_tdm()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



If "pdev = of_find_device_by_node(np2);" fails then it would lead to a
NULL dereference.  This function is called from probe() and we're using
managed resources so we can just return without doing a manual cleanup.

Fixes: 35ef1c20fdb2 ("fsl/qe: Add QE TDM lib")
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>

diff --git a/drivers/soc/fsl/qe/qe_tdm.c b/drivers/soc/fsl/qe/qe_tdm.c
index f744c214f680..ec7a853053c3 100644
--- a/drivers/soc/fsl/qe/qe_tdm.c
+++ b/drivers/soc/fsl/qe/qe_tdm.c
@@ -139,32 +139,25 @@ int ucc_of_parse_tdm(struct device_node *np, struct ucc_tdm *utdm,
 	of_node_put(np2);
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	utdm->si_regs = devm_ioremap_resource(&pdev->dev, res);
-	if (IS_ERR(utdm->si_regs)) {
-		ret = PTR_ERR(utdm->si_regs);
-		goto err_miss_siram_property;
-	}
+	if (IS_ERR(utdm->si_regs))
+		return PTR_ERR(utdm->si_regs);
 
 	np2 = of_find_compatible_node(NULL, NULL, "fsl,t1040-qe-siram");
-	if (!np2) {
-		ret = -EINVAL;
-		goto err_miss_siram_property;
-	}
+	if (!np2)
+		return -EINVAL;
 
 	pdev = of_find_device_by_node(np2);
 	if (!pdev) {
-		ret = -EINVAL;
 		pr_err("%s: failed to lookup pdev\n", np2->name);
 		of_node_put(np2);
-		goto err_miss_siram_property;
+		return -EINVAL;
 	}
 
 	of_node_put(np2);
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	utdm->siram = devm_ioremap_resource(&pdev->dev, res);
-	if (IS_ERR(utdm->siram)) {
-		ret = PTR_ERR(utdm->siram);
-		goto err_miss_siram_property;
-	}
+	if (IS_ERR(utdm->siram))
+		return PTR_ERR(utdm->siram);
 
 	if (siram_init_flag == 0) {
 		memset_io(utdm->siram, 0,  resource_size(res));
@@ -172,10 +165,6 @@ int ucc_of_parse_tdm(struct device_node *np, struct ucc_tdm *utdm,
 	}
 
 	return ret;
-
-err_miss_siram_property:
-	devm_iounmap(&pdev->dev, utdm->si_regs);
-	return ret;
 }
 EXPORT_SYMBOL(ucc_of_parse_tdm);
 
--
To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Kernel Development]     [Kernel Announce]     [Kernel Newbies]     [Linux Networking Development]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Device Mapper]

  Powered by Linux