summaryrefslogtreecommitdiffstats
path: root/drivers/serial
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2014-07-31 10:38:08 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2014-09-16 08:32:10 +0200
commited6e965824303255cacc1c1a195d3684caa26bce (patch)
tree26e2b1b78498675ceae4dd2e990836c26ec1d5ec /drivers/serial
parent5bdc82c54a3306f2ae151a00f2df54f9240395b8 (diff)
downloadbarebox-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/serial')
-rw-r--r--drivers/serial/atmel.c3
-rw-r--r--drivers/serial/serial_ar933x.c3
-rw-r--r--drivers/serial/serial_auart.c2
-rw-r--r--drivers/serial/serial_cadence.c4
-rw-r--r--drivers/serial/serial_mpc5xxx.c3
-rw-r--r--drivers/serial/serial_ns16550.c2
-rw-r--r--drivers/serial/stm-serial.c2
7 files changed, 17 insertions, 2 deletions
diff --git a/drivers/serial/atmel.c b/drivers/serial/atmel.c
index c2a5d33b1b..1f406925a3 100644
--- a/drivers/serial/atmel.c
+++ b/drivers/serial/atmel.c
@@ -399,6 +399,9 @@ static int atmel_serial_init_port(struct console_device *cdev)
struct atmel_uart_port *uart = to_atmel_uart_port(cdev);
uart->base = dev_request_mem_region(dev, 0);
+ if (IS_ERR(uart->base))
+ return PTR_ERR(uart->base);
+
uart->clk = clk_get(dev, "usart");
clk_enable(uart->clk);
uart->uartclk = clk_get_rate(uart->clk);
diff --git a/drivers/serial/serial_ar933x.c b/drivers/serial/serial_ar933x.c
index 27cccba119..51184aaae5 100644
--- a/drivers/serial/serial_ar933x.c
+++ b/drivers/serial/serial_ar933x.c
@@ -163,6 +163,9 @@ static int ar933x_serial_probe(struct device_d *dev)
cdev = xzalloc(sizeof(struct console_device));
priv = xzalloc(sizeof(struct ar933x_uart_priv));
priv->base = dev_request_mem_region(dev, 0);
+ if (IS_ERR(priv->base))
+ return PTR_ERR(priv->base);
+
dev->priv = priv;
cdev->dev = dev;
diff --git a/drivers/serial/serial_auart.c b/drivers/serial/serial_auart.c
index 19805166bb..ae6c5b8219 100644
--- a/drivers/serial/serial_auart.c
+++ b/drivers/serial/serial_auart.c
@@ -196,6 +196,8 @@ static int auart_serial_probe(struct device_d *dev)
dev->priv = priv;
priv->base = dev_request_mem_region(dev, 0);
+ if (IS_ERR(priv->base))
+ return PTR_ERR(priv->base);
priv->clk = clk_get(dev, NULL);
if (IS_ERR(priv->clk))
return PTR_ERR(priv->clk);
diff --git a/drivers/serial/serial_cadence.c b/drivers/serial/serial_cadence.c
index a1b76d07dc..10df50642a 100644
--- a/drivers/serial/serial_cadence.c
+++ b/drivers/serial/serial_cadence.c
@@ -240,8 +240,8 @@ static int cadence_serial_probe(struct device_d *dev)
clk_set_rate(priv->clk, clk_get_rate(priv->clk) / 8);
priv->regs = dev_request_mem_region(dev, 0);
- if (!priv->regs) {
- ret = -EBUSY;
+ if (IS_ERR(priv->regs)) {
+ ret = PTR_ERR(priv->regs);
goto err_free;
}
diff --git a/drivers/serial/serial_mpc5xxx.c b/drivers/serial/serial_mpc5xxx.c
index 18aca8736d..f48255ba75 100644
--- a/drivers/serial/serial_mpc5xxx.c
+++ b/drivers/serial/serial_mpc5xxx.c
@@ -36,6 +36,7 @@
#include <console.h>
#include <xfuncs.h>
#include <mach/clocks.h>
+#include <linux/err.h>
static int __mpc5xxx_serial_setbaudrate(struct mpc5xxx_psc *psc, int baudrate)
{
@@ -148,6 +149,8 @@ static int mpc5xxx_serial_probe(struct device_d *dev)
cdev = xzalloc(sizeof(struct console_device));
dev->priv = dev_request_mem_region(dev, 0);
+ if (IS_ERR(dev->priv))
+ return PTR_ERR(dev->priv);
cdev->dev = dev;
cdev->tstc = mpc5xxx_serial_tstc;
cdev->putc = mpc5xxx_serial_putc;
diff --git a/drivers/serial/serial_ns16550.c b/drivers/serial/serial_ns16550.c
index dd0986c326..78a674a823 100644
--- a/drivers/serial/serial_ns16550.c
+++ b/drivers/serial/serial_ns16550.c
@@ -321,6 +321,8 @@ static int ns16550_init_iomem(struct device_d *dev, struct ns16550_priv *priv)
return PTR_ERR(res);
priv->mmiobase = dev_request_mem_region(dev, 0);
+ if (IS_ERR(priv->mmiobase))
+ return PTR_ERR(priv->mmiobase);
width = res->flags & IORESOURCE_MEM_TYPE_MASK;
switch (width) {
diff --git a/drivers/serial/stm-serial.c b/drivers/serial/stm-serial.c
index 3fec1ceeff..39ff7ae942 100644
--- a/drivers/serial/stm-serial.c
+++ b/drivers/serial/stm-serial.c
@@ -162,6 +162,8 @@ static int stm_serial_probe(struct device_d *dev)
dev->priv = priv;
priv->base = dev_request_mem_region(dev, 0);
+ if (IS_ERR(priv->base))
+ return PTR_ERR(priv->base);
priv->clk = clk_get(dev, NULL);
if (IS_ERR(priv->clk))
return PTR_ERR(priv->clk);