Re: Question on registering driver fops

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

On Tue, Feb 14, 2012 at 07:05:48PM -0300, Ezequiel García wrote:
> Hi,
> 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.

> Second question. This is a common kernel interface, driver fills a
> "fops" struct and then registers.
> This means I need to be *always* prepared to get a call on "open" (or
> other file operation)
> immediately after driver registration?

Yes, whenever you pass a structure of pointers off somewhere, you must
be prepared for any of them to be called at any time, including even
before that function call registering the pointers returns.


greg k-h

Kernelnewbies mailing list

[Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Networking]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]

Add to Google Powered by Linux