summaryrefslogtreecommitdiff
path: root/drivers/staging/dream
diff options
context:
space:
mode:
authorWolfram Sang <w.sang@pengutronix.de>2010-03-20 15:13:00 +0100
committerGreg Kroah-Hartman <gregkh@suse.de>2010-05-11 11:35:45 -0700
commit5ff0dd18267efc0e7b0352fe54b74114b58535ae (patch)
treef260858cb236ad0ad4b6e337037bd20a344a64b0 /drivers/staging/dream
parent593a961649226aae13705dc066ee277f112b8397 (diff)
Staging: dream: fix dangling i2c pointers
Fix I2C-drivers which missed setting clientdata to NULL before freeing the structure it points to. Also fix drivers which do this _after_ the structure was freed already. Signed-off-by: Wolfram Sang <w.sang@pengutronix.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/dream')
-rw-r--r--drivers/staging/dream/synaptics_i2c_rmi.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/staging/dream/synaptics_i2c_rmi.c b/drivers/staging/dream/synaptics_i2c_rmi.c
index d2ca116a1c2..ae2f72ca735 100644
--- a/drivers/staging/dream/synaptics_i2c_rmi.c
+++ b/drivers/staging/dream/synaptics_i2c_rmi.c
@@ -535,6 +535,7 @@ err_input_register_device_failed:
err_input_dev_alloc_failed:
err_detect_failed:
err_power_failed:
+ i2c_set_clientdata(client, NULL);
kfree(ts);
err_alloc_data_failed:
err_check_functionality_failed:
@@ -552,6 +553,7 @@ static int synaptics_ts_remove(struct i2c_client *client)
else
hrtimer_cancel(&ts->timer);
input_unregister_device(ts->input_dev);
+ i2c_set_clientdata(client, NULL);
kfree(ts);
return 0;
}