diff options
| author | Sakari Ailus <[email protected]> | 2023-12-07 10:00:02 +0000 |
|---|---|---|
| committer | Hans Verkuil <[email protected]> | 2023-12-13 12:21:20 +0000 |
| commit | ab8d7194acd1fea1702fff41a1ec93e458b6dcbf (patch) | |
| tree | f061586f9b971c07f08dbc1a991797a8b474baca /drivers/media/v4l2-core/v4l2-subdev.c | |
| parent | media: ipu-bridge: Change ov2740 link-frequency to 180 MHz (diff) | |
| download | kernel-ab8d7194acd1fea1702fff41a1ec93e458b6dcbf.tar.gz kernel-ab8d7194acd1fea1702fff41a1ec93e458b6dcbf.zip | |
media: v4l: Safely to call v4l2_subdev_cleanup on an uninitialised subdev
Graciously handle an uninitialised (but still zeroed) sub-device in
v4l2_subdev_cleanup(). The list_empty() check there is unnecessary, too,
so replace that by cheking whether the lists's next field is NULL.
Signed-off-by: Sakari Ailus <[email protected]>
Signed-off-by: Hans Verkuil <[email protected]>
Diffstat (limited to 'drivers/media/v4l2-core/v4l2-subdev.c')
| -rw-r--r-- | drivers/media/v4l2-core/v4l2-subdev.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/media/v4l2-core/v4l2-subdev.c b/drivers/media/v4l2-core/v4l2-subdev.c index 4fbefe4cd714..1fa1acfa5b7b 100644 --- a/drivers/media/v4l2-core/v4l2-subdev.c +++ b/drivers/media/v4l2-core/v4l2-subdev.c @@ -1521,7 +1521,8 @@ void v4l2_subdev_cleanup(struct v4l2_subdev *sd) __v4l2_subdev_state_free(sd->active_state); sd->active_state = NULL; - if (list_empty(&sd->async_subdev_endpoint_list)) + /* Uninitialised sub-device, bail out here. */ + if (!sd->async_subdev_endpoint_list.next) return; list_for_each_entry_safe(ase, ase_tmp, &sd->async_subdev_endpoint_list, |
