summaryrefslogtreecommitdiffstats
path: root/drivers/staging/iio/dac/ad5791.c
diff options
context:
space:
mode:
authorJonathan Cameron2011-10-14 15:46:58 +0200
committerGreg Kroah-Hartman2011-10-18 00:34:53 +0200
commitd2fffd6c2fd60fe9ab63ef30758d9d43a5057549 (patch)
tree7c0178872f67c15707cd3c89f82352ba90da1d09 /drivers/staging/iio/dac/ad5791.c
parentiio: adc: remove ADT75 driver - hwmon/lm75 will take over ADT75 support (diff)
downloadkernel-qcow2-linux-d2fffd6c2fd60fe9ab63ef30758d9d43a5057549.tar.gz
kernel-qcow2-linux-d2fffd6c2fd60fe9ab63ef30758d9d43a5057549.tar.xz
kernel-qcow2-linux-d2fffd6c2fd60fe9ab63ef30758d9d43a5057549.zip
staging:iio: fix removal path to allow correct freeing.
Fix a dumb lack of consideration of the effect of combining the iio_device_unregister and iio_free_device calls into one. There is no valid place to free some of the sysfs array elements. Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/iio/dac/ad5791.c')
-rw-r--r--drivers/staging/iio/dac/ad5791.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/staging/iio/dac/ad5791.c b/drivers/staging/iio/dac/ad5791.c
index 8b1b1b543a88..fbf446d56717 100644
--- a/drivers/staging/iio/dac/ad5791.c
+++ b/drivers/staging/iio/dac/ad5791.c
@@ -370,6 +370,7 @@ static int __devexit ad5791_remove(struct spi_device *spi)
struct iio_dev *indio_dev = spi_get_drvdata(spi);
struct ad5791_state *st = iio_priv(indio_dev);
+ iio_device_unregister(indio_dev);
if (!IS_ERR(st->reg_vdd)) {
regulator_disable(st->reg_vdd);
regulator_put(st->reg_vdd);
@@ -379,9 +380,7 @@ static int __devexit ad5791_remove(struct spi_device *spi)
regulator_disable(st->reg_vss);
regulator_put(st->reg_vss);
}
- iio_device_unregister(indio_dev);
-
- iio_device_unregister(indio_dev);
+ iio_free_device(indio_dev);
return 0;
}