From 60c11d2abf4ef811d0ce3ea34279746729c4c6fc Mon Sep 17 00:00:00 2001 From: Richard Holden Date: Sat, 18 Oct 2008 20:27:53 -0700 Subject: phonedev: remove BKL The phone_device array is covered by the phone_lock mutex in all cases and request_module no longer needs the BKL so we can remove the only remaining instance of the BKL from phonedev. Signed-off-by: Richard Holden Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- drivers/telephony/phonedev.c | 2 -- 1 file changed, 2 deletions(-) (limited to 'drivers/telephony') diff --git a/drivers/telephony/phonedev.c b/drivers/telephony/phonedev.c index 4d74ba36c3a..37caf4d6903 100644 --- a/drivers/telephony/phonedev.c +++ b/drivers/telephony/phonedev.c @@ -54,7 +54,6 @@ static int phone_open(struct inode *inode, struct file *file) if (minor >= PHONE_NUM_DEVICES) return -ENODEV; - lock_kernel(); mutex_lock(&phone_lock); p = phone_device[minor]; if (p) @@ -81,7 +80,6 @@ static int phone_open(struct inode *inode, struct file *file) fops_put(old_fops); end: mutex_unlock(&phone_lock); - unlock_kernel(); return err; } -- cgit v1.2.3 From 233e70f4228e78eb2f80dc6650f65d3ae3dbf17c Mon Sep 17 00:00:00 2001 From: Al Viro Date: Fri, 31 Oct 2008 23:28:30 +0000 Subject: saner FASYNC handling on file close As it is, all instances of ->release() for files that have ->fasync() need to remember to evict file from fasync lists; forgetting that creates a hole and we actually have a bunch that *does* forget. So let's keep our lives simple - let __fput() check FASYNC in file->f_flags and call ->fasync() there if it's been set. And lose that crap in ->release() instances - leaving it there is still valid, but we don't have to bother anymore. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds --- drivers/telephony/ixj.c | 1 - 1 file changed, 1 deletion(-) (limited to 'drivers/telephony') diff --git a/drivers/telephony/ixj.c b/drivers/telephony/ixj.c index 41b6530b8f2..a913efc6966 100644 --- a/drivers/telephony/ixj.c +++ b/drivers/telephony/ixj.c @@ -2328,7 +2328,6 @@ static int ixj_release(struct inode *inode, struct file *file_p) j->rec_codec = j->play_codec = 0; j->rec_frame_size = j->play_frame_size = 0; j->flags.cidsent = j->flags.cidring = 0; - ixj_fasync(-1, file_p, 0); /* remove from list of async notification */ if(j->cardtype == QTI_LINEJACK && !j->readers && !j->writers) { ixj_set_port(j, PORT_PSTN); -- cgit v1.2.3