Both dev_get_mem_region and dev_get_mem_region_by_name do exactly the same thing with struct resource they obtain. Move that code into a dedicated helper function. Signed-off-by: Andrey Smirnov <andrew.smirnov@xxxxxxxxx> --- drivers/base/driver.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/base/driver.c b/drivers/base/driver.c index a70fbb2..2ef7ca9 100644 --- a/drivers/base/driver.c +++ b/drivers/base/driver.c @@ -325,15 +325,18 @@ struct resource *dev_get_resource(struct device_d *dev, unsigned long type, return ERR_PTR(-ENOENT); } +static void *__start_or_err(const struct resource *res) +{ + return IS_ERR(res) ? ERR_CAST(res) : IOMEM(res->start); +} + void *dev_get_mem_region(struct device_d *dev, int num) { struct resource *res; res = dev_get_resource(dev, IORESOURCE_MEM, num); - if (IS_ERR(res)) - return ERR_CAST(res); - return (void __force *)res->start; + return __start_or_err(res); } EXPORT_SYMBOL(dev_get_mem_region); @@ -361,10 +364,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 (IS_ERR(res)) - return ERR_CAST(res); - return (void __force *)res->start; + return __start_or_err(res); } EXPORT_SYMBOL(dev_get_mem_region_by_name); -- 2.5.0 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox