[media] media-entity: clear media_gobj.mdev in _destroy()
media_gobj_destroy() may be called twice on one instance - once by media_device_unregister() and again by dvb_media_device_free(). The function media_remove_intf_links() establishes and documents the convention that mdev==NULL means that the object is not registered, but nobody ever NULLs this variable. So this patch really implements this behavior, and adds another mdev==NULL check to media_gobj_destroy() to protect against double removal. Signed-off-by: Max Kellermann <max.kellermann@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
parent
1f862a68df
commit
6753743e11
|
@ -205,10 +205,16 @@ void media_gobj_destroy(struct media_gobj *gobj)
|
|||
{
|
||||
dev_dbg_obj(__func__, gobj);
|
||||
|
||||
/* Do nothing if the object is not linked. */
|
||||
if (gobj->mdev == NULL)
|
||||
return;
|
||||
|
||||
gobj->mdev->topology_version++;
|
||||
|
||||
/* Remove the object from mdev list */
|
||||
list_del(&gobj->list);
|
||||
|
||||
gobj->mdev = NULL;
|
||||
}
|
||||
|
||||
int media_entity_pads_init(struct media_entity *entity, u16 num_pads,
|
||||
|
|
Loading…
Reference in New Issue