From fe6ee54582737eb02f62ebdec950ba397873c644 Mon Sep 17 00:00:00 2001 From: Hans Verkuil Date: Fri, 20 Jul 2007 11:25:22 +0200 Subject: wm8775/wm8739: Fix memory leak when unloading module From: Hans Verkuil State struct was never freed. Signed-off-by: Hans Verkuil --- linux/drivers/media/video/wm8739.c | 2 ++ linux/drivers/media/video/wm8775.c | 2 ++ 2 files changed, 4 insertions(+) (limited to 'linux') diff --git a/linux/drivers/media/video/wm8739.c b/linux/drivers/media/video/wm8739.c index da14fa401..999c25a30 100644 --- a/linux/drivers/media/video/wm8739.c +++ b/linux/drivers/media/video/wm8739.c @@ -348,12 +348,14 @@ static int wm8739_probe(struct i2c_adapter *adapter) static int wm8739_detach(struct i2c_client *client) { + struct wm8739_state *state = i2c_get_clientdata(client); int err; err = i2c_detach_client(client); if (err) return err; + kfree(state); kfree(client); #if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0) MOD_DEC_USE_COUNT; diff --git a/linux/drivers/media/video/wm8775.c b/linux/drivers/media/video/wm8775.c index 4727cbd6d..7e3734f00 100644 --- a/linux/drivers/media/video/wm8775.c +++ b/linux/drivers/media/video/wm8775.c @@ -245,12 +245,14 @@ static int wm8775_probe(struct i2c_adapter *adapter) static int wm8775_detach(struct i2c_client *client) { + struct wm8775_state *state = i2c_get_clientdata(client); int err; err = i2c_detach_client(client); if (err) { return err; } + kfree(state); kfree(client); #if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0) -- cgit v1.2.3