On Mon, Aug 22, 2016 at 03:38:20PM +0300, Sakari Ailus wrote: > Hi Hans, > > On Mon, Aug 22, 2016 at 02:01:44PM +0200, Hans Verkuil wrote: > > On 08/19/2016 12:23 PM, Sakari Ailus wrote: > > > From: Sakari Ailus <sakari.ailus@xxxxxx> > > > > > > Allow allocating the media device dynamically. As the struct media_device > > > embeds struct media_devnode, the lifetime of that object is that same than > > > that of the media_device. > > > > > > Signed-off-by: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx> > > > --- > > > drivers/media/media-device.c | 22 ++++++++++++++++++++++ > > > include/media/media-device.h | 38 ++++++++++++++++++++++++++++++++++++++ > > > 2 files changed, 60 insertions(+) > > > > > > diff --git a/drivers/media/media-device.c b/drivers/media/media-device.c > > > index a431775..5a86d36 100644 > > > --- a/drivers/media/media-device.c > > > +++ b/drivers/media/media-device.c > > > @@ -544,7 +544,15 @@ static DEVICE_ATTR(model, S_IRUGO, show_model, NULL); > > > > > > static void media_device_release(struct media_devnode *devnode) > > > { > > > + struct media_device *mdev = to_media_device(devnode); > > > + > > > + ida_destroy(&mdev->entity_internal_idx); > > > + mdev->entity_internal_idx_max = 0; > > > + media_entity_graph_walk_cleanup(&mdev->pm_count_walk); > > > + mutex_destroy(&mdev->graph_mutex); > > > dev_dbg(devnode->parent, "Media device released\n"); > > > + > > > + kfree(mdev); > > > > Doesn't this break bisect? mdev is now freed, but media_device_alloc isn't > > called yet. > > > > That doesn't seem right. > > You're right. > > media_device_release() actually may only be called for drivers that use > media_device_init(). I'll fix that. s/media_device_init/media_device_alloc/ -- Sakari Ailus e-mail: sakari.ailus@xxxxxx XMPP: sailus@xxxxxxxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html