[PATCH 08/10] resource: Let dev_request_mem_region_by_name return an error pointer

Sascha Hauer s.hauer at pengutronix.de
Fri Sep 12 03:13:48 PDT 2014


Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
 drivers/base/driver.c           | 4 ++--
 drivers/mtd/nand/nomadik_nand.c | 7 +++++++
 drivers/video/omap.c            | 3 ++-
 3 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/drivers/base/driver.c b/drivers/base/driver.c
index 23f31ce..e61c6c5 100644
--- a/drivers/base/driver.c
+++ b/drivers/base/driver.c
@@ -308,11 +308,11 @@ void __iomem *dev_request_mem_region_by_name(struct device_d *dev, const char *n
 
 	res = dev_get_resource_by_name(dev, IORESOURCE_MEM, name);
 	if (IS_ERR(res))
-		return NULL;
+		return ERR_CAST(res);
 
 	res = request_iomem_region(dev_name(dev), res->start, res->end);
 	if (IS_ERR(res))
-		return NULL;
+		return ERR_CAST(res);
 
 	return (void __force __iomem *)res->start;
 }
diff --git a/drivers/mtd/nand/nomadik_nand.c b/drivers/mtd/nand/nomadik_nand.c
index fbd8ecd..8f37345 100644
--- a/drivers/mtd/nand/nomadik_nand.c
+++ b/drivers/mtd/nand/nomadik_nand.c
@@ -26,6 +26,7 @@
 #include <malloc.h>
 #include <init.h>
 
+#include <linux/err.h>
 #include <linux/types.h>
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/nand.h>
@@ -190,7 +191,11 @@ static int nomadik_nand_probe(struct device_d *dev)
 	}
 
 	host->cmd_va = dev_request_mem_region_by_name(dev, "nand_cmd");
+	if (IS_ERR(host->cmd_va))
+		return PTR_ERR(host->cmd_va);
 	host->addr_va = dev_request_mem_region_by_name(dev, "nand_addr");
+	if (IS_ERR(host->addr_va))
+		return PTR_ERR(host->addr_va);
 
 	/* Link all private pointers */
 	mtd = &host->mtd;
@@ -200,6 +205,8 @@ static int nomadik_nand_probe(struct device_d *dev)
 	mtd->parent = dev;
 
 	nand->IO_ADDR_W = nand->IO_ADDR_R = dev_request_mem_region_by_name(dev, "nand_data");
+	if (IS_ERR(nand->IO_ADDR_W))
+		return PTR_ERR(nand->IO_ADDR_W);
 	nand->cmd_ctrl = nomadik_cmd_ctrl;
 
 	nand->ecc.mode = NAND_ECC_HW;
diff --git a/drivers/video/omap.c b/drivers/video/omap.c
index 485cc75..bd66c92 100644
--- a/drivers/video/omap.c
+++ b/drivers/video/omap.c
@@ -29,6 +29,7 @@
 #include <malloc.h>
 #include <common.h>
 #include <clock.h>
+#include <linux/err.h>
 
 #include <mach/omap4-silicon.h>
 #include <mach/omap-fb.h>
@@ -442,7 +443,7 @@ static int omapfb_probe(struct device_d *dev)
 	fbi->dss   = dev_request_mem_region_by_name(dev, "omap4_dss");
 	fbi->dispc = dev_request_mem_region_by_name(dev, "omap4_dispc");
 
-	if (!fbi->dss || !fbi->dispc) {
+	if (IS_ERR(fbi->dss) || IS_ERR(fbi->dispc)) {
 		dev_err(dev, "Insufficient register description\n");
 		rc = -EINVAL;
 		goto out;
-- 
2.1.0




More information about the barebox mailing list