media: i2c: ds90ub9x3: Fix extra fwnode_handle_put()
commit60b45ece41upstream. The ub913 and ub953 drivers call fwnode_handle_put(priv->sd.fwnode) as part of their remove process, and if the driver is removed multiple times, eventually leads to put "overflow", possibly causing memory corruption or crash. The fwnode_handle_put() is a leftover from commit905f88cceb("media: i2c: ds90ub9x3: Fix sub-device matching"), which changed the code related to the sd.fwnode, but missed removing these fwnode_handle_put() calls. Cc: stable@vger.kernel.org Fixes:905f88cceb("media: i2c: ds90ub9x3: Fix sub-device matching") Reviewed-by: Jai Luthra <jai.luthra@ideasonboard.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
68b645edc4
commit
474d7baf91
@@ -792,7 +792,6 @@ static void ub913_subdev_uninit(struct ub913_data *priv)
|
||||
v4l2_async_unregister_subdev(&priv->sd);
|
||||
ub913_v4l2_nf_unregister(priv);
|
||||
v4l2_subdev_cleanup(&priv->sd);
|
||||
fwnode_handle_put(priv->sd.fwnode);
|
||||
media_entity_cleanup(&priv->sd.entity);
|
||||
}
|
||||
|
||||
|
||||
@@ -1290,7 +1290,6 @@ static void ub953_subdev_uninit(struct ub953_data *priv)
|
||||
v4l2_async_unregister_subdev(&priv->sd);
|
||||
ub953_v4l2_notifier_unregister(priv);
|
||||
v4l2_subdev_cleanup(&priv->sd);
|
||||
fwnode_handle_put(priv->sd.fwnode);
|
||||
media_entity_cleanup(&priv->sd.entity);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user