git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
arch
/
um
/
kernel
/
syscall.c
diff --git
a/arch/um/kernel/syscall.c
b/arch/um/kernel/syscall.c
index
85fb0f9
..
f5ed862
100644
(file)
--- a/
arch/um/kernel/syscall.c
+++ b/
arch/um/kernel/syscall.c
@@
-15,8
+15,6
@@
#include "linux/unistd.h"
#include "linux/slab.h"
#include "linux/utime.h"
#include "linux/unistd.h"
#include "linux/slab.h"
#include "linux/utime.h"
-#include <linux/vs_cvirt.h>
-
#include "asm/mman.h"
#include "asm/uaccess.h"
#include "kern_util.h"
#include "asm/mman.h"
#include "asm/uaccess.h"
#include "kern_util.h"
@@
-112,7
+110,7
@@
long sys_uname(struct old_utsname __user * name)
if (!name)
return -EFAULT;
down_read(&uts_sem);
if (!name)
return -EFAULT;
down_read(&uts_sem);
- err = copy_to_user(name,
vx_new_
utsname(), sizeof (*name));
+ err = copy_to_user(name, utsname(), sizeof (*name));
up_read(&uts_sem);
return err?-EFAULT:0;
}
up_read(&uts_sem);
return err?-EFAULT:0;
}
@@
-120,7
+118,6
@@
long sys_uname(struct old_utsname __user * name)
long sys_olduname(struct oldold_utsname __user * name)
{
long error;
long sys_olduname(struct oldold_utsname __user * name)
{
long error;
- struct new_utsname *ptr;
if (!name)
return -EFAULT;
if (!name)
return -EFAULT;
@@
-129,22
+126,21
@@
long sys_olduname(struct oldold_utsname __user * name)
down_read(&uts_sem);
down_read(&uts_sem);
- ptr = vx_new_utsname();
- error = __copy_to_user(&name->sysname,ptr->sysname,
+ error = __copy_to_user(&name->sysname, &utsname()->sysname,
__OLD_UTS_LEN);
__OLD_UTS_LEN);
- error |= __put_user(0,
name->sysname+
__OLD_UTS_LEN);
- error |= __copy_to_user(&name->nodename,
ptr
->nodename,
+ error |= __put_user(0,
name->sysname +
__OLD_UTS_LEN);
+ error |= __copy_to_user(&name->nodename,
&utsname()
->nodename,
__OLD_UTS_LEN);
__OLD_UTS_LEN);
- error |= __put_user(0,
name->nodename+
__OLD_UTS_LEN);
- error |= __copy_to_user(&name->release,
ptr
->release,
+ error |= __put_user(0,
name->nodename +
__OLD_UTS_LEN);
+ error |= __copy_to_user(&name->release,
&utsname()
->release,
__OLD_UTS_LEN);
__OLD_UTS_LEN);
- error |= __put_user(0,
name->release+
__OLD_UTS_LEN);
- error |= __copy_to_user(&name->version,
ptr
->version,
+ error |= __put_user(0,
name->release +
__OLD_UTS_LEN);
+ error |= __copy_to_user(&name->version,
&utsname()
->version,
__OLD_UTS_LEN);
__OLD_UTS_LEN);
- error |= __put_user(0,
name->version+
__OLD_UTS_LEN);
- error |= __copy_to_user(&name->machine,
ptr
->machine,
+ error |= __put_user(0,
name->version +
__OLD_UTS_LEN);
+ error |= __copy_to_user(&name->machine,
&utsname()
->machine,
__OLD_UTS_LEN);
__OLD_UTS_LEN);
- error |= __put_user(0,
name->machine+
__OLD_UTS_LEN);
+ error |= __put_user(0,
name->machine +
__OLD_UTS_LEN);
up_read(&uts_sem);
up_read(&uts_sem);
@@
-168,3
+164,16
@@
int next_syscall_index(int limit)
spin_unlock(&syscall_lock);
return(ret);
}
spin_unlock(&syscall_lock);
return(ret);
}
+
+int kernel_execve(const char *filename, char *const argv[], char *const envp[])
+{
+ mm_segment_t fs;
+ int ret;
+
+ fs = get_fs();
+ set_fs(KERNEL_DS);
+ ret = um_execve(filename, argv, envp);
+ set_fs(fs);
+
+ return ret;
+}