staging:iio: fix removal path to allow correct freeing.
[deliverable/linux.git] / drivers / staging / iio / dac / ad5791.c
index 8b1b1b543a88fd62713ddef897e63f6bb7cc1942..fbf446d567171d9654c12cc7ddbc4d0f88e781ba 100644 (file)
@@ -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;
 }
This page took 0.024973 seconds and 5 git commands to generate.