summaryrefslogtreecommitdiffstats
path: root/drivers/base
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2014-10-02 08:54:42 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2014-10-02 08:54:42 +0200
commitfa93e4fb602389c5a5d6991a86cf93ae6e92d016 (patch)
tree570dc8a12e7410fb1f87ddb473ad5a5e64240846 /drivers/base
parent52a0febb3dbe06e233f04d5c670fd662b85c1d95 (diff)
parentd5a82eb095def58f3a19127bb08ff96d799b63a5 (diff)
downloadbarebox-fa93e4fb602389c5a5d6991a86cf93ae6e92d016.tar.gz
barebox-fa93e4fb602389c5a5d6991a86cf93ae6e92d016.tar.xz
Merge branch 'for-next/resource-err-ptr'
Diffstat (limited to 'drivers/base')
-rw-r--r--drivers/base/driver.c34
1 files changed, 20 insertions, 14 deletions
diff --git a/drivers/base/driver.c b/drivers/base/driver.c
index 9709415821..e0125a1b92 100644
--- a/drivers/base/driver.c
+++ b/drivers/base/driver.c
@@ -32,6 +32,7 @@
#include <fs.h>
#include <of.h>
#include <linux/list.h>
+#include <linux/err.h>
#include <complete.h>
#include <pinctrl.h>
@@ -255,7 +256,7 @@ struct resource *dev_get_resource(struct device_d *dev, unsigned long type,
}
}
- return NULL;
+ return ERR_PTR(-ENOENT);
}
void *dev_get_mem_region(struct device_d *dev, int num)
@@ -263,8 +264,8 @@ void *dev_get_mem_region(struct device_d *dev, int num)
struct resource *res;
res = dev_get_resource(dev, IORESOURCE_MEM, num);
- if (!res)
- return NULL;
+ if (IS_ERR(res))
+ return ERR_CAST(res);
return (void __force *)res->start;
}
@@ -286,7 +287,7 @@ struct resource *dev_get_resource_by_name(struct device_d *dev,
return res;
}
- return NULL;
+ return ERR_PTR(-ENOENT);
}
void *dev_get_mem_region_by_name(struct device_d *dev, const char *name)
@@ -294,8 +295,8 @@ void *dev_get_mem_region_by_name(struct device_d *dev, const char *name)
struct resource *res;
res = dev_get_resource_by_name(dev, IORESOURCE_MEM, name);
- if (!res)
- return NULL;
+ if (IS_ERR(res))
+ return ERR_CAST(res);
return (void __force *)res->start;
}
@@ -306,12 +307,12 @@ void __iomem *dev_request_mem_region_by_name(struct device_d *dev, const char *n
struct resource *res;
res = dev_get_resource_by_name(dev, IORESOURCE_MEM, name);
- if (!res)
- return NULL;
+ if (IS_ERR(res))
+ return ERR_CAST(res);
res = request_iomem_region(dev_name(dev), res->start, res->end);
- if (!res)
- return NULL;
+ if (IS_ERR(res))
+ return ERR_CAST(res);
return (void __force __iomem *)res->start;
}
@@ -322,12 +323,12 @@ void __iomem *dev_request_mem_region(struct device_d *dev, int num)
struct resource *res;
res = dev_get_resource(dev, IORESOURCE_MEM, num);
- if (!res)
- return NULL;
+ if (IS_ERR(res))
+ return ERR_CAST(res);
res = request_iomem_region(dev_name(dev), res->start, res->end);
- if (!res)
- return NULL;
+ if (IS_ERR(res))
+ return ERR_CAST(res);
return (void __force __iomem *)res->start;
}
@@ -347,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;
}
@@ -356,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;
}