Messages in this thread Patch in this message | | | From | xiaomin1 <> | Subject | [PATCH] move file->f_op->open out of mutex (misc_mtx) in misc_open | Date | Tue, 6 Jan 2015 08:34:07 +0800 |
| |
misc_mtx was used to mutex misc_list. But file->f_op->open may be blocked by downloading firmware in some devices' open. So move file->f_op->open out of mutex (misc_mtx) in misc_open to avoid this block. It also make code more efficiency.
Signed-off-by: Zhang Dongxing <dongxing.zhang@intel.com> Signed-off-by: xiaoming wang <xiaoming.wang@intel.com> --- drivers/char/misc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/char/misc.c b/drivers/char/misc.c index ffa97d2..289c59e 100644 --- a/drivers/char/misc.c +++ b/drivers/char/misc.c @@ -144,7 +144,8 @@ static int misc_open(struct inode * inode, struct file * file) replace_fops(file, new_fops); if (file->f_op->open) { file->private_data = c; - err = file->f_op->open(inode,file); + mutex_unlock(&misc_mtx); + return file->f_op->open(inode,file); } fail: mutex_unlock(&misc_mtx); -- 1.7.9.5
| |