summaryrefslogtreecommitdiffstats
path: root/arch/ia64
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-07-09 23:29:35 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-07-09 23:29:35 +0000
commit35385d7a83b4cae6d5ea5f80f3b3377d94178344 (patch)
tree49494d95dfef31ba4f9a697d31e4028cf65a57bd /arch/ia64
parentd9d8062e7b49943b2a2fb034f817a9fc217fd40f (diff)
Merge with 2.4.0-test3-pre7.
Diffstat (limited to 'arch/ia64')
-rw-r--r--arch/ia64/ia32/sys_ia32.c19
-rw-r--r--arch/ia64/kernel/sys_ia64.c12
2 files changed, 2 insertions, 29 deletions
diff --git a/arch/ia64/ia32/sys_ia32.c b/arch/ia64/ia32/sys_ia32.c
index 95f8b1f54..1e9876eb4 100644
--- a/arch/ia64/ia32/sys_ia32.c
+++ b/arch/ia64/ia32/sys_ia32.c
@@ -708,7 +708,6 @@ sys32_getdents (unsigned int fd, void * dirent, unsigned int count)
buf.count = count;
buf.error = 0;
- lock_kernel();
error = vfs_readdir(file, filldir32, &buf);
if (error < 0)
goto out_putf;
@@ -720,7 +719,6 @@ sys32_getdents (unsigned int fd, void * dirent, unsigned int count)
}
out_putf:
- unlock_kernel();
fput(file);
out:
return error;
@@ -759,12 +757,9 @@ sys32_readdir (unsigned int fd, void * dirent, unsigned int count)
buf.count = 0;
buf.dirent = dirent;
- lock_kernel();
error = vfs_readdir(file, fillonedir32, &buf);
if (error >= 0)
error = buf.count;
- unlock_kernel();
-
fput(file);
out:
return error;
@@ -1028,7 +1023,6 @@ sys32_readv(int fd, struct iovec32 *vector, u32 count)
struct file *file;
long ret = -EBADF;
- lock_kernel();
file = fget(fd);
if(!file)
goto bad_file;
@@ -1041,7 +1035,6 @@ sys32_readv(int fd, struct iovec32 *vector, u32 count)
out:
fput(file);
bad_file:
- unlock_kernel();
return ret;
}
@@ -1051,7 +1044,6 @@ sys32_writev(int fd, struct iovec32 *vector, u32 count)
struct file *file;
int ret = -EBADF;
- lock_kernel();
file = fget(fd);
if(!file)
goto bad_file;
@@ -1066,7 +1058,6 @@ sys32_writev(int fd, struct iovec32 *vector, u32 count)
out:
fput(file);
bad_file:
- unlock_kernel();
return ret;
}
@@ -1852,7 +1843,6 @@ sys32_ipc (u32 call, int first, int second, int third, u32 ptr, u32 fifth)
{
int version, err;
- lock_kernel();
version = call >> 16; /* hack for backward compatibility */
call &= 0xffff;
@@ -1904,7 +1894,6 @@ sys32_ipc (u32 call, int first, int second, int third, u32 ptr, u32 fifth)
break;
}
- unlock_kernel();
return err;
}
@@ -3719,7 +3708,6 @@ sys32_sendmsg(int fd, struct msghdr32 *user_msg, unsigned user_flags)
}
kern_msg.msg_flags = user_flags;
- lock_kernel();
sock = sockfd_lookup(fd, &err);
if (sock != NULL) {
if (sock->file->f_flags & O_NONBLOCK)
@@ -3727,7 +3715,6 @@ sys32_sendmsg(int fd, struct msghdr32 *user_msg, unsigned user_flags)
err = sock_sendmsg(sock, &kern_msg, total_len);
sockfd_put(sock);
}
- unlock_kernel();
/* N.B. Use kfree here, as kern_msg.msg_controllen might change? */
if(ctl_buf != ctl)
@@ -3767,7 +3754,6 @@ sys32_recvmsg(int fd, struct msghdr32 *user_msg, unsigned int user_flags)
cmsg_ptr = (unsigned long) kern_msg.msg_control;
kern_msg.msg_flags = 0;
- lock_kernel();
sock = sockfd_lookup(fd, &err);
if (sock != NULL) {
struct scm_cookie scm;
@@ -3775,6 +3761,7 @@ sys32_recvmsg(int fd, struct msghdr32 *user_msg, unsigned int user_flags)
if (sock->file->f_flags & O_NONBLOCK)
user_flags |= MSG_DONTWAIT;
memset(&scm, 0, sizeof(scm));
+ lock_kernel();
err = sock->ops->recvmsg(sock, &kern_msg, total_len,
user_flags, &scm);
if(err >= 0) {
@@ -3805,9 +3792,9 @@ sys32_recvmsg(int fd, struct msghdr32 *user_msg, unsigned int user_flags)
scm_detach_fds32(&kern_msg, &scm);
}
}
+ unlock_kernel();
sockfd_put(sock);
}
- unlock_kernel();
if(uaddr != NULL && err >= 0)
err = move_addr_to_user(addr, kern_msg.msg_namelen, uaddr,
@@ -4707,11 +4694,9 @@ asmlinkage long
sys32_personality(unsigned long personality)
{
int ret;
- lock_kernel();
if (current->personality == PER_LINUX32 && personality == PER_LINUX)
personality = PER_LINUX32;
ret = sys_personality(personality);
- unlock_kernel();
if (ret == PER_LINUX32)
ret = PER_LINUX;
return ret;
diff --git a/arch/ia64/kernel/sys_ia64.c b/arch/ia64/kernel/sys_ia64.c
index c25193cdc..0ccbe24a6 100644
--- a/arch/ia64/kernel/sys_ia64.c
+++ b/arch/ia64/kernel/sys_ia64.c
@@ -180,27 +180,21 @@ sys_ioperm (unsigned long from, unsigned long num, int on)
asmlinkage long
sys_iopl (int level, long arg1, long arg2, long arg3)
{
- lock_kernel();
printk(KERN_ERR "sys_iopl(level=%d)!\n", level);
- unlock_kernel();
return -ENOSYS;
}
asmlinkage long
sys_vm86 (long arg0, long arg1, long arg2, long arg3)
{
- lock_kernel();
printk(KERN_ERR "sys_vm86(%lx, %lx, %lx, %lx)!\n", arg0, arg1, arg2, arg3);
- unlock_kernel();
return -ENOSYS;
}
asmlinkage long
sys_modify_ldt (long arg0, long arg1, long arg2, long arg3)
{
- lock_kernel();
printk(KERN_ERR "sys_modify_ldt(%lx, %lx, %lx, %lx)!\n", arg0, arg1, arg2, arg3);
- unlock_kernel();
return -ENOSYS;
}
@@ -296,7 +290,6 @@ ia64_oldstat (char *filename, struct ia64_oldstat *statbuf)
struct nameidata nd;
int error;
- lock_kernel();
error = user_path_walk(filename, &nd);
if (!error) {
error = do_revalidate(nd.dentry);
@@ -304,7 +297,6 @@ ia64_oldstat (char *filename, struct ia64_oldstat *statbuf)
error = cp_ia64_old_stat(nd.dentry->d_inode, statbuf);
path_release(&nd);
}
- unlock_kernel();
return error;
}
@@ -314,7 +306,6 @@ ia64_oldlstat (char *filename, struct ia64_oldstat *statbuf) {
struct nameidata nd;
int error;
- lock_kernel();
error = user_path_walk_link(filename, &nd);
if (!error) {
error = do_revalidate(nd.dentry);
@@ -322,7 +313,6 @@ ia64_oldlstat (char *filename, struct ia64_oldstat *statbuf) {
error = cp_ia64_old_stat(nd.dentry->d_inode, statbuf);
path_release(&nd);
}
- unlock_kernel();
return error;
}
@@ -332,7 +322,6 @@ ia64_oldfstat (unsigned int fd, struct ia64_oldstat *statbuf)
struct file * f;
int err = -EBADF;
- lock_kernel();
f = fget(fd);
if (f) {
struct dentry * dentry = f->f_dentry;
@@ -342,7 +331,6 @@ ia64_oldfstat (unsigned int fd, struct ia64_oldstat *statbuf)
err = cp_ia64_old_stat(dentry->d_inode, statbuf);
fput(f);
}
- unlock_kernel();
return err;
}