On Tue, 7 Aug 2012 08:19:59 -0700, Guenter Roeck wrote: > Convert to use devm_ functions to reduce code size and simplify the code. > > Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx> > --- > drivers/hwmon/ads7871.c | 21 +++++++-------------- > 1 file changed, 7 insertions(+), 14 deletions(-) > > diff --git a/drivers/hwmon/ads7871.c b/drivers/hwmon/ads7871.c > index e65c6e4..e837707 100644 > --- a/drivers/hwmon/ads7871.c > +++ b/drivers/hwmon/ads7871.c > @@ -189,20 +189,17 @@ static int __devinit ads7871_probe(struct spi_device *spi) > * because there is no other error checking on an SPI bus > * we need to make sure we really have a chip > */ > - if (val != ret) { > - err = -ENODEV; > - goto exit; > - } > + if (val != ret) > + return -ENODEV; > > - pdata = kzalloc(sizeof(struct ads7871_data), GFP_KERNEL); > - if (!pdata) { > - err = -ENOMEM; > - goto exit; > - } > + pdata = devm_kzalloc(&spi->dev, sizeof(struct ads7871_data), > + GFP_KERNEL); > + if (!pdata) > + return -ENOMEM; > > err = sysfs_create_group(&spi->dev.kobj, &ads7871_group); > if (err < 0) > - goto error_free; > + return err; > > spi_set_drvdata(spi, pdata); > > @@ -216,9 +213,6 @@ static int __devinit ads7871_probe(struct spi_device *spi) > > error_remove: > sysfs_remove_group(&spi->dev.kobj, &ads7871_group); > -error_free: > - kfree(pdata); > -exit: > return err; > } At this point it becomes dubious to use a separate error path. You have a single label and you use it only once, so there is no practical benefit. > > @@ -228,7 +222,6 @@ static int __devexit ads7871_remove(struct spi_device *spi) > > hwmon_device_unregister(pdata->hwmon_dev); > sysfs_remove_group(&spi->dev.kobj, &ads7871_group); > - kfree(pdata); > return 0; > } > Functionally the change is correct, so: Acked-by: Jean Delvare <khali@xxxxxxxxxxxx> -- Jean Delvare _______________________________________________ lm-sensors mailing list lm-sensors@xxxxxxxxxxxxxx http://lists.lm-sensors.org/mailman/listinfo/lm-sensors