summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Verkuil <hverkuil@xs4all.nl>2007-09-17 05:13:45 -0300
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-01-25 19:01:28 -0200
commita2e521e85c04af3511af3ea8971efb4ef8bde533 (patch)
tree3c729c9d2ba71de8620671c4d48ca28b5c2e304b
parent188f3457c21ac7869005021b56b4578293c644bb (diff)
V4L/DVB (6466): v4l2-i2c-drv: first call remove, then detach client
The remove driver function expects that the client is still attached to the driver, so do the detach after calling remove(). Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rw-r--r--include/media/v4l2-i2c-drv-legacy.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/include/media/v4l2-i2c-drv-legacy.h b/include/media/v4l2-i2c-drv-legacy.h
index 433c984eefa5..241854229d6f 100644
--- a/include/media/v4l2-i2c-drv-legacy.h
+++ b/include/media/v4l2-i2c-drv-legacy.h
@@ -58,12 +58,14 @@ static int v4l2_i2c_drv_probe_legacy(struct i2c_adapter *adapter)
static int v4l2_i2c_drv_detach_legacy(struct i2c_client *client)
{
- int err = i2c_detach_client(client);
+ int err;
- if (err)
- return err;
if (v4l2_i2c_data.remove)
v4l2_i2c_data.remove(client);
+
+ err = i2c_detach_client(client);
+ if (err)
+ return err;
kfree(client);
return 0;