Thread (66 messages) 66 messages, 8 authors, 2019-05-27

Re: [PATCH v2 45/45] drivers: tty: serial: mux: use devm_* functions

From: Andy Shevchenko <hidden>
Date: 2019-03-15 09:08:16
Also in: linux-arm-msm, linux-serial, lkml

On Fri, Mar 15, 2019 at 12:37 AM Enrico Weigelt, metux IT consult
[off-list ref] wrote:
Use the safer devm versions of memory mapping functions.
If you are going to use devm_*_free(), what's the point to have this
change from the beginning?

P.S. Disregard that this is untested series...
quoted hunk ↗ jump to hunk
--- a/drivers/tty/serial/mux.c
+++ b/drivers/tty/serial/mux.c
@@ -456,8 +456,9 @@ static int __init mux_probe(struct parisc_device *dev)
        printk(KERN_INFO "Serial mux driver (%d ports) Revision: 0.6\n", port_count);

        dev_set_drvdata(&dev->dev, (void *)(long)port_count);
-       request_mem_region(dev->hpa.start + MUX_OFFSET,
-                           port_count * MUX_LINE_OFFSET, "Mux");
+       devm_request_mem_region(&dev->dev,
+                               dev->hpa.start + MUX_OFFSET,
+                               port_count * MUX_LINE_OFFSET, "Mux");
...and on top of this where is error checking?
quoted hunk ↗ jump to hunk
        if(!port_cnt) {
                mux_driver.cons = MUX_CONSOLE;
@@ -474,7 +475,9 @@ static int __init mux_probe(struct parisc_device *dev)
                port->iobase    = 0;
                port->mapbase   = dev->hpa.start + MUX_OFFSET +
                                                (i * MUX_LINE_OFFSET);
-               port->membase   = ioremap_nocache(port->mapbase, MUX_LINE_OFFSET);
+               port->membase   = devm_ioremap_nocache(port->dev,
+                                                      port->mapbase,
+                                                      MUX_LINE_OFFSET);
                port->iotype    = UPIO_MEM;
                port->type      = PORT_MUX;
                port->irq       = 0;
@@ -517,10 +520,12 @@ static int __exit mux_remove(struct parisc_device *dev)

                uart_remove_one_port(&mux_driver, port);
                if(port->membase)
-                       iounmap(port->membase);
+                       devm_iounmap(port->dev, port->membase);
        }

-       release_mem_region(dev->hpa.start + MUX_OFFSET, port_count * MUX_LINE_OFFSET);
+       devm_release_mem_region(&dev->dev,
+                               dev->hpa.start + MUX_OFFSET,
+                               port_count * MUX_LINE_OFFSET);
        return 0;
 }

-- 
With Best Regards,
Andy Shevchenko
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help