[ CC Greg Kroah-Hartman, linux-serial@xxxxxxxxxxxxxxx, linux-arm-kernel@xxxxxxxxxxxxxxxxxxx ] On Fri, Jul 26, 2013 at 04:22:02PM +0200, Laurent Pinchart wrote: > Replace kzalloc and clk_get by their managed counterparts to simplify > error and cleanup paths. Hi Laurent, I was recently asked for shmobile clocksource patches to be reviewed by the clocksource maintainers. I believe that means Greg Kroah-Hartman and linux-serial@xxxxxxxxxxxxxxx who I have CCed on this email accordingly. I have also CCed linux-arm-kernel@xxxxxxxxxxxxxxxxxxx as many moons ago I was asked for all patches that will go through my tree and on to arm-soc to be sent there. > Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@xxxxxxxxxxxxxxxx> > --- > drivers/tty/serial/8250/8250_em.c | 27 ++++++++------------------- > 1 file changed, 8 insertions(+), 19 deletions(-) > > diff --git a/drivers/tty/serial/8250/8250_em.c b/drivers/tty/serial/8250/8250_em.c > index 916cc19..5f3bba1 100644 > --- a/drivers/tty/serial/8250/8250_em.c > +++ b/drivers/tty/serial/8250/8250_em.c > @@ -95,25 +95,23 @@ static int serial8250_em_probe(struct platform_device *pdev) > struct resource *irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0); > struct serial8250_em_priv *priv; > struct uart_8250_port up; > - int ret = -EINVAL; > + int ret; > > if (!regs || !irq) { > dev_err(&pdev->dev, "missing registers or irq\n"); > - goto err0; > + return -EINVAL; > } > > - priv = kzalloc(sizeof(*priv), GFP_KERNEL); > + priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); > if (!priv) { > dev_err(&pdev->dev, "unable to allocate private data\n"); > - ret = -ENOMEM; > - goto err0; > + return -ENOMEM; > } > > - priv->sclk = clk_get(&pdev->dev, "sclk"); > + priv->sclk = devm_clk_get(&pdev->dev, "sclk"); > if (IS_ERR(priv->sclk)) { > dev_err(&pdev->dev, "unable to get clock\n"); > - ret = PTR_ERR(priv->sclk); > - goto err1; > + return PTR_ERR(priv->sclk); > } > > memset(&up, 0, sizeof(up)); > @@ -136,20 +134,13 @@ static int serial8250_em_probe(struct platform_device *pdev) > ret = serial8250_register_8250_port(&up); > if (ret < 0) { > dev_err(&pdev->dev, "unable to register 8250 port\n"); > - goto err2; > + clk_disable(priv->sclk); > + return ret; > } > > priv->line = ret; > platform_set_drvdata(pdev, priv); > return 0; > - > - err2: > - clk_disable(priv->sclk); > - clk_put(priv->sclk); > - err1: > - kfree(priv); > - err0: > - return ret; > } > > static int serial8250_em_remove(struct platform_device *pdev) > @@ -158,8 +149,6 @@ static int serial8250_em_remove(struct platform_device *pdev) > > serial8250_unregister_port(priv->line); > clk_disable(priv->sclk); > - clk_put(priv->sclk); > - kfree(priv); > return 0; > } > > -- > Regards, > > Laurent Pinchart > > -- > To unsubscribe from this list: send the line "unsubscribe linux-sh" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html