mirror of
https://github.com/torvalds/linux.git
synced 2024-11-30 16:11:38 +00:00
Merge rsync://oak/kernels/iseries/work/
This commit is contained in:
commit
46aab8c584
@ -262,7 +262,7 @@ _GLOBAL(save_nvgprs)
|
||||
*/
|
||||
_GLOBAL(ppc32_sigsuspend)
|
||||
bl .save_nvgprs
|
||||
bl .sys32_sigsuspend
|
||||
bl .compat_sys_sigsuspend
|
||||
b 70f
|
||||
|
||||
_GLOBAL(ppc64_rt_sigsuspend)
|
||||
@ -272,7 +272,7 @@ _GLOBAL(ppc64_rt_sigsuspend)
|
||||
|
||||
_GLOBAL(ppc32_rt_sigsuspend)
|
||||
bl .save_nvgprs
|
||||
bl .sys32_rt_sigsuspend
|
||||
bl .compat_sys_rt_sigsuspend
|
||||
70: cmpdi 0,r3,0
|
||||
/* If it returned an error, we need to return via syscall_exit to set
|
||||
the SO bit in cr0 and potentially stop for ptrace. */
|
||||
@ -307,7 +307,7 @@ _GLOBAL(ppc_clone)
|
||||
|
||||
_GLOBAL(ppc32_swapcontext)
|
||||
bl .save_nvgprs
|
||||
bl .sys32_swapcontext
|
||||
bl .compat_sys_swapcontext
|
||||
b 80f
|
||||
|
||||
_GLOBAL(ppc64_swapcontext)
|
||||
@ -316,11 +316,11 @@ _GLOBAL(ppc64_swapcontext)
|
||||
b 80f
|
||||
|
||||
_GLOBAL(ppc32_sigreturn)
|
||||
bl .sys32_sigreturn
|
||||
bl .compat_sys_sigreturn
|
||||
b 80f
|
||||
|
||||
_GLOBAL(ppc32_rt_sigreturn)
|
||||
bl .sys32_rt_sigreturn
|
||||
bl .compat_sys_rt_sigreturn
|
||||
b 80f
|
||||
|
||||
_GLOBAL(ppc64_rt_sigreturn)
|
||||
|
@ -58,12 +58,12 @@
|
||||
|
||||
#ifdef CONFIG_PPC64
|
||||
#define do_signal do_signal32
|
||||
#define sys_sigsuspend sys32_sigsuspend
|
||||
#define sys_rt_sigsuspend sys32_rt_sigsuspend
|
||||
#define sys_rt_sigreturn sys32_rt_sigreturn
|
||||
#define sys_sigaction sys32_sigaction
|
||||
#define sys_swapcontext sys32_swapcontext
|
||||
#define sys_sigreturn sys32_sigreturn
|
||||
#define sys_sigsuspend compat_sys_sigsuspend
|
||||
#define sys_rt_sigsuspend compat_sys_rt_sigsuspend
|
||||
#define sys_rt_sigreturn compat_sys_rt_sigreturn
|
||||
#define sys_sigaction compat_sys_sigaction
|
||||
#define sys_swapcontext compat_sys_swapcontext
|
||||
#define sys_sigreturn compat_sys_sigreturn
|
||||
|
||||
#define old_sigaction old_sigaction32
|
||||
#define sigcontext sigcontext32
|
||||
@ -540,7 +540,7 @@ static long restore_user_regs(struct pt_regs *regs,
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PPC64
|
||||
long sys32_rt_sigaction(int sig, const struct sigaction32 __user *act,
|
||||
long compat_sys_rt_sigaction(int sig, const struct sigaction32 __user *act,
|
||||
struct sigaction32 __user *oact, size_t sigsetsize)
|
||||
{
|
||||
struct k_sigaction new_ka, old_ka;
|
||||
@ -577,7 +577,7 @@ long sys32_rt_sigaction(int sig, const struct sigaction32 __user *act,
|
||||
* of a signed int (msr in 32-bit mode) and the register representation
|
||||
* of a signed int (msr in 64-bit mode) is performed.
|
||||
*/
|
||||
long sys32_rt_sigprocmask(u32 how, compat_sigset_t __user *set,
|
||||
long compat_sys_rt_sigprocmask(u32 how, compat_sigset_t __user *set,
|
||||
compat_sigset_t __user *oset, size_t sigsetsize)
|
||||
{
|
||||
sigset_t s;
|
||||
@ -605,7 +605,7 @@ long sys32_rt_sigprocmask(u32 how, compat_sigset_t __user *set,
|
||||
return 0;
|
||||
}
|
||||
|
||||
long sys32_rt_sigpending(compat_sigset_t __user *set, compat_size_t sigsetsize)
|
||||
long compat_sys_rt_sigpending(compat_sigset_t __user *set, compat_size_t sigsetsize)
|
||||
{
|
||||
sigset_t s;
|
||||
int ret;
|
||||
@ -687,7 +687,7 @@ int copy_siginfo_to_user32(struct compat_siginfo __user *d, siginfo_t *s)
|
||||
* (msr in 32-bit mode) and the register representation of a signed int
|
||||
* (msr in 64-bit mode) is performed.
|
||||
*/
|
||||
long sys32_rt_sigqueueinfo(u32 pid, u32 sig, compat_siginfo_t __user *uinfo)
|
||||
long compat_sys_rt_sigqueueinfo(u32 pid, u32 sig, compat_siginfo_t __user *uinfo)
|
||||
{
|
||||
siginfo_t info;
|
||||
int ret;
|
||||
@ -706,10 +706,10 @@ long sys32_rt_sigqueueinfo(u32 pid, u32 sig, compat_siginfo_t __user *uinfo)
|
||||
* Start Alternate signal stack support
|
||||
*
|
||||
* System Calls
|
||||
* sigaltatck sys32_sigaltstack
|
||||
* sigaltatck compat_sys_sigaltstack
|
||||
*/
|
||||
|
||||
int sys32_sigaltstack(u32 __new, u32 __old, int r5,
|
||||
int compat_sys_sigaltstack(u32 __new, u32 __old, int r5,
|
||||
int r6, int r7, int r8, struct pt_regs *regs)
|
||||
{
|
||||
stack_32_t __user * newstack = (stack_32_t __user *)(long) __new;
|
||||
@ -942,11 +942,11 @@ long sys_rt_sigreturn(int r3, int r4, int r5, int r6, int r7, int r8,
|
||||
*/
|
||||
#ifdef CONFIG_PPC64
|
||||
/*
|
||||
* We use the sys32_ version that does the 32/64 bits conversion
|
||||
* We use the compat_sys_ version that does the 32/64 bits conversion
|
||||
* and takes userland pointer directly. What about error checking ?
|
||||
* nobody does any...
|
||||
*/
|
||||
sys32_sigaltstack((u32)(u64)&rt_sf->uc.uc_stack, 0, 0, 0, 0, 0, regs);
|
||||
compat_sys_sigaltstack((u32)(u64)&rt_sf->uc.uc_stack, 0, 0, 0, 0, 0, regs);
|
||||
return (int)regs->result;
|
||||
#else
|
||||
do_sigaltstack(&rt_sf->uc.uc_stack, NULL, regs->gpr[1]);
|
||||
|
@ -113,96 +113,6 @@ out:
|
||||
return error;
|
||||
}
|
||||
|
||||
struct linux_dirent32 {
|
||||
u32 d_ino;
|
||||
u32 d_off;
|
||||
unsigned short d_reclen;
|
||||
char d_name[1];
|
||||
};
|
||||
|
||||
struct getdents_callback32 {
|
||||
struct linux_dirent32 __user * current_dir;
|
||||
struct linux_dirent32 __user * previous;
|
||||
int count;
|
||||
int error;
|
||||
};
|
||||
|
||||
static int filldir(void * __buf, const char * name, int namlen, off_t offset,
|
||||
ino_t ino, unsigned int d_type)
|
||||
{
|
||||
struct linux_dirent32 __user * dirent;
|
||||
struct getdents_callback32 * buf = (struct getdents_callback32 *) __buf;
|
||||
int reclen = ROUND_UP(NAME_OFFSET(dirent) + namlen + 2);
|
||||
|
||||
buf->error = -EINVAL; /* only used if we fail.. */
|
||||
if (reclen > buf->count)
|
||||
return -EINVAL;
|
||||
dirent = buf->previous;
|
||||
if (dirent) {
|
||||
if (__put_user(offset, &dirent->d_off))
|
||||
goto efault;
|
||||
}
|
||||
dirent = buf->current_dir;
|
||||
if (__put_user(ino, &dirent->d_ino))
|
||||
goto efault;
|
||||
if (__put_user(reclen, &dirent->d_reclen))
|
||||
goto efault;
|
||||
if (copy_to_user(dirent->d_name, name, namlen))
|
||||
goto efault;
|
||||
if (__put_user(0, dirent->d_name + namlen))
|
||||
goto efault;
|
||||
if (__put_user(d_type, (char __user *) dirent + reclen - 1))
|
||||
goto efault;
|
||||
buf->previous = dirent;
|
||||
dirent = (void __user *)dirent + reclen;
|
||||
buf->current_dir = dirent;
|
||||
buf->count -= reclen;
|
||||
return 0;
|
||||
efault:
|
||||
buf->error = -EFAULT;
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
asmlinkage long sys32_getdents(unsigned int fd, struct linux_dirent32 __user *dirent,
|
||||
unsigned int count)
|
||||
{
|
||||
struct file * file;
|
||||
struct linux_dirent32 __user * lastdirent;
|
||||
struct getdents_callback32 buf;
|
||||
int error;
|
||||
|
||||
error = -EFAULT;
|
||||
if (!access_ok(VERIFY_WRITE, dirent, count))
|
||||
goto out;
|
||||
|
||||
error = -EBADF;
|
||||
file = fget(fd);
|
||||
if (!file)
|
||||
goto out;
|
||||
|
||||
buf.current_dir = dirent;
|
||||
buf.previous = NULL;
|
||||
buf.count = count;
|
||||
buf.error = 0;
|
||||
|
||||
error = vfs_readdir(file, (filldir_t)filldir, &buf);
|
||||
if (error < 0)
|
||||
goto out_putf;
|
||||
error = buf.error;
|
||||
lastdirent = buf.previous;
|
||||
if (lastdirent) {
|
||||
if (put_user(file->f_pos, &lastdirent->d_off))
|
||||
error = -EFAULT;
|
||||
else
|
||||
error = count - buf.count;
|
||||
}
|
||||
|
||||
out_putf:
|
||||
fput(file);
|
||||
out:
|
||||
return error;
|
||||
}
|
||||
|
||||
asmlinkage long ppc32_select(u32 n, compat_ulong_t __user *inp,
|
||||
compat_ulong_t __user *outp, compat_ulong_t __user *exp,
|
||||
compat_uptr_t tvp_x)
|
||||
@ -247,7 +157,7 @@ int cp_compat_stat(struct kstat *stat, struct compat_stat __user *statbuf)
|
||||
* proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode)
|
||||
* and the register representation of a signed int (msr in 64-bit mode) is performed.
|
||||
*/
|
||||
asmlinkage long sys32_sysfs(u32 option, u32 arg1, u32 arg2)
|
||||
asmlinkage long compat_sys_sysfs(u32 option, u32 arg1, u32 arg2)
|
||||
{
|
||||
return sys_sysfs((int)option, arg1, arg2);
|
||||
}
|
||||
@ -269,7 +179,7 @@ struct timex32 {
|
||||
extern int do_adjtimex(struct timex *);
|
||||
extern void ppc_adjtimex(void);
|
||||
|
||||
asmlinkage long sys32_adjtimex(struct timex32 __user *utp)
|
||||
asmlinkage long compat_sys_adjtimex(struct timex32 __user *utp)
|
||||
{
|
||||
struct timex txc;
|
||||
int ret;
|
||||
@ -328,7 +238,7 @@ asmlinkage long sys32_adjtimex(struct timex32 __user *utp)
|
||||
return ret;
|
||||
}
|
||||
|
||||
asmlinkage long sys32_pause(void)
|
||||
asmlinkage long compat_sys_pause(void)
|
||||
{
|
||||
current->state = TASK_INTERRUPTIBLE;
|
||||
schedule();
|
||||
@ -374,7 +284,7 @@ struct sysinfo32 {
|
||||
char _f[20-2*sizeof(int)-sizeof(int)];
|
||||
};
|
||||
|
||||
asmlinkage long sys32_sysinfo(struct sysinfo32 __user *info)
|
||||
asmlinkage long compat_sys_sysinfo(struct sysinfo32 __user *info)
|
||||
{
|
||||
struct sysinfo s;
|
||||
int ret, err;
|
||||
@ -431,7 +341,7 @@ asmlinkage long sys32_sysinfo(struct sysinfo32 __user *info)
|
||||
sorts of things, like timeval and itimerval. */
|
||||
extern struct timezone sys_tz;
|
||||
|
||||
asmlinkage long sys32_gettimeofday(struct compat_timeval __user *tv, struct timezone __user *tz)
|
||||
asmlinkage long compat_sys_gettimeofday(struct compat_timeval __user *tv, struct timezone __user *tz)
|
||||
{
|
||||
if (tv) {
|
||||
struct timeval ktv;
|
||||
@ -449,7 +359,7 @@ asmlinkage long sys32_gettimeofday(struct compat_timeval __user *tv, struct time
|
||||
|
||||
|
||||
|
||||
asmlinkage long sys32_settimeofday(struct compat_timeval __user *tv, struct timezone __user *tz)
|
||||
asmlinkage long compat_sys_settimeofday(struct compat_timeval __user *tv, struct timezone __user *tz)
|
||||
{
|
||||
struct timespec kts;
|
||||
struct timezone ktz;
|
||||
@ -467,7 +377,7 @@ asmlinkage long sys32_settimeofday(struct compat_timeval __user *tv, struct time
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SYSVIPC
|
||||
long sys32_ipc(u32 call, u32 first, u32 second, u32 third, compat_uptr_t ptr,
|
||||
long compat_sys_ipc(u32 call, u32 first, u32 second, u32 third, compat_uptr_t ptr,
|
||||
u32 fifth)
|
||||
{
|
||||
int version;
|
||||
@ -538,7 +448,7 @@ long sys32_ipc(u32 call, u32 first, u32 second, u32 third, compat_uptr_t ptr,
|
||||
* proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode)
|
||||
* and the register representation of a signed int (msr in 64-bit mode) is performed.
|
||||
*/
|
||||
asmlinkage long sys32_sendfile(u32 out_fd, u32 in_fd, compat_off_t __user * offset, u32 count)
|
||||
asmlinkage long compat_sys_sendfile(u32 out_fd, u32 in_fd, compat_off_t __user * offset, u32 count)
|
||||
{
|
||||
mm_segment_t old_fs = get_fs();
|
||||
int ret;
|
||||
@ -560,7 +470,7 @@ asmlinkage long sys32_sendfile(u32 out_fd, u32 in_fd, compat_off_t __user * offs
|
||||
return ret;
|
||||
}
|
||||
|
||||
asmlinkage int sys32_sendfile64(int out_fd, int in_fd, compat_loff_t __user *offset, s32 count)
|
||||
asmlinkage int compat_sys_sendfile64(int out_fd, int in_fd, compat_loff_t __user *offset, s32 count)
|
||||
{
|
||||
mm_segment_t old_fs = get_fs();
|
||||
int ret;
|
||||
@ -582,7 +492,7 @@ asmlinkage int sys32_sendfile64(int out_fd, int in_fd, compat_loff_t __user *off
|
||||
return ret;
|
||||
}
|
||||
|
||||
long sys32_execve(unsigned long a0, unsigned long a1, unsigned long a2,
|
||||
long compat_sys_execve(unsigned long a0, unsigned long a1, unsigned long a2,
|
||||
unsigned long a3, unsigned long a4, unsigned long a5,
|
||||
struct pt_regs *regs)
|
||||
{
|
||||
@ -614,7 +524,7 @@ out:
|
||||
* proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode)
|
||||
* and the register representation of a signed int (msr in 64-bit mode) is performed.
|
||||
*/
|
||||
asmlinkage long sys32_prctl(u32 option, u32 arg2, u32 arg3, u32 arg4, u32 arg5)
|
||||
asmlinkage long compat_sys_prctl(u32 option, u32 arg2, u32 arg3, u32 arg4, u32 arg5)
|
||||
{
|
||||
return sys_prctl((int)option,
|
||||
(unsigned long) arg2,
|
||||
@ -628,7 +538,7 @@ asmlinkage long sys32_prctl(u32 option, u32 arg2, u32 arg3, u32 arg4, u32 arg5)
|
||||
* proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode)
|
||||
* and the register representation of a signed int (msr in 64-bit mode) is performed.
|
||||
*/
|
||||
asmlinkage long sys32_sched_rr_get_interval(u32 pid, struct compat_timespec __user *interval)
|
||||
asmlinkage long compat_sys_sched_rr_get_interval(u32 pid, struct compat_timespec __user *interval)
|
||||
{
|
||||
struct timespec t;
|
||||
int ret;
|
||||
@ -643,7 +553,7 @@ asmlinkage long sys32_sched_rr_get_interval(u32 pid, struct compat_timespec __us
|
||||
return ret;
|
||||
}
|
||||
|
||||
asmlinkage int sys32_pciconfig_read(u32 bus, u32 dfn, u32 off, u32 len, u32 ubuf)
|
||||
asmlinkage int compat_sys_pciconfig_read(u32 bus, u32 dfn, u32 off, u32 len, u32 ubuf)
|
||||
{
|
||||
return sys_pciconfig_read((unsigned long) bus,
|
||||
(unsigned long) dfn,
|
||||
@ -652,7 +562,7 @@ asmlinkage int sys32_pciconfig_read(u32 bus, u32 dfn, u32 off, u32 len, u32 ubuf
|
||||
compat_ptr(ubuf));
|
||||
}
|
||||
|
||||
asmlinkage int sys32_pciconfig_write(u32 bus, u32 dfn, u32 off, u32 len, u32 ubuf)
|
||||
asmlinkage int compat_sys_pciconfig_write(u32 bus, u32 dfn, u32 off, u32 len, u32 ubuf)
|
||||
{
|
||||
return sys_pciconfig_write((unsigned long) bus,
|
||||
(unsigned long) dfn,
|
||||
@ -661,7 +571,7 @@ asmlinkage int sys32_pciconfig_write(u32 bus, u32 dfn, u32 off, u32 len, u32 ubu
|
||||
compat_ptr(ubuf));
|
||||
}
|
||||
|
||||
asmlinkage int sys32_pciconfig_iobase(u32 which, u32 in_bus, u32 in_devfn)
|
||||
asmlinkage int compat_sys_pciconfig_iobase(u32 which, u32 in_bus, u32 in_devfn)
|
||||
{
|
||||
return sys_pciconfig_iobase(which, in_bus, in_devfn);
|
||||
}
|
||||
@ -672,7 +582,7 @@ asmlinkage int sys32_pciconfig_iobase(u32 which, u32 in_bus, u32 in_devfn)
|
||||
* proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode)
|
||||
* and the register representation of a signed int (msr in 64-bit mode) is performed.
|
||||
*/
|
||||
asmlinkage long sys32_access(const char __user * filename, u32 mode)
|
||||
asmlinkage long compat_sys_access(const char __user * filename, u32 mode)
|
||||
{
|
||||
return sys_access(filename, (int)mode);
|
||||
}
|
||||
@ -683,7 +593,7 @@ asmlinkage long sys32_access(const char __user * filename, u32 mode)
|
||||
* proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode)
|
||||
* and the register representation of a signed int (msr in 64-bit mode) is performed.
|
||||
*/
|
||||
asmlinkage long sys32_creat(const char __user * pathname, u32 mode)
|
||||
asmlinkage long compat_sys_creat(const char __user * pathname, u32 mode)
|
||||
{
|
||||
return sys_creat(pathname, (int)mode);
|
||||
}
|
||||
@ -694,7 +604,7 @@ asmlinkage long sys32_creat(const char __user * pathname, u32 mode)
|
||||
* proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode)
|
||||
* and the register representation of a signed int (msr in 64-bit mode) is performed.
|
||||
*/
|
||||
asmlinkage long sys32_waitpid(u32 pid, unsigned int __user * stat_addr, u32 options)
|
||||
asmlinkage long compat_sys_waitpid(u32 pid, unsigned int __user * stat_addr, u32 options)
|
||||
{
|
||||
return sys_waitpid((int)pid, stat_addr, (int)options);
|
||||
}
|
||||
@ -705,7 +615,7 @@ asmlinkage long sys32_waitpid(u32 pid, unsigned int __user * stat_addr, u32 opti
|
||||
* proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode)
|
||||
* and the register representation of a signed int (msr in 64-bit mode) is performed.
|
||||
*/
|
||||
asmlinkage long sys32_getgroups(u32 gidsetsize, gid_t __user *grouplist)
|
||||
asmlinkage long compat_sys_getgroups(u32 gidsetsize, gid_t __user *grouplist)
|
||||
{
|
||||
return sys_getgroups((int)gidsetsize, grouplist);
|
||||
}
|
||||
@ -716,7 +626,7 @@ asmlinkage long sys32_getgroups(u32 gidsetsize, gid_t __user *grouplist)
|
||||
* proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode)
|
||||
* and the register representation of a signed int (msr in 64-bit mode) is performed.
|
||||
*/
|
||||
asmlinkage long sys32_getpgid(u32 pid)
|
||||
asmlinkage long compat_sys_getpgid(u32 pid)
|
||||
{
|
||||
return sys_getpgid((int)pid);
|
||||
}
|
||||
@ -728,7 +638,7 @@ asmlinkage long sys32_getpgid(u32 pid)
|
||||
* proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode)
|
||||
* and the register representation of a signed int (msr in 64-bit mode) is performed.
|
||||
*/
|
||||
asmlinkage long sys32_getsid(u32 pid)
|
||||
asmlinkage long compat_sys_getsid(u32 pid)
|
||||
{
|
||||
return sys_getsid((int)pid);
|
||||
}
|
||||
@ -739,7 +649,7 @@ asmlinkage long sys32_getsid(u32 pid)
|
||||
* proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode)
|
||||
* and the register representation of a signed int (msr in 64-bit mode) is performed.
|
||||
*/
|
||||
asmlinkage long sys32_kill(u32 pid, u32 sig)
|
||||
asmlinkage long compat_sys_kill(u32 pid, u32 sig)
|
||||
{
|
||||
return sys_kill((int)pid, (int)sig);
|
||||
}
|
||||
@ -750,12 +660,12 @@ asmlinkage long sys32_kill(u32 pid, u32 sig)
|
||||
* proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode)
|
||||
* and the register representation of a signed int (msr in 64-bit mode) is performed.
|
||||
*/
|
||||
asmlinkage long sys32_mkdir(const char __user * pathname, u32 mode)
|
||||
asmlinkage long compat_sys_mkdir(const char __user * pathname, u32 mode)
|
||||
{
|
||||
return sys_mkdir(pathname, (int)mode);
|
||||
}
|
||||
|
||||
long sys32_nice(u32 increment)
|
||||
long compat_sys_nice(u32 increment)
|
||||
{
|
||||
/* sign extend increment */
|
||||
return sys_nice((int)increment);
|
||||
@ -772,7 +682,7 @@ off_t ppc32_lseek(unsigned int fd, u32 offset, unsigned int origin)
|
||||
* proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode)
|
||||
* and the register representation of a signed int (msr in 64-bit mode) is performed.
|
||||
*/
|
||||
asmlinkage long sys32_readlink(const char __user * path, char __user * buf, u32 bufsiz)
|
||||
asmlinkage long compat_sys_readlink(const char __user * path, char __user * buf, u32 bufsiz)
|
||||
{
|
||||
return sys_readlink(path, buf, (int)bufsiz);
|
||||
}
|
||||
@ -782,7 +692,7 @@ asmlinkage long sys32_readlink(const char __user * path, char __user * buf, u32
|
||||
* proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode)
|
||||
* and the register representation of a signed int (msr in 64-bit mode) is performed.
|
||||
*/
|
||||
asmlinkage long sys32_sched_get_priority_max(u32 policy)
|
||||
asmlinkage long compat_sys_sched_get_priority_max(u32 policy)
|
||||
{
|
||||
return sys_sched_get_priority_max((int)policy);
|
||||
}
|
||||
@ -793,7 +703,7 @@ asmlinkage long sys32_sched_get_priority_max(u32 policy)
|
||||
* proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode)
|
||||
* and the register representation of a signed int (msr in 64-bit mode) is performed.
|
||||
*/
|
||||
asmlinkage long sys32_sched_get_priority_min(u32 policy)
|
||||
asmlinkage long compat_sys_sched_get_priority_min(u32 policy)
|
||||
{
|
||||
return sys_sched_get_priority_min((int)policy);
|
||||
}
|
||||
@ -804,7 +714,7 @@ asmlinkage long sys32_sched_get_priority_min(u32 policy)
|
||||
* proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode)
|
||||
* and the register representation of a signed int (msr in 64-bit mode) is performed.
|
||||
*/
|
||||
asmlinkage long sys32_sched_getparam(u32 pid, struct sched_param __user *param)
|
||||
asmlinkage long compat_sys_sched_getparam(u32 pid, struct sched_param __user *param)
|
||||
{
|
||||
return sys_sched_getparam((int)pid, param);
|
||||
}
|
||||
@ -815,7 +725,7 @@ asmlinkage long sys32_sched_getparam(u32 pid, struct sched_param __user *param)
|
||||
* proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode)
|
||||
* and the register representation of a signed int (msr in 64-bit mode) is performed.
|
||||
*/
|
||||
asmlinkage long sys32_sched_getscheduler(u32 pid)
|
||||
asmlinkage long compat_sys_sched_getscheduler(u32 pid)
|
||||
{
|
||||
return sys_sched_getscheduler((int)pid);
|
||||
}
|
||||
@ -826,7 +736,7 @@ asmlinkage long sys32_sched_getscheduler(u32 pid)
|
||||
* proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode)
|
||||
* and the register representation of a signed int (msr in 64-bit mode) is performed.
|
||||
*/
|
||||
asmlinkage long sys32_sched_setparam(u32 pid, struct sched_param __user *param)
|
||||
asmlinkage long compat_sys_sched_setparam(u32 pid, struct sched_param __user *param)
|
||||
{
|
||||
return sys_sched_setparam((int)pid, param);
|
||||
}
|
||||
@ -837,7 +747,7 @@ asmlinkage long sys32_sched_setparam(u32 pid, struct sched_param __user *param)
|
||||
* proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode)
|
||||
* and the register representation of a signed int (msr in 64-bit mode) is performed.
|
||||
*/
|
||||
asmlinkage long sys32_sched_setscheduler(u32 pid, u32 policy, struct sched_param __user *param)
|
||||
asmlinkage long compat_sys_sched_setscheduler(u32 pid, u32 policy, struct sched_param __user *param)
|
||||
{
|
||||
return sys_sched_setscheduler((int)pid, (int)policy, param);
|
||||
}
|
||||
@ -848,7 +758,7 @@ asmlinkage long sys32_sched_setscheduler(u32 pid, u32 policy, struct sched_param
|
||||
* proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode)
|
||||
* and the register representation of a signed int (msr in 64-bit mode) is performed.
|
||||
*/
|
||||
asmlinkage long sys32_setdomainname(char __user *name, u32 len)
|
||||
asmlinkage long compat_sys_setdomainname(char __user *name, u32 len)
|
||||
{
|
||||
return sys_setdomainname(name, (int)len);
|
||||
}
|
||||
@ -859,13 +769,13 @@ asmlinkage long sys32_setdomainname(char __user *name, u32 len)
|
||||
* proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode)
|
||||
* and the register representation of a signed int (msr in 64-bit mode) is performed.
|
||||
*/
|
||||
asmlinkage long sys32_setgroups(u32 gidsetsize, gid_t __user *grouplist)
|
||||
asmlinkage long compat_sys_setgroups(u32 gidsetsize, gid_t __user *grouplist)
|
||||
{
|
||||
return sys_setgroups((int)gidsetsize, grouplist);
|
||||
}
|
||||
|
||||
|
||||
asmlinkage long sys32_sethostname(char __user *name, u32 len)
|
||||
asmlinkage long compat_sys_sethostname(char __user *name, u32 len)
|
||||
{
|
||||
/* sign extend len */
|
||||
return sys_sethostname(name, (int)len);
|
||||
@ -877,30 +787,30 @@ asmlinkage long sys32_sethostname(char __user *name, u32 len)
|
||||
* proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode)
|
||||
* and the register representation of a signed int (msr in 64-bit mode) is performed.
|
||||
*/
|
||||
asmlinkage long sys32_setpgid(u32 pid, u32 pgid)
|
||||
asmlinkage long compat_sys_setpgid(u32 pid, u32 pgid)
|
||||
{
|
||||
return sys_setpgid((int)pid, (int)pgid);
|
||||
}
|
||||
|
||||
long sys32_getpriority(u32 which, u32 who)
|
||||
long compat_sys_getpriority(u32 which, u32 who)
|
||||
{
|
||||
/* sign extend which and who */
|
||||
return sys_getpriority((int)which, (int)who);
|
||||
}
|
||||
|
||||
long sys32_setpriority(u32 which, u32 who, u32 niceval)
|
||||
long compat_sys_setpriority(u32 which, u32 who, u32 niceval)
|
||||
{
|
||||
/* sign extend which, who and niceval */
|
||||
return sys_setpriority((int)which, (int)who, (int)niceval);
|
||||
}
|
||||
|
||||
long sys32_ioprio_get(u32 which, u32 who)
|
||||
long compat_sys_ioprio_get(u32 which, u32 who)
|
||||
{
|
||||
/* sign extend which and who */
|
||||
return sys_ioprio_get((int)which, (int)who);
|
||||
}
|
||||
|
||||
long sys32_ioprio_set(u32 which, u32 who, u32 ioprio)
|
||||
long compat_sys_ioprio_set(u32 which, u32 who, u32 ioprio)
|
||||
{
|
||||
/* sign extend which, who and ioprio */
|
||||
return sys_ioprio_set((int)which, (int)who, (int)ioprio);
|
||||
@ -911,12 +821,12 @@ long sys32_ioprio_set(u32 which, u32 who, u32 ioprio)
|
||||
* proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode)
|
||||
* and the register representation of a signed int (msr in 64-bit mode) is performed.
|
||||
*/
|
||||
asmlinkage long sys32_ssetmask(u32 newmask)
|
||||
asmlinkage long compat_sys_ssetmask(u32 newmask)
|
||||
{
|
||||
return sys_ssetmask((int) newmask);
|
||||
}
|
||||
|
||||
asmlinkage long sys32_syslog(u32 type, char __user * buf, u32 len)
|
||||
asmlinkage long compat_sys_syslog(u32 type, char __user * buf, u32 len)
|
||||
{
|
||||
/* sign extend len */
|
||||
return sys_syslog(type, buf, (int)len);
|
||||
@ -928,7 +838,7 @@ asmlinkage long sys32_syslog(u32 type, char __user * buf, u32 len)
|
||||
* proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode)
|
||||
* and the register representation of a signed int (msr in 64-bit mode) is performed.
|
||||
*/
|
||||
asmlinkage long sys32_umask(u32 mask)
|
||||
asmlinkage long compat_sys_umask(u32 mask)
|
||||
{
|
||||
return sys_umask((int)mask);
|
||||
}
|
||||
@ -944,7 +854,7 @@ struct __sysctl_args32 {
|
||||
u32 __unused[4];
|
||||
};
|
||||
|
||||
asmlinkage long sys32_sysctl(struct __sysctl_args32 __user *args)
|
||||
asmlinkage long compat_sys_sysctl(struct __sysctl_args32 __user *args)
|
||||
{
|
||||
struct __sysctl_args32 tmp;
|
||||
int error;
|
||||
@ -985,7 +895,7 @@ asmlinkage long sys32_sysctl(struct __sysctl_args32 __user *args)
|
||||
}
|
||||
#endif
|
||||
|
||||
unsigned long sys32_mmap2(unsigned long addr, size_t len,
|
||||
unsigned long compat_sys_mmap2(unsigned long addr, size_t len,
|
||||
unsigned long prot, unsigned long flags,
|
||||
unsigned long fd, unsigned long pgoff)
|
||||
{
|
||||
@ -993,29 +903,7 @@ unsigned long sys32_mmap2(unsigned long addr, size_t len,
|
||||
return sys_mmap(addr, len, prot, flags, fd, pgoff << 12);
|
||||
}
|
||||
|
||||
int get_compat_timeval(struct timeval *tv, struct compat_timeval __user *ctv)
|
||||
{
|
||||
return (!access_ok(VERIFY_READ, ctv, sizeof(*ctv)) ||
|
||||
__get_user(tv->tv_sec, &ctv->tv_sec) ||
|
||||
__get_user(tv->tv_usec, &ctv->tv_usec)) ? -EFAULT : 0;
|
||||
}
|
||||
|
||||
asmlinkage long sys32_utimes(char __user *filename, struct compat_timeval __user *tvs)
|
||||
{
|
||||
struct timeval ktvs[2], *ptr;
|
||||
|
||||
ptr = NULL;
|
||||
if (tvs) {
|
||||
if (get_compat_timeval(&ktvs[0], &tvs[0]) ||
|
||||
get_compat_timeval(&ktvs[1], &tvs[1]))
|
||||
return -EFAULT;
|
||||
ptr = ktvs;
|
||||
}
|
||||
|
||||
return do_utimes(filename, ptr);
|
||||
}
|
||||
|
||||
long sys32_tgkill(u32 tgid, u32 pid, int sig)
|
||||
long compat_sys_tgkill(u32 tgid, u32 pid, int sig)
|
||||
{
|
||||
/* sign extend tgid, pid */
|
||||
return sys_tgkill((int)tgid, (int)pid, sig);
|
||||
@ -1026,30 +914,30 @@ long sys32_tgkill(u32 tgid, u32 pid, int sig)
|
||||
* The 32 bit ABI passes long longs in an odd even register pair.
|
||||
*/
|
||||
|
||||
compat_ssize_t sys32_pread64(unsigned int fd, char __user *ubuf, compat_size_t count,
|
||||
compat_ssize_t compat_sys_pread64(unsigned int fd, char __user *ubuf, compat_size_t count,
|
||||
u32 reg6, u32 poshi, u32 poslo)
|
||||
{
|
||||
return sys_pread64(fd, ubuf, count, ((loff_t)poshi << 32) | poslo);
|
||||
}
|
||||
|
||||
compat_ssize_t sys32_pwrite64(unsigned int fd, char __user *ubuf, compat_size_t count,
|
||||
compat_ssize_t compat_sys_pwrite64(unsigned int fd, char __user *ubuf, compat_size_t count,
|
||||
u32 reg6, u32 poshi, u32 poslo)
|
||||
{
|
||||
return sys_pwrite64(fd, ubuf, count, ((loff_t)poshi << 32) | poslo);
|
||||
}
|
||||
|
||||
compat_ssize_t sys32_readahead(int fd, u32 r4, u32 offhi, u32 offlo, u32 count)
|
||||
compat_ssize_t compat_sys_readahead(int fd, u32 r4, u32 offhi, u32 offlo, u32 count)
|
||||
{
|
||||
return sys_readahead(fd, ((loff_t)offhi << 32) | offlo, count);
|
||||
}
|
||||
|
||||
asmlinkage int sys32_truncate64(const char __user * path, u32 reg4,
|
||||
asmlinkage int compat_sys_truncate64(const char __user * path, u32 reg4,
|
||||
unsigned long high, unsigned long low)
|
||||
{
|
||||
return sys_truncate(path, (high << 32) | low);
|
||||
}
|
||||
|
||||
asmlinkage int sys32_ftruncate64(unsigned int fd, u32 reg4, unsigned long high,
|
||||
asmlinkage int compat_sys_ftruncate64(unsigned int fd, u32 reg4, unsigned long high,
|
||||
unsigned long low)
|
||||
{
|
||||
return sys_ftruncate(fd, (high << 32) | low);
|
||||
@ -1101,7 +989,7 @@ long ppc32_timer_create(clockid_t clock,
|
||||
return err;
|
||||
}
|
||||
|
||||
asmlinkage long sys32_add_key(const char __user *_type,
|
||||
asmlinkage long compat_sys_add_key(const char __user *_type,
|
||||
const char __user *_description,
|
||||
const void __user *_payload,
|
||||
u32 plen,
|
||||
@ -1110,7 +998,7 @@ asmlinkage long sys32_add_key(const char __user *_type,
|
||||
return sys_add_key(_type, _description, _payload, plen, ringid);
|
||||
}
|
||||
|
||||
asmlinkage long sys32_request_key(const char __user *_type,
|
||||
asmlinkage long compat_sys_request_key(const char __user *_type,
|
||||
const char __user *_description,
|
||||
const char __user *_callout_info,
|
||||
u32 destringid)
|
||||
|
@ -19,15 +19,13 @@
|
||||
|
||||
#ifdef CONFIG_PPC64
|
||||
#define SYSCALL(func) .llong .sys_##func,.sys_##func
|
||||
#define SYSCALL32(func) .llong .sys_##func,.sys32_##func
|
||||
#define COMPAT_SYS(func) .llong .sys_##func,.compat_sys_##func
|
||||
#define PPC_SYS(func) .llong .ppc_##func,.ppc_##func
|
||||
#define OLDSYS(func) .llong .sys_ni_syscall,.sys_ni_syscall
|
||||
#define SYS32ONLY(func) .llong .sys_ni_syscall,.sys32_##func
|
||||
#define SYS32ONLY(func) .llong .sys_ni_syscall,.compat_sys_##func
|
||||
#define SYSX(f, f3264, f32) .llong .f,.f3264
|
||||
#else
|
||||
#define SYSCALL(func) .long sys_##func
|
||||
#define SYSCALL32(func) .long sys_##func
|
||||
#define COMPAT_SYS(func) .long sys_##func
|
||||
#define PPC_SYS(func) .long ppc_##func
|
||||
#define OLDSYS(func) .long sys_##func
|
||||
@ -50,11 +48,11 @@ SYSCALL(read)
|
||||
SYSCALL(write)
|
||||
COMPAT_SYS(open)
|
||||
SYSCALL(close)
|
||||
SYSCALL32(waitpid)
|
||||
SYSCALL32(creat)
|
||||
COMPAT_SYS(waitpid)
|
||||
COMPAT_SYS(creat)
|
||||
SYSCALL(link)
|
||||
SYSCALL(unlink)
|
||||
SYSCALL32(execve)
|
||||
COMPAT_SYS(execve)
|
||||
SYSCALL(chdir)
|
||||
SYSX(sys64_time,compat_sys_time,sys_time)
|
||||
SYSCALL(mknod)
|
||||
@ -69,20 +67,20 @@ SYSX(sys_ni_syscall,sys_oldumount,sys_oldumount)
|
||||
SYSCALL(setuid)
|
||||
SYSCALL(getuid)
|
||||
COMPAT_SYS(stime)
|
||||
SYSCALL32(ptrace)
|
||||
COMPAT_SYS(ptrace)
|
||||
SYSCALL(alarm)
|
||||
OLDSYS(fstat)
|
||||
SYSCALL32(pause)
|
||||
COMPAT_SYS(pause)
|
||||
COMPAT_SYS(utime)
|
||||
SYSCALL(ni_syscall)
|
||||
SYSCALL(ni_syscall)
|
||||
SYSCALL32(access)
|
||||
SYSCALL32(nice)
|
||||
COMPAT_SYS(access)
|
||||
COMPAT_SYS(nice)
|
||||
SYSCALL(ni_syscall)
|
||||
SYSCALL(sync)
|
||||
SYSCALL32(kill)
|
||||
COMPAT_SYS(kill)
|
||||
SYSCALL(rename)
|
||||
SYSCALL32(mkdir)
|
||||
COMPAT_SYS(mkdir)
|
||||
SYSCALL(rmdir)
|
||||
SYSCALL(dup)
|
||||
SYSCALL(pipe)
|
||||
@ -100,10 +98,10 @@ SYSCALL(ni_syscall)
|
||||
COMPAT_SYS(ioctl)
|
||||
COMPAT_SYS(fcntl)
|
||||
SYSCALL(ni_syscall)
|
||||
SYSCALL32(setpgid)
|
||||
COMPAT_SYS(setpgid)
|
||||
SYSCALL(ni_syscall)
|
||||
SYSX(sys_ni_syscall,sys_olduname, sys_olduname)
|
||||
SYSCALL32(umask)
|
||||
COMPAT_SYS(umask)
|
||||
SYSCALL(chroot)
|
||||
SYSCALL(ustat)
|
||||
SYSCALL(dup2)
|
||||
@ -112,23 +110,23 @@ SYSCALL(getpgrp)
|
||||
SYSCALL(setsid)
|
||||
SYS32ONLY(sigaction)
|
||||
SYSCALL(sgetmask)
|
||||
SYSCALL32(ssetmask)
|
||||
COMPAT_SYS(ssetmask)
|
||||
SYSCALL(setreuid)
|
||||
SYSCALL(setregid)
|
||||
SYSX(sys_ni_syscall,ppc32_sigsuspend,ppc_sigsuspend)
|
||||
COMPAT_SYS(sigpending)
|
||||
SYSCALL32(sethostname)
|
||||
COMPAT_SYS(sethostname)
|
||||
COMPAT_SYS(setrlimit)
|
||||
COMPAT_SYS(old_getrlimit)
|
||||
COMPAT_SYS(getrusage)
|
||||
SYSCALL32(gettimeofday)
|
||||
SYSCALL32(settimeofday)
|
||||
SYSCALL32(getgroups)
|
||||
SYSCALL32(setgroups)
|
||||
COMPAT_SYS(gettimeofday)
|
||||
COMPAT_SYS(settimeofday)
|
||||
COMPAT_SYS(getgroups)
|
||||
COMPAT_SYS(setgroups)
|
||||
SYSX(sys_ni_syscall,sys_ni_syscall,ppc_select)
|
||||
SYSCALL(symlink)
|
||||
OLDSYS(lstat)
|
||||
SYSCALL32(readlink)
|
||||
COMPAT_SYS(readlink)
|
||||
SYSCALL(uselib)
|
||||
SYSCALL(swapon)
|
||||
SYSCALL(reboot)
|
||||
@ -139,14 +137,14 @@ SYSCALL(truncate)
|
||||
SYSCALL(ftruncate)
|
||||
SYSCALL(fchmod)
|
||||
SYSCALL(fchown)
|
||||
SYSCALL32(getpriority)
|
||||
SYSCALL32(setpriority)
|
||||
COMPAT_SYS(getpriority)
|
||||
COMPAT_SYS(setpriority)
|
||||
SYSCALL(ni_syscall)
|
||||
COMPAT_SYS(statfs)
|
||||
COMPAT_SYS(fstatfs)
|
||||
SYSCALL(ni_syscall)
|
||||
COMPAT_SYS(socketcall)
|
||||
SYSCALL32(syslog)
|
||||
COMPAT_SYS(syslog)
|
||||
COMPAT_SYS(setitimer)
|
||||
COMPAT_SYS(getitimer)
|
||||
COMPAT_SYS(newstat)
|
||||
@ -159,15 +157,15 @@ SYSCALL(ni_syscall)
|
||||
SYSCALL(ni_syscall)
|
||||
COMPAT_SYS(wait4)
|
||||
SYSCALL(swapoff)
|
||||
SYSCALL32(sysinfo)
|
||||
SYSCALL32(ipc)
|
||||
COMPAT_SYS(sysinfo)
|
||||
COMPAT_SYS(ipc)
|
||||
SYSCALL(fsync)
|
||||
SYSX(sys_ni_syscall,ppc32_sigreturn,sys_sigreturn)
|
||||
PPC_SYS(clone)
|
||||
SYSCALL32(setdomainname)
|
||||
COMPAT_SYS(setdomainname)
|
||||
PPC_SYS(newuname)
|
||||
SYSCALL(ni_syscall)
|
||||
SYSCALL32(adjtimex)
|
||||
COMPAT_SYS(adjtimex)
|
||||
SYSCALL(mprotect)
|
||||
SYSX(sys_ni_syscall,compat_sys_sigprocmask,sys_sigprocmask)
|
||||
SYSCALL(ni_syscall)
|
||||
@ -175,36 +173,36 @@ SYSCALL(init_module)
|
||||
SYSCALL(delete_module)
|
||||
SYSCALL(ni_syscall)
|
||||
SYSCALL(quotactl)
|
||||
SYSCALL32(getpgid)
|
||||
COMPAT_SYS(getpgid)
|
||||
SYSCALL(fchdir)
|
||||
SYSCALL(bdflush)
|
||||
SYSCALL32(sysfs)
|
||||
COMPAT_SYS(sysfs)
|
||||
SYSX(ppc64_personality,ppc64_personality,sys_personality)
|
||||
SYSCALL(ni_syscall)
|
||||
SYSCALL(setfsuid)
|
||||
SYSCALL(setfsgid)
|
||||
SYSCALL(llseek)
|
||||
SYSCALL32(getdents)
|
||||
COMPAT_SYS(getdents)
|
||||
SYSX(sys_select,ppc32_select,ppc_select)
|
||||
SYSCALL(flock)
|
||||
SYSCALL(msync)
|
||||
COMPAT_SYS(readv)
|
||||
COMPAT_SYS(writev)
|
||||
SYSCALL32(getsid)
|
||||
COMPAT_SYS(getsid)
|
||||
SYSCALL(fdatasync)
|
||||
SYSCALL32(sysctl)
|
||||
COMPAT_SYS(sysctl)
|
||||
SYSCALL(mlock)
|
||||
SYSCALL(munlock)
|
||||
SYSCALL(mlockall)
|
||||
SYSCALL(munlockall)
|
||||
SYSCALL32(sched_setparam)
|
||||
SYSCALL32(sched_getparam)
|
||||
SYSCALL32(sched_setscheduler)
|
||||
SYSCALL32(sched_getscheduler)
|
||||
COMPAT_SYS(sched_setparam)
|
||||
COMPAT_SYS(sched_getparam)
|
||||
COMPAT_SYS(sched_setscheduler)
|
||||
COMPAT_SYS(sched_getscheduler)
|
||||
SYSCALL(sched_yield)
|
||||
SYSCALL32(sched_get_priority_max)
|
||||
SYSCALL32(sched_get_priority_min)
|
||||
SYSCALL32(sched_rr_get_interval)
|
||||
COMPAT_SYS(sched_get_priority_max)
|
||||
COMPAT_SYS(sched_get_priority_min)
|
||||
COMPAT_SYS(sched_rr_get_interval)
|
||||
COMPAT_SYS(nanosleep)
|
||||
SYSCALL(mremap)
|
||||
SYSCALL(setresuid)
|
||||
@ -214,36 +212,36 @@ SYSCALL(poll)
|
||||
COMPAT_SYS(nfsservctl)
|
||||
SYSCALL(setresgid)
|
||||
SYSCALL(getresgid)
|
||||
SYSCALL32(prctl)
|
||||
COMPAT_SYS(prctl)
|
||||
SYSX(ppc64_rt_sigreturn,ppc32_rt_sigreturn,sys_rt_sigreturn)
|
||||
SYSCALL32(rt_sigaction)
|
||||
SYSCALL32(rt_sigprocmask)
|
||||
SYSCALL32(rt_sigpending)
|
||||
COMPAT_SYS(rt_sigaction)
|
||||
COMPAT_SYS(rt_sigprocmask)
|
||||
COMPAT_SYS(rt_sigpending)
|
||||
COMPAT_SYS(rt_sigtimedwait)
|
||||
SYSCALL32(rt_sigqueueinfo)
|
||||
COMPAT_SYS(rt_sigqueueinfo)
|
||||
SYSX(ppc64_rt_sigsuspend,ppc32_rt_sigsuspend,ppc_rt_sigsuspend)
|
||||
SYSCALL32(pread64)
|
||||
SYSCALL32(pwrite64)
|
||||
COMPAT_SYS(pread64)
|
||||
COMPAT_SYS(pwrite64)
|
||||
SYSCALL(chown)
|
||||
SYSCALL(getcwd)
|
||||
SYSCALL(capget)
|
||||
SYSCALL(capset)
|
||||
SYSCALL32(sigaltstack)
|
||||
SYSX(sys_sendfile64,sys32_sendfile,sys_sendfile)
|
||||
COMPAT_SYS(sigaltstack)
|
||||
SYSX(sys_sendfile64,compat_sys_sendfile,sys_sendfile)
|
||||
SYSCALL(ni_syscall)
|
||||
SYSCALL(ni_syscall)
|
||||
PPC_SYS(vfork)
|
||||
COMPAT_SYS(getrlimit)
|
||||
SYSCALL32(readahead)
|
||||
COMPAT_SYS(readahead)
|
||||
SYS32ONLY(mmap2)
|
||||
SYS32ONLY(truncate64)
|
||||
SYS32ONLY(ftruncate64)
|
||||
SYSX(sys_ni_syscall,sys_stat64,sys_stat64)
|
||||
SYSX(sys_ni_syscall,sys_lstat64,sys_lstat64)
|
||||
SYSX(sys_ni_syscall,sys_fstat64,sys_fstat64)
|
||||
SYSCALL32(pciconfig_read)
|
||||
SYSCALL32(pciconfig_write)
|
||||
SYSCALL32(pciconfig_iobase)
|
||||
COMPAT_SYS(pciconfig_read)
|
||||
COMPAT_SYS(pciconfig_write)
|
||||
COMPAT_SYS(pciconfig_iobase)
|
||||
SYSCALL(ni_syscall)
|
||||
SYSCALL(getdents64)
|
||||
SYSCALL(pivot_root)
|
||||
@ -293,8 +291,8 @@ COMPAT_SYS(clock_gettime)
|
||||
COMPAT_SYS(clock_getres)
|
||||
COMPAT_SYS(clock_nanosleep)
|
||||
SYSX(ppc64_swapcontext,ppc32_swapcontext,ppc_swapcontext)
|
||||
SYSCALL32(tgkill)
|
||||
SYSCALL32(utimes)
|
||||
COMPAT_SYS(tgkill)
|
||||
COMPAT_SYS(utimes)
|
||||
COMPAT_SYS(statfs64)
|
||||
COMPAT_SYS(fstatfs64)
|
||||
SYSX(sys_ni_syscall, ppc_fadvise64_64, ppc_fadvise64_64)
|
||||
@ -312,12 +310,12 @@ COMPAT_SYS(mq_timedreceive)
|
||||
COMPAT_SYS(mq_notify)
|
||||
COMPAT_SYS(mq_getsetattr)
|
||||
COMPAT_SYS(kexec_load)
|
||||
SYSCALL32(add_key)
|
||||
SYSCALL32(request_key)
|
||||
COMPAT_SYS(add_key)
|
||||
COMPAT_SYS(request_key)
|
||||
COMPAT_SYS(keyctl)
|
||||
COMPAT_SYS(waitid)
|
||||
SYSCALL32(ioprio_set)
|
||||
SYSCALL32(ioprio_get)
|
||||
COMPAT_SYS(ioprio_set)
|
||||
COMPAT_SYS(ioprio_get)
|
||||
SYSCALL(inotify_init)
|
||||
SYSCALL(inotify_add_watch)
|
||||
SYSCALL(inotify_rm_watch)
|
||||
|
@ -265,7 +265,7 @@ _GLOBAL(save_nvgprs)
|
||||
*/
|
||||
_GLOBAL(ppc32_sigsuspend)
|
||||
bl .save_nvgprs
|
||||
bl .sys32_sigsuspend
|
||||
bl .compat_sys_sigsuspend
|
||||
b 70f
|
||||
|
||||
_GLOBAL(ppc64_rt_sigsuspend)
|
||||
@ -275,7 +275,7 @@ _GLOBAL(ppc64_rt_sigsuspend)
|
||||
|
||||
_GLOBAL(ppc32_rt_sigsuspend)
|
||||
bl .save_nvgprs
|
||||
bl .sys32_rt_sigsuspend
|
||||
bl .compat_sys_rt_sigsuspend
|
||||
70: cmpdi 0,r3,0
|
||||
/* If it returned an error, we need to return via syscall_exit to set
|
||||
the SO bit in cr0 and potentially stop for ptrace. */
|
||||
@ -310,7 +310,7 @@ _GLOBAL(ppc_clone)
|
||||
|
||||
_GLOBAL(ppc32_swapcontext)
|
||||
bl .save_nvgprs
|
||||
bl .sys32_swapcontext
|
||||
bl .compat_sys_swapcontext
|
||||
b 80f
|
||||
|
||||
_GLOBAL(ppc64_swapcontext)
|
||||
@ -319,11 +319,11 @@ _GLOBAL(ppc64_swapcontext)
|
||||
b 80f
|
||||
|
||||
_GLOBAL(ppc32_sigreturn)
|
||||
bl .sys32_sigreturn
|
||||
bl .compat_sys_sigreturn
|
||||
b 80f
|
||||
|
||||
_GLOBAL(ppc32_rt_sigreturn)
|
||||
bl .sys32_rt_sigreturn
|
||||
bl .compat_sys_rt_sigreturn
|
||||
b 80f
|
||||
|
||||
_GLOBAL(ppc64_rt_sigreturn)
|
||||
|
@ -928,11 +928,11 @@ _GLOBAL(sys_call_table32)
|
||||
.llong .sys_write
|
||||
.llong .compat_sys_open /* 5 */
|
||||
.llong .sys_close
|
||||
.llong .sys32_waitpid
|
||||
.llong .sys32_creat
|
||||
.llong .compat_sys_waitpid
|
||||
.llong .compat_sys_creat
|
||||
.llong .sys_link
|
||||
.llong .sys_unlink /* 10 */
|
||||
.llong .sys32_execve
|
||||
.llong .compat_sys_execve
|
||||
.llong .sys_chdir
|
||||
.llong .compat_sys_time
|
||||
.llong .sys_mknod
|
||||
@ -947,20 +947,20 @@ _GLOBAL(sys_call_table32)
|
||||
.llong .sys_setuid
|
||||
.llong .sys_getuid
|
||||
.llong .compat_sys_stime /* 25 */
|
||||
.llong .sys32_ptrace
|
||||
.llong .compat_sys_ptrace
|
||||
.llong .sys_alarm
|
||||
.llong .sys_ni_syscall /* old fstat syscall */
|
||||
.llong .sys32_pause
|
||||
.llong .compat_sys_pause
|
||||
.llong .compat_sys_utime /* 30 */
|
||||
.llong .sys_ni_syscall /* old stty syscall */
|
||||
.llong .sys_ni_syscall /* old gtty syscall */
|
||||
.llong .sys32_access
|
||||
.llong .sys32_nice
|
||||
.llong .compat_sys_access
|
||||
.llong .compat_sys_nice
|
||||
.llong .sys_ni_syscall /* 35 - old ftime syscall */
|
||||
.llong .sys_sync
|
||||
.llong .sys32_kill
|
||||
.llong .compat_sys_kill
|
||||
.llong .sys_rename
|
||||
.llong .sys32_mkdir
|
||||
.llong .compat_sys_mkdir
|
||||
.llong .sys_rmdir /* 40 */
|
||||
.llong .sys_dup
|
||||
.llong .sys_pipe
|
||||
@ -978,35 +978,35 @@ _GLOBAL(sys_call_table32)
|
||||
.llong .compat_sys_ioctl
|
||||
.llong .compat_sys_fcntl /* 55 */
|
||||
.llong .sys_ni_syscall /* old mpx syscall */
|
||||
.llong .sys32_setpgid
|
||||
.llong .compat_sys_setpgid
|
||||
.llong .sys_ni_syscall /* old ulimit syscall */
|
||||
.llong .sys_olduname
|
||||
.llong .sys32_umask /* 60 */
|
||||
.llong .compat_sys_umask /* 60 */
|
||||
.llong .sys_chroot
|
||||
.llong .sys_ustat
|
||||
.llong .sys_dup2
|
||||
.llong .sys_getppid
|
||||
.llong .sys_getpgrp /* 65 */
|
||||
.llong .sys_setsid
|
||||
.llong .sys32_sigaction
|
||||
.llong .compat_sys_sigaction
|
||||
.llong .sys_sgetmask
|
||||
.llong .sys32_ssetmask
|
||||
.llong .compat_sys_ssetmask
|
||||
.llong .sys_setreuid /* 70 */
|
||||
.llong .sys_setregid
|
||||
.llong .ppc32_sigsuspend
|
||||
.llong .compat_sys_sigpending
|
||||
.llong .sys32_sethostname
|
||||
.llong .compat_sys_sethostname
|
||||
.llong .compat_sys_setrlimit /* 75 */
|
||||
.llong .compat_sys_old_getrlimit
|
||||
.llong .compat_sys_getrusage
|
||||
.llong .sys32_gettimeofday
|
||||
.llong .sys32_settimeofday
|
||||
.llong .sys32_getgroups /* 80 */
|
||||
.llong .sys32_setgroups
|
||||
.llong .compat_sys_gettimeofday
|
||||
.llong .compat_sys_settimeofday
|
||||
.llong .compat_sys_getgroups /* 80 */
|
||||
.llong .compat_sys_setgroups
|
||||
.llong .sys_ni_syscall /* old select syscall */
|
||||
.llong .sys_symlink
|
||||
.llong .sys_ni_syscall /* old lstat syscall */
|
||||
.llong .sys32_readlink /* 85 */
|
||||
.llong .compat_sys_readlink /* 85 */
|
||||
.llong .sys_uselib
|
||||
.llong .sys_swapon
|
||||
.llong .sys_reboot
|
||||
@ -1017,14 +1017,14 @@ _GLOBAL(sys_call_table32)
|
||||
.llong .sys_ftruncate
|
||||
.llong .sys_fchmod
|
||||
.llong .sys_fchown /* 95 */
|
||||
.llong .sys32_getpriority
|
||||
.llong .sys32_setpriority
|
||||
.llong .compat_sys_getpriority
|
||||
.llong .compat_sys_setpriority
|
||||
.llong .sys_ni_syscall /* old profil syscall */
|
||||
.llong .compat_sys_statfs
|
||||
.llong .compat_sys_fstatfs /* 100 */
|
||||
.llong .sys_ni_syscall /* old ioperm syscall */
|
||||
.llong .compat_sys_socketcall
|
||||
.llong .sys32_syslog
|
||||
.llong .compat_sys_syslog
|
||||
.llong .compat_sys_setitimer
|
||||
.llong .compat_sys_getitimer /* 105 */
|
||||
.llong .compat_sys_newstat
|
||||
@ -1037,15 +1037,15 @@ _GLOBAL(sys_call_table32)
|
||||
.llong .sys_ni_syscall /* old vm86 syscall */
|
||||
.llong .compat_sys_wait4
|
||||
.llong .sys_swapoff /* 115 */
|
||||
.llong .sys32_sysinfo
|
||||
.llong .sys32_ipc
|
||||
.llong .compat_sys_sysinfo
|
||||
.llong .compat_sys_ipc
|
||||
.llong .sys_fsync
|
||||
.llong .ppc32_sigreturn
|
||||
.llong .ppc_clone /* 120 */
|
||||
.llong .sys32_setdomainname
|
||||
.llong .compat_sys_setdomainname
|
||||
.llong .ppc_newuname
|
||||
.llong .sys_ni_syscall /* old modify_ldt syscall */
|
||||
.llong .sys32_adjtimex
|
||||
.llong .compat_sys_adjtimex
|
||||
.llong .sys_mprotect /* 125 */
|
||||
.llong .compat_sys_sigprocmask
|
||||
.llong .sys_ni_syscall /* old create_module syscall */
|
||||
@ -1053,36 +1053,36 @@ _GLOBAL(sys_call_table32)
|
||||
.llong .sys_delete_module
|
||||
.llong .sys_ni_syscall /* 130 old get_kernel_syms syscall */
|
||||
.llong .sys_quotactl
|
||||
.llong .sys32_getpgid
|
||||
.llong .compat_sys_getpgid
|
||||
.llong .sys_fchdir
|
||||
.llong .sys_bdflush
|
||||
.llong .sys32_sysfs /* 135 */
|
||||
.llong .compat_sys_sysfs /* 135 */
|
||||
.llong .ppc64_personality
|
||||
.llong .sys_ni_syscall /* for afs_syscall */
|
||||
.llong .sys_setfsuid
|
||||
.llong .sys_setfsgid
|
||||
.llong .sys_llseek /* 140 */
|
||||
.llong .sys32_getdents
|
||||
.llong .compat_sys_getdents
|
||||
.llong .ppc32_select
|
||||
.llong .sys_flock
|
||||
.llong .sys_msync
|
||||
.llong .compat_sys_readv /* 145 */
|
||||
.llong .compat_sys_writev
|
||||
.llong .sys32_getsid
|
||||
.llong .compat_sys_getsid
|
||||
.llong .sys_fdatasync
|
||||
.llong .sys32_sysctl
|
||||
.llong .compat_sys_sysctl
|
||||
.llong .sys_mlock /* 150 */
|
||||
.llong .sys_munlock
|
||||
.llong .sys_mlockall
|
||||
.llong .sys_munlockall
|
||||
.llong .sys32_sched_setparam
|
||||
.llong .sys32_sched_getparam /* 155 */
|
||||
.llong .sys32_sched_setscheduler
|
||||
.llong .sys32_sched_getscheduler
|
||||
.llong .compat_sys_sched_setparam
|
||||
.llong .compat_sys_sched_getparam /* 155 */
|
||||
.llong .compat_sys_sched_setscheduler
|
||||
.llong .compat_sys_sched_getscheduler
|
||||
.llong .sys_sched_yield
|
||||
.llong .sys32_sched_get_priority_max
|
||||
.llong .sys32_sched_get_priority_min /* 160 */
|
||||
.llong .sys32_sched_rr_get_interval
|
||||
.llong .compat_sys_sched_get_priority_max
|
||||
.llong .compat_sys_sched_get_priority_min /* 160 */
|
||||
.llong .compat_sys_sched_rr_get_interval
|
||||
.llong .compat_sys_nanosleep
|
||||
.llong .sys_mremap
|
||||
.llong .sys_setresuid
|
||||
@ -1092,36 +1092,36 @@ _GLOBAL(sys_call_table32)
|
||||
.llong .compat_sys_nfsservctl
|
||||
.llong .sys_setresgid
|
||||
.llong .sys_getresgid /* 170 */
|
||||
.llong .sys32_prctl
|
||||
.llong .compat_sys_prctl
|
||||
.llong .ppc32_rt_sigreturn
|
||||
.llong .sys32_rt_sigaction
|
||||
.llong .sys32_rt_sigprocmask
|
||||
.llong .sys32_rt_sigpending /* 175 */
|
||||
.llong .compat_sys_rt_sigaction
|
||||
.llong .compat_sys_rt_sigprocmask
|
||||
.llong .compat_sys_rt_sigpending /* 175 */
|
||||
.llong .compat_sys_rt_sigtimedwait
|
||||
.llong .sys32_rt_sigqueueinfo
|
||||
.llong .compat_sys_rt_sigqueueinfo
|
||||
.llong .ppc32_rt_sigsuspend
|
||||
.llong .sys32_pread64
|
||||
.llong .sys32_pwrite64 /* 180 */
|
||||
.llong .compat_sys_pread64
|
||||
.llong .compat_sys_pwrite64 /* 180 */
|
||||
.llong .sys_chown
|
||||
.llong .sys_getcwd
|
||||
.llong .sys_capget
|
||||
.llong .sys_capset
|
||||
.llong .sys32_sigaltstack /* 185 */
|
||||
.llong .sys32_sendfile
|
||||
.llong .compat_sys_sigaltstack /* 185 */
|
||||
.llong .compat_sys_sendfile
|
||||
.llong .sys_ni_syscall /* reserved for streams1 */
|
||||
.llong .sys_ni_syscall /* reserved for streams2 */
|
||||
.llong .ppc_vfork
|
||||
.llong .compat_sys_getrlimit /* 190 */
|
||||
.llong .sys32_readahead
|
||||
.llong .sys32_mmap2
|
||||
.llong .sys32_truncate64
|
||||
.llong .sys32_ftruncate64
|
||||
.llong .compat_sys_readahead
|
||||
.llong .compat_sys_mmap2
|
||||
.llong .compat_sys_truncate64
|
||||
.llong .compat_sys_ftruncate64
|
||||
.llong .sys_stat64 /* 195 */
|
||||
.llong .sys_lstat64
|
||||
.llong .sys_fstat64
|
||||
.llong .sys32_pciconfig_read
|
||||
.llong .sys32_pciconfig_write
|
||||
.llong .sys32_pciconfig_iobase /* 200 - pciconfig_iobase */
|
||||
.llong .compat_sys_pciconfig_read
|
||||
.llong .compat_sys_pciconfig_write
|
||||
.llong .compat_sys_pciconfig_iobase /* 200 - pciconfig_iobase */
|
||||
.llong .sys_ni_syscall /* reserved for MacOnLinux */
|
||||
.llong .sys_getdents64
|
||||
.llong .sys_pivot_root
|
||||
@ -1147,7 +1147,7 @@ _GLOBAL(sys_call_table32)
|
||||
.llong .compat_sys_sched_getaffinity
|
||||
.llong .sys_ni_syscall
|
||||
.llong .sys_ni_syscall /* 225 - reserved for tux */
|
||||
.llong .sys32_sendfile64
|
||||
.llong .compat_sys_sendfile64
|
||||
.llong .compat_sys_io_setup
|
||||
.llong .sys_io_destroy
|
||||
.llong .compat_sys_io_getevents
|
||||
@ -1171,8 +1171,8 @@ _GLOBAL(sys_call_table32)
|
||||
.llong .compat_sys_clock_getres
|
||||
.llong .compat_sys_clock_nanosleep
|
||||
.llong .ppc32_swapcontext
|
||||
.llong .sys32_tgkill /* 250 */
|
||||
.llong .sys32_utimes
|
||||
.llong .compat_sys_tgkill /* 250 */
|
||||
.llong .compat_sys_utimes
|
||||
.llong .compat_sys_statfs64
|
||||
.llong .compat_sys_fstatfs64
|
||||
.llong .ppc_fadvise64_64 /* 32bit only fadvise64_64 */
|
||||
@ -1190,12 +1190,12 @@ _GLOBAL(sys_call_table32)
|
||||
.llong .compat_sys_mq_notify
|
||||
.llong .compat_sys_mq_getsetattr
|
||||
.llong .compat_sys_kexec_load
|
||||
.llong .sys32_add_key
|
||||
.llong .sys32_request_key /* 270 */
|
||||
.llong .compat_sys_add_key
|
||||
.llong .compat_sys_request_key /* 270 */
|
||||
.llong .compat_sys_keyctl
|
||||
.llong .compat_sys_waitid
|
||||
.llong .sys32_ioprio_set
|
||||
.llong .sys32_ioprio_get
|
||||
.llong .compat_sys_ioprio_set
|
||||
.llong .compat_sys_ioprio_get
|
||||
.llong .sys_inotify_init /* 275 */
|
||||
.llong .sys_inotify_add_watch
|
||||
.llong .sys_inotify_rm_watch
|
||||
|
@ -40,7 +40,7 @@
|
||||
* in exit.c or in signal.c.
|
||||
*/
|
||||
|
||||
int sys32_ptrace(long request, long pid, unsigned long addr, unsigned long data)
|
||||
int compat_sys_ptrace(long request, long pid, unsigned long addr, unsigned long data)
|
||||
{
|
||||
struct task_struct *child;
|
||||
int ret = -EPERM;
|
||||
|
Loading…
Reference in New Issue
Block a user