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