Re: [PATCH v2 1/3] Input: ad7897 - use managed allocated resources

From: Lars-Peter Clausen
Date: Wed Nov 08 2017 - 10:32:14 EST


On 11/08/2017 03:04 PM, Andi Shyti wrote:
> Use managed allocated resources to simplify error handling during
> probing failure and module exiting.
>
> With this all the goto labels in the probe function together with
> the cleanups in the remove function are unnecessary, therefore
> removed.
>
> CC: Michael Hennerich <michael.hennerich@xxxxxxxxxx>
> Signed-off-by: Andi Shyti <andi@xxxxxxxxxxx>
> ---
> drivers/input/touchscreen/ad7877.c | 42 +++++++++-----------------------------
> 1 file changed, 10 insertions(+), 32 deletions(-)
>
> diff --git a/drivers/input/touchscreen/ad7877.c b/drivers/input/touchscreen/ad7877.c
> index 0381c7809d1b..c8a143db8681 100644
> --- a/drivers/input/touchscreen/ad7877.c
> +++ b/drivers/input/touchscreen/ad7877.c
> @@ -707,12 +707,10 @@ static int ad7877_probe(struct spi_device *spi)
> return err;
> }
>
> - ts = kzalloc(sizeof(struct ad7877), GFP_KERNEL);
> - input_dev = input_allocate_device();
> - if (!ts || !input_dev) {
> - err = -ENOMEM;
> - goto err_free_mem;
> - }
> + ts = devm_kzalloc(&spi->dev, sizeof(struct ad7877), GFP_KERNEL);
> + input_dev = devm_input_allocate_device(&spi->dev);
> + if (!input_dev)

You removed the check for 'ts' here and only added it back in patch 3.

> + return -ENOMEM;
>
> spi_set_drvdata(spi, ts);
> ts->spi = spi;
[...]