Re: [PATCH] mfd: avoid two assignments if failures happen in tps65910_i2c_probe

From: Graeme Gregory
Date: Fri Jul 15 2011 - 05:12:33 EST


On 07/13/2011 10:22 PM, Jesper Juhl wrote:
> In drivers/mfd/tps65910.c:tps65910_i2c_probe() there's potential for a
> tiny optimization.
>
> We assign to init_data->irq and init_data->irq_base long before we
> need them, and there are two potential exits from the function before
> they are needed.
>
> Moving the assignments below these two potential exits means we
> completely avoid doing them in these two (failure) cases.
>
> Signed-off-by: Jesper Juhl <jj@xxxxxxxxxxxxx>
> ---
> drivers/mfd/tps65910.c | 6 +++---
> 1 files changed, 3 insertions(+), 3 deletions(-)
>
> - compile tested only.
> - patch is on top of the patch in https://lkml.org/lkml/2011/7/5/503
> which is now in linux-next.
>
> diff --git a/drivers/mfd/tps65910.c b/drivers/mfd/tps65910.c
> index 7a3eb2d..65e9479 100644
> --- a/drivers/mfd/tps65910.c
> +++ b/drivers/mfd/tps65910.c
> @@ -147,9 +147,6 @@ static int tps65910_i2c_probe(struct i2c_client *i2c,
> if (init_data == NULL)
> return -ENOMEM;
>
> - init_data->irq = pmic_plat_data->irq;
> - init_data->irq_base = pmic_plat_data->irq;
> -
> tps65910 = kzalloc(sizeof(struct tps65910), GFP_KERNEL);
> if (tps65910 == NULL) {
> kfree(init_data);
> @@ -170,6 +167,9 @@ static int tps65910_i2c_probe(struct i2c_client *i2c,
> if (ret < 0)
> goto err;
>
> + init_data->irq = pmic_plat_data->irq;
> + init_data->irq_base = pmic_plat_data->irq;
> +
> tps65910_gpio_init(tps65910, pmic_plat_data->gpio_base);
>
> ret = tps65910_irq_init(tps65910, init_data->irq, init_data);
Not sure this form of micro optimisation really buys anything, but the
resulting code does look nicer so.

Acked-by: Graeme Gregory <gg@xxxxxxxxxxxxxxx>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/