]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
media: ov2740: Move pm-runtime cleanup on probe-errors to proper place
authorHans de Goede <hdegoede@redhat.com>
Mon, 24 Mar 2025 13:01:09 +0000 (14:01 +0100)
committerHans Verkuil <hverkuil@xs4all.nl>
Fri, 25 Apr 2025 08:15:23 +0000 (10:15 +0200)
When v4l2_subdev_init_finalize() fails no changes have been made to
the runtime-pm device state yet, so the probe_error_media_entity_cleanup
rollback path should not touch the runtime-pm device state.

Instead this should be done from the probe_error_v4l2_subdev_cleanup
rollback path. Note the pm_runtime_xxx() calls are put above
the v4l2_subdev_cleanup() call to have the reverse call order of probe().

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Bingbu Cao <bingbu.cao@intel.com>
Fixes: 289c25923ecd ("media: ov2740: Use sub-device active state")
Cc: stable@vger.kernel.org
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
drivers/media/i2c/ov2740.c

index 80d151e8ae294dc1654a9f8c18c76e1b8a55525d..6cf461e3373ceb7469a14a21eb079ae1e6df65b3 100644 (file)
@@ -1456,12 +1456,12 @@ static int ov2740_probe(struct i2c_client *client)
        return 0;
 
 probe_error_v4l2_subdev_cleanup:
+       pm_runtime_disable(&client->dev);
+       pm_runtime_set_suspended(&client->dev);
        v4l2_subdev_cleanup(&ov2740->sd);
 
 probe_error_media_entity_cleanup:
        media_entity_cleanup(&ov2740->sd.entity);
-       pm_runtime_disable(&client->dev);
-       pm_runtime_set_suspended(&client->dev);
 
 probe_error_v4l2_ctrl_handler_free:
        v4l2_ctrl_handler_free(ov2740->sd.ctrl_handler);