]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/staging/iio/adc/max1363_core.c
Staging: iio: adc: fix dangling pointers
[net-next-2.6.git] / drivers / staging / iio / adc / max1363_core.c
index 9703881cb3f8b0e0116bcb2ad6cd94c00c2e72c7..773f1d1d9c6ee490312f7138c9e96a870eb48ca2 100644 (file)
@@ -33,6 +33,7 @@
 #include <linux/i2c.h>
 #include <linux/rtc.h>
 #include <linux/regulator/consumer.h>
+#include <linux/slab.h>
 
 #include "../iio.h"
 #include "../sysfs.h"
@@ -556,6 +557,7 @@ error_put_reg:
        if (!IS_ERR(st->reg))
                regulator_put(st->reg);
 error_free_st:
+       i2c_set_clientdata(client, NULL);
        kfree(st);
 
 error_ret:
@@ -573,6 +575,7 @@ static int max1363_remove(struct i2c_client *client)
                regulator_disable(st->reg);
                regulator_put(st->reg);
        }
+       i2c_set_clientdata(client, NULL);
        kfree(st);
 
        return 0;