diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2014-07-31 10:38:08 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2014-09-16 08:32:10 +0200 |
commit | ed6e965824303255cacc1c1a195d3684caa26bce (patch) | |
tree | 26e2b1b78498675ceae4dd2e990836c26ec1d5ec /drivers/gpio | |
parent | 5bdc82c54a3306f2ae151a00f2df54f9240395b8 (diff) | |
download | barebox-ed6e965824303255cacc1c1a195d3684caa26bce.tar.gz barebox-ed6e965824303255cacc1c1a195d3684caa26bce.tar.xz |
resource: Let dev_request_mem_region return an error pointer
For all users fix or add the error check.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/gpio')
-rw-r--r-- | drivers/gpio/gpio-clps711x.c | 10 | ||||
-rw-r--r-- | drivers/gpio/gpio-davinci.c | 4 | ||||
-rw-r--r-- | drivers/gpio/gpio-dw.c | 5 | ||||
-rw-r--r-- | drivers/gpio/gpio-jz4740.c | 5 | ||||
-rw-r--r-- | drivers/gpio/gpio-malta-fpga-i2c.c | 4 | ||||
-rw-r--r-- | drivers/gpio/gpio-omap.c | 4 | ||||
-rw-r--r-- | drivers/gpio/gpio-tegra.c | 4 |
7 files changed, 23 insertions, 13 deletions
diff --git a/drivers/gpio/gpio-clps711x.c b/drivers/gpio/gpio-clps711x.c index 2f12439e0f..7d3f1ffb25 100644 --- a/drivers/gpio/gpio-clps711x.c +++ b/drivers/gpio/gpio-clps711x.c @@ -26,18 +26,22 @@ static int clps711x_gpio_probe(struct device_d *dev) return -ENODEV; dat = dev_request_mem_region(dev, 0); + if (IS_ERR(dat)) + return PTR_ERR(dat); + switch (id) { case 3: dir_inv = dev_request_mem_region(dev, 1); + if (IS_ERR(dir_inv)) + return PTR_ERR(dir_inv); break; default: dir = dev_request_mem_region(dev, 1); + if (IS_ERR(dir)) + return PTR_ERR(dir); break; } - if (!dat || (!dir && !dir_inv)) - return -EINVAL; - bgc = xzalloc(sizeof(struct bgpio_chip)); if (!bgc) return -ENOMEM; diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c index 7d15b855f0..2b1d82b71c 100644 --- a/drivers/gpio/gpio-davinci.c +++ b/drivers/gpio/gpio-davinci.c @@ -163,9 +163,9 @@ static int davinci_gpio_probe(struct device_d *dev) chips = xzalloc((ngpio / 32 + 1) * sizeof(*chips)); gpio_base = dev_request_mem_region(dev, 0); - if (!gpio_base) { + if (IS_ERR(gpio_base)) { dev_err(dev, "could not get memory region\n"); - return -ENODEV; + return PTR_ERR(gpio_base); } for (i = 0, base = 0; base < ngpio; i++, base += 32) { diff --git a/drivers/gpio/gpio-dw.c b/drivers/gpio/gpio-dw.c index e46cc8e129..e582eb6d91 100644 --- a/drivers/gpio/gpio-dw.c +++ b/drivers/gpio/gpio-dw.c @@ -22,6 +22,7 @@ #include <io.h> #include <gpio.h> #include <init.h> +#include <linux/err.h> #define DW_GPIO_DR 0x0 #define DW_GPIO_DDR 0x4 @@ -114,8 +115,8 @@ static int dw_gpio_probe(struct device_d *dev) chip = xzalloc(sizeof(*chip)); chip->regs = dev_request_mem_region(dev, 0); - if (!chip->regs) - return -EBUSY; + if (IS_ERR(chip->regs)) + return PTR_ERR(chip->regs); chip->chip.ops = &imx_gpio_ops; if (dev->id < 0) { diff --git a/drivers/gpio/gpio-jz4740.c b/drivers/gpio/gpio-jz4740.c index 3c8efad8f3..f7e6781dc1 100644 --- a/drivers/gpio/gpio-jz4740.c +++ b/drivers/gpio/gpio-jz4740.c @@ -21,6 +21,7 @@ #include <io.h> #include <gpio.h> #include <malloc.h> +#include <linux/err.h> #define JZ_REG_GPIO_PIN 0x00 #define JZ_REG_GPIO_DATA 0x10 @@ -94,9 +95,9 @@ static int jz4740_gpio_probe(struct device_d *dev) int ret; base = dev_request_mem_region(dev, 0); - if (!base) { + if (IS_ERR(base)) { dev_err(dev, "could not get memory region\n"); - return -ENODEV; + return PTR_ERR(base); } jz4740_gpio = xzalloc(sizeof(*jz4740_gpio)); diff --git a/drivers/gpio/gpio-malta-fpga-i2c.c b/drivers/gpio/gpio-malta-fpga-i2c.c index d6995aad81..ff77b8c7ef 100644 --- a/drivers/gpio/gpio-malta-fpga-i2c.c +++ b/drivers/gpio/gpio-malta-fpga-i2c.c @@ -138,9 +138,9 @@ static int malta_i2c_gpio_probe(struct device_d *dev) int ret; gpio_base = dev_request_mem_region(dev, 0); - if (!gpio_base) { + if (IS_ERR(gpio_base)) { dev_err(dev, "could not get memory region\n"); - return -ENODEV; + return PTR_ERR(gpio_base); } sc = xzalloc(sizeof(*sc)); diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c index e66a614f21..ff31b15dcd 100644 --- a/drivers/gpio/gpio-omap.c +++ b/drivers/gpio/gpio-omap.c @@ -36,6 +36,7 @@ #include <errno.h> #include <gpio.h> #include <init.h> +#include <linux/err.h> #define OMAP_GPIO_OE 0x0034 #define OMAP_GPIO_DATAIN 0x0038 @@ -147,6 +148,9 @@ static int omap_gpio_probe(struct device_d *dev) omapgpio = xzalloc(sizeof(*omapgpio)); omapgpio->base = dev_request_mem_region(dev, 0); + if (IS_ERR(omapgpio->base)) + return PTR_ERR(omapgpio->base); + if (drvdata) omapgpio->base += drvdata->regofs; diff --git a/drivers/gpio/gpio-tegra.c b/drivers/gpio/gpio-tegra.c index bab32ee328..d4eea4e572 100644 --- a/drivers/gpio/gpio-tegra.c +++ b/drivers/gpio/gpio-tegra.c @@ -149,9 +149,9 @@ static int tegra_gpio_probe(struct device_d *dev) } gpio_base = dev_request_mem_region(dev, 0); - if (!gpio_base) { + if (IS_ERR(gpio_base)) { dev_err(dev, "could not get memory region\n"); - return -ENODEV; + return PTR_ERR(gpio_base); } for (i = 0; i < config->bank_count; i++) { |