Skip to content

Commit

Permalink
[media] media-entity: clear media_gobj.mdev in _destroy()
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
  • Loading branch information
MaxKellermann authored and mchehab committed Nov 18, 2016
1 parent 1f862a6 commit 6753743
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions drivers/media/media-entity.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down

0 comments on commit 6753743

Please sign in to comment.