From: Adrian Bunk We don't need the semaphore any more since we no longer write to the ioctl32 hash table while the kernel is running. Signed-off-by: Arnd Bergmann Signed-off-by: Adrian Bunk Cc: Christoph Hellwig Cc: Arnd Bergmann Signed-off-by: Andrew Morton --- fs/compat.c | 7 ------- include/linux/ioctl32.h | 2 -- 2 files changed, 9 deletions(-) diff -puN fs/compat.c~compat-remove-leftovers-from-register_ioctl32_conversion fs/compat.c --- devel/fs/compat.c~compat-remove-leftovers-from-register_ioctl32_conversion 2005-11-07 19:23:19.000000000 -0800 +++ devel-akpm/fs/compat.c 2005-11-07 19:23:19.000000000 -0800 @@ -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(unsigne 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(unsigne 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: diff -puN include/linux/ioctl32.h~compat-remove-leftovers-from-register_ioctl32_conversion include/linux/ioctl32.h --- devel/include/linux/ioctl32.h~compat-remove-leftovers-from-register_ioctl32_conversion 2005-11-07 19:23:19.000000000 -0800 +++ devel-akpm/include/linux/ioctl32.h 2005-11-07 19:23:19.000000000 -0800 @@ -1,8 +1,6 @@ #ifndef IOCTL32_H #define IOCTL32_H 1 -#include /* for __deprecated */ - struct file; typedef int (*ioctl_trans_handler_t)(unsigned int, unsigned int, _