mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-03-06 11:50:30 +07:00
[media] v4l: Do not allow re-registering sub-devices
Albeit not prohibited explicitly, re-registering sub-devices generated a big, loud warning which quite likely soon was followed by a crash. What followed was re-initialising a media entity, driver's registered() callback being called and re-adding a list entry to a list. Prevent this by returning an error if a sub-device is already registered. [mchehab@s-opensource.com: reorder logic to check if !sd before dereferencing it] Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
parent
6a21b72873
commit
fc49071766
@ -160,12 +160,9 @@ int v4l2_device_register_subdev(struct v4l2_device *v4l2_dev,
|
|||||||
int err;
|
int err;
|
||||||
|
|
||||||
/* Check for valid input */
|
/* Check for valid input */
|
||||||
if (v4l2_dev == NULL || sd == NULL || !sd->name[0])
|
if (!v4l2_dev || !sd || sd->v4l2_dev || !sd->name[0])
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
/* Warn if we apparently re-register a subdev */
|
|
||||||
WARN_ON(sd->v4l2_dev != NULL);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The reason to acquire the module here is to avoid unloading
|
* The reason to acquire the module here is to avoid unloading
|
||||||
* a module of sub-device which is registered to a media
|
* a module of sub-device which is registered to a media
|
||||||
|
Loading…
Reference in New Issue
Block a user