Question on registering driver fops

Rajat Sharma fs.rajat at gmail.com
Wed Feb 15 00:01:51 EST 2012


On Wed, Feb 15, 2012 at 10:15 AM, Ezequiel García <elezegarcia at gmail.com>wrote:

> El día 14 de febrero de 2012 19:42, Greg KH <greg at kroah.com> escribió:
> > On Tue, Feb 14, 2012 at 07:05:48PM -0300, Ezequiel García wrote:
> >> I noticed that after registering a video driver with
> >> "video_register_device" the "open" function gets called.
> >> The registration is like:
> >>
> >>         peasycap->video_device.fops = &v4l2_fops;
> >>         peasycap->video_device.minor = -1;
> >>         peasycap->video_device.release = (void *)(&videodev_release);
> >>
> >>         video_set_drvdata(&(peasycap->video_device), (void *)peasycap);
> >>
> >> First question: who calls it and why does it open the device?
> >
> > Userspace probably.
> >
>
> I find hard that userspace is who opens the device in this particular case,
> because I get the "open" call just by plugging in the usb, right after
> usb_probe.
> (unless there is a daemon, or udev opens the device for module
> insertion or something).
>
> I will investigate this further.
>

Although it doesn't easily click, but very simple. Implement open fop and
put following print in it:

printk("%s: My caller is %s\n", __func__, current->comm);

You will get to know the user space daemon name. I have seen a daemon on
some linux distributions, called 'hald' (Hardware Abstraction Layer Daemon)
doing these sort of activities when it detects hardware changes. Even in
case of new mount point, it stats every mounted filesystem.

-Rajat

>
> Thanks,
> Ezequiel.
>
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies at kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20120215/2071c50d/attachment-0001.html 


More information about the Kernelnewbies mailing list