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: Martin Kepplinger <martink@posteo.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
04a258c162
commit
32eca22180
|
@ -142,8 +142,8 @@ static int misc_open(struct inode * inode, struct file * file)
|
||||||
|
|
||||||
err = 0;
|
err = 0;
|
||||||
replace_fops(file, new_fops);
|
replace_fops(file, new_fops);
|
||||||
|
file->private_data = c;
|
||||||
if (file->f_op->open) {
|
if (file->f_op->open) {
|
||||||
file->private_data = c;
|
|
||||||
err = file->f_op->open(inode,file);
|
err = file->f_op->open(inode,file);
|
||||||
}
|
}
|
||||||
fail:
|
fail:
|
||||||
|
|
Loading…
Reference in New Issue