lkml.org 
[lkml]   [2003]   [Aug]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [patch] v4l: sysfs'ify videodev
    On Thu, Aug 07, 2003 at 04:55:19PM +0100, Russell King wrote:
    > On Thu, Aug 07, 2003 at 05:43:42PM +0200, Gerd Knorr wrote:
    > > +static void video_release(struct class_device *cd)
    > > +{
    > > + struct video_device *vfd = container_of(cd, struct video_device, class_dev);
    > >
    > > -static struct proc_dir_entry *video_dev_proc_entry = NULL;
    > > -struct proc_dir_entry *video_proc_entry = NULL;
    > > -EXPORT_SYMBOL(video_proc_entry);
    > > -LIST_HEAD(videodev_proc_list);
    > > +#if 1 /* needed until all drivers are fixed */
    > > + if (!vfd->release)
    > > + return;
    > > +#endif
    > > + vfd->release(vfd);
    > > +}
    >
    > Ok, so you're allowing the release to happen elsewhere. How are you
    > ensuring that the code which vfd->release points to hasn't been
    > unloaded before the video device has been released,

    Which exact corner case you are refering to? video_release() being
    called _after_ video_unregister_device() returns due to a sysfs file
    being busy? Doesn't sysfs refcounting take care of that? If not
    module_{get|put}(vfd->fops->owner) at sensible places should fix that.
    get in video_unregister_device(), put in video_release()?

    > or, even, how
    > are you preventing the module containing the above code being
    > removed before all video devices have been released?

    videodev.ko simply can't be unloaded while v4l drivers are loaded
    due to symbol references.

    Gerd

    --
    sigfault
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 13:47    [W:4.059 / U:0.304 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site