lkml.org 
[lkml]   [2014]   [Oct]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] misc: always assign miscdevice to file->private_data in open()
On Wed, Oct 08, 2014 at 10:47:54AM +0200, Martin Kepplinger wrote:
> As of now, a miscdevice driver has to provide an implementation of
> the open() file operation if it wants to have misc_open() assign a
> pointer to struct miscdevice to file->private_data for other file
> operations to use (given the user calls open()).
>
> This leads to situations where a miscdevice driver that doesn't need
> internal operations during open() has to implement open() that only
> returns immediately, in order to use the data in private_data in other
> fops.

Yeah, that's messy, do we have any in-kernel misc drivers that do this?

> This change provides consistent behaviour for miscdevice developers by
> always providing the pointer in private_data. A driver's open() fop would,
> of course, just overwrite it, when using private_data itself.
>
> Signed-off-by: Martin Kepplinger <martink@posteo.de>
> ---
> This is really only a question: Do I understand this correctly, and,
> could this change then hurt any existing driver?

I don't know, take a look at the existing ones and see please.

> As a driver developer it took me a while to figure out what happens here,
> and in my situation it would have been nice to just have this feature as
> part of the miscdevice API. Possibly documented somewhere?

Patches always accepted for documentation :)

> misc_open() is called in any case, on open(). As long as miscdevice drivers
> don't explicitly rely on private_data being NULL exactly IF they don't
> implement an open() fop (which I wouldn't imagine), this would make things
> even more convenient.

I agree, but it would be great if you can audit the existing misc
drivers to ensure we don't break anything with this change. Can you do
that please?

thanks,

greg k-h


\
 
 \ /
  Last update: 2014-10-08 16:22    [W:0.274 / U:0.288 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site