summaryrefslogtreecommitdiffstats
path: root/drivers/base
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2014-07-31 09:02:47 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2014-09-16 08:32:10 +0200
commit29b7f95f3bd244a4b4d036e1b3a94a7bfbe3581c (patch)
tree282c0036b7127af4ecb76e6fb214de8a2077bcfb /drivers/base
parent9d518ba397712add7fa06ff3ab056a26a3c46de6 (diff)
downloadbarebox-29b7f95f3bd244a4b4d036e1b3a94a7bfbe3581c.tar.gz
barebox-29b7f95f3bd244a4b4d036e1b3a94a7bfbe3581c.tar.xz
resource: Let dev_get_mem_region return an error pointer
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Acked-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Diffstat (limited to 'drivers/base')
-rw-r--r--drivers/base/driver.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/base/driver.c b/drivers/base/driver.c
index 524ed1c980..23f31ce77e 100644
--- a/drivers/base/driver.c
+++ b/drivers/base/driver.c
@@ -265,7 +265,7 @@ void *dev_get_mem_region(struct device_d *dev, int num)
res = dev_get_resource(dev, IORESOURCE_MEM, num);
if (IS_ERR(res))
- return NULL;
+ return ERR_CAST(res);
return (void __force *)res->start;
}
@@ -348,6 +348,8 @@ int generic_memmap_ro(struct cdev *cdev, void **map, int flags)
if (flags & PROT_WRITE)
return -EACCES;
*map = dev_get_mem_region(cdev->dev, 0);
+ if (IS_ERR(*map))
+ return PTR_ERR(*map);
return 0;
}
@@ -357,6 +359,9 @@ int generic_memmap_rw(struct cdev *cdev, void **map, int flags)
return -EINVAL;
*map = dev_get_mem_region(cdev->dev, 0);
+ if (IS_ERR(*map))
+ return PTR_ERR(*map);
+
return 0;
}