summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndi Kleen <ak@suse.de>2005-11-20 18:49:08 +0100
committerLinus Torvalds <torvalds@g5.osdl.org>2005-11-20 11:52:59 -0800
commit9e18fcdd346c6befdac360c047327fb058f33628 (patch)
tree12d9413d14ebb8febe14096bf75c37ed7fc0bf3c
parente6c667592e824c2871fe0ae3bc4b9bc7e81941f4 (diff)
[PATCH] Remove compat ioctl semaphore
Originally for 2.6.16, but the semaphore causes problems for some people so get rid of it now. It's not needed anymore because the ioctl hash table is never changed at run time now. Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--fs/compat.c7
1 files changed, 0 insertions, 7 deletions
diff --git a/fs/compat.c b/fs/compat.c
index 8e71cdbecc7..0f7abf246d3 100644
--- a/fs/compat.c
+++ b/fs/compat.c
@@ -268,7 +268,6 @@ out:
#define IOCTL_HASHSIZE 256
static struct ioctl_trans *ioctl32_hash_table[IOCTL_HASHSIZE];
-static DECLARE_RWSEM(ioctl32_sem);
extern struct ioctl_trans ioctl_start[];
extern int ioctl_table_size;
@@ -390,14 +389,10 @@ asmlinkage long compat_sys_ioctl(unsigned int fd, unsigned int cmd,
break;
}
- /* When register_ioctl32_conversion is finally gone remove
- this lock! -AK */
- down_read(&ioctl32_sem);
for (t = ioctl32_hash_table[ioctl32_hash(cmd)]; t; t = t->next) {
if (t->cmd == cmd)
goto found_handler;
}
- up_read(&ioctl32_sem);
if (S_ISSOCK(filp->f_dentry->d_inode->i_mode) &&
cmd >= SIOCDEVPRIVATE && cmd <= (SIOCDEVPRIVATE + 15)) {
@@ -417,11 +412,9 @@ asmlinkage long compat_sys_ioctl(unsigned int fd, unsigned int cmd,
lock_kernel();
error = t->handler(fd, cmd, arg, filp);
unlock_kernel();
- up_read(&ioctl32_sem);
goto out_fput;
}
- up_read(&ioctl32_sem);
do_ioctl:
error = vfs_ioctl(filp, fd, cmd, arg);
out_fput: