Use the safer devm versions of memory mapping functions. Signed-off-by: Enrico Weigelt, metux IT consult <info@xxxxxxxxx> --- drivers/tty/serial/zs.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/drivers/tty/serial/zs.c b/drivers/tty/serial/zs.c index b03d3e4..0b1ec2f 100644 --- a/drivers/tty/serial/zs.c +++ b/drivers/tty/serial/zs.c @@ -984,16 +984,17 @@ static const char *zs_type(struct uart_port *uport) static void zs_release_port(struct uart_port *uport) { - iounmap(uport->membase); + devm_iounmap(uport->dev, uport->membase); uport->membase = 0; - release_mem_region(uport->mapbase, ZS_CHAN_IO_SIZE); + devm_release_mem_region(uport->dev, uport->mapbase, ZS_CHAN_IO_SIZE); } static int zs_map_port(struct uart_port *uport) { if (!uport->membase) - uport->membase = ioremap_nocache(uport->mapbase, - ZS_CHAN_IO_SIZE); + uport->membase = devm_ioremap_nocache(uport->dev, + uport->mapbase, + ZS_CHAN_IO_SIZE); if (!uport->membase) { printk(KERN_ERR "zs: Cannot map MMIO\n"); return -ENOMEM; @@ -1005,13 +1006,16 @@ static int zs_request_port(struct uart_port *uport) { int ret; - if (!request_mem_region(uport->mapbase, ZS_CHAN_IO_SIZE, "scc")) { + if (!devm_request_mem_region(uport->mapbase, + ZS_CHAN_IO_SIZE, "scc")) { printk(KERN_ERR "zs: Unable to reserve MMIO resource\n"); return -EBUSY; } ret = zs_map_port(uport); if (ret) { - release_mem_region(uport->mapbase, ZS_CHAN_IO_SIZE); + devm_release_mem_region(uport-dev, + uport->mapbase, + ZS_CHAN_IO_SIZE); return ret; } return 0; -- 1.9.1