diff options
author | Wolfram Sang <w.sang@pengutronix.de> | 2010-03-20 14:13:01 (GMT) |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-05-11 18:35:45 (GMT) |
commit | 665752e528c32e40d9f5c684abd53ebd2f1ae724 (patch) | |
tree | dd7fee89b8e90a2dddfa779cdb6fecf3906e3057 | |
parent | 5ff0dd18267efc0e7b0352fe54b74114b58535ae (diff) | |
download | linux-665752e528c32e40d9f5c684abd53ebd2f1ae724.tar.xz |
Staging: go7007: 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>
-rw-r--r-- | drivers/staging/go7007/wis-saa7113.c | 1 | ||||
-rw-r--r-- | drivers/staging/go7007/wis-saa7115.c | 1 | ||||
-rw-r--r-- | drivers/staging/go7007/wis-tw9903.c | 1 |
3 files changed, 3 insertions, 0 deletions
diff --git a/drivers/staging/go7007/wis-saa7113.c b/drivers/staging/go7007/wis-saa7113.c index 5c12b4d..bd92545 100644 --- a/drivers/staging/go7007/wis-saa7113.c +++ b/drivers/staging/go7007/wis-saa7113.c @@ -289,6 +289,7 @@ static int wis_saa7113_probe(struct i2c_client *client, if (write_regs(client, initial_registers) < 0) { printk(KERN_ERR "wis-saa7113: error initializing SAA7113\n"); + i2c_set_clientdata(client, NULL); kfree(dec); return -ENODEV; } diff --git a/drivers/staging/go7007/wis-saa7115.c b/drivers/staging/go7007/wis-saa7115.c index 73f2283..b2eb804 100644 --- a/drivers/staging/go7007/wis-saa7115.c +++ b/drivers/staging/go7007/wis-saa7115.c @@ -422,6 +422,7 @@ static int wis_saa7115_probe(struct i2c_client *client, if (write_regs(client, initial_registers) < 0) { printk(KERN_ERR "wis-saa7115: error initializing SAA7115\n"); + i2c_set_clientdata(client, NULL); kfree(dec); return -ENODEV; } diff --git a/drivers/staging/go7007/wis-tw9903.c b/drivers/staging/go7007/wis-tw9903.c index 3ac6f78..2afea09 100644 --- a/drivers/staging/go7007/wis-tw9903.c +++ b/drivers/staging/go7007/wis-tw9903.c @@ -294,6 +294,7 @@ static int wis_tw9903_probe(struct i2c_client *client, if (write_regs(client, initial_registers) < 0) { printk(KERN_ERR "wis-tw9903: error initializing TW9903\n"); + i2c_set_clientdata(client, NULL); kfree(dec); return -ENODEV; } |