Commit 32eca221 authored by Martin Kepplinger's avatar Martin Kepplinger Committed by Greg Kroah-Hartman

misc: always assign miscdevice to file->private_data in open()

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.

This provides consistent behaviour for miscdevice developers and will
always provide the pointer in private_data. A driver's open() fop would,
of course, just overwrite it, when using private_data itself.
Signed-off-by: default avatarMartin Kepplinger <martink@posteo.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 04a258c1
......@@ -142,8 +142,8 @@ static int misc_open(struct inode * inode, struct file * file)
err = 0;
replace_fops(file, new_fops);
file->private_data = c;
if (file->f_op->open) {
file->private_data = c;
err = file->f_op->open(inode,file);
}
fail:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment