Skip to content

Commit 04d1086

Browse files
Uwe Kleine-Königgregkh
authored andcommitted
media: i2c: et8ek8: Don't strip remove function when driver is builtin
commit 545b215736c5c4b354e182d99c578a472ac9bfce upstream. Using __exit for the remove function results in the remove callback being discarded with CONFIG_VIDEO_ET8EK8=y. When such a device gets unbound (e.g. using sysfs or hotplug), the driver is just removed without the cleanup being performed. This results in resource leaks. Fix it by compiling in the remove callback unconditionally. This also fixes a W=1 modpost warning: WARNING: modpost: drivers/media/i2c/et8ek8/et8ek8: section mismatch in reference: et8ek8_i2c_driver+0x10 (section: .data) -> et8ek8_remove (section: .exit.text) Fixes: c5254e7 ("[media] media: Driver for Toshiba et8ek8 5MP sensor") Signed-off-by: Uwe Kleine-König <[email protected]> Signed-off-by: Sakari Ailus <[email protected]> Signed-off-by: Hans Verkuil <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]> Signed-off-by: Bin Lan <[email protected]> Signed-off-by: He Zhe <[email protected]>
1 parent 7a735a8 commit 04d1086

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

drivers/media/i2c/et8ek8/et8ek8_driver.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1460,7 +1460,7 @@ static int et8ek8_probe(struct i2c_client *client)
14601460
return ret;
14611461
}
14621462

1463-
static void __exit et8ek8_remove(struct i2c_client *client)
1463+
static void et8ek8_remove(struct i2c_client *client)
14641464
{
14651465
struct v4l2_subdev *subdev = i2c_get_clientdata(client);
14661466
struct et8ek8_sensor *sensor = to_et8ek8_sensor(subdev);
@@ -1502,7 +1502,7 @@ static struct i2c_driver et8ek8_i2c_driver = {
15021502
.of_match_table = et8ek8_of_table,
15031503
},
15041504
.probe_new = et8ek8_probe,
1505-
.remove = __exit_p(et8ek8_remove),
1505+
.remove = et8ek8_remove,
15061506
.id_table = et8ek8_id_table,
15071507
};
15081508

0 commit comments

Comments
 (0)