Commit 7187adbf authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus

* 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
  Revert "MIPS: Print irq handler description"
  MIPS: CVE-2009-0029: Enable syscall wrappers.
  MIPS: Alchemy: In plat_time_init() t reaches -1, tested: 0
  MIPS: Only allow Cavium OCTEON to be configured for boards that support it
parents 535d8e8f 5312dc6b
...@@ -603,7 +603,7 @@ config CAVIUM_OCTEON_SIMULATOR ...@@ -603,7 +603,7 @@ config CAVIUM_OCTEON_SIMULATOR
select SYS_SUPPORTS_64BIT_KERNEL select SYS_SUPPORTS_64BIT_KERNEL
select SYS_SUPPORTS_BIG_ENDIAN select SYS_SUPPORTS_BIG_ENDIAN
select SYS_SUPPORTS_HIGHMEM select SYS_SUPPORTS_HIGHMEM
select CPU_CAVIUM_OCTEON select SYS_HAS_CPU_CAVIUM_OCTEON
help help
The Octeon simulator is software performance model of the Cavium The Octeon simulator is software performance model of the Cavium
Octeon Processor. It supports simulating Octeon processors on x86 Octeon Processor. It supports simulating Octeon processors on x86
...@@ -618,7 +618,7 @@ config CAVIUM_OCTEON_REFERENCE_BOARD ...@@ -618,7 +618,7 @@ config CAVIUM_OCTEON_REFERENCE_BOARD
select SYS_SUPPORTS_BIG_ENDIAN select SYS_SUPPORTS_BIG_ENDIAN
select SYS_SUPPORTS_HIGHMEM select SYS_SUPPORTS_HIGHMEM
select SYS_HAS_EARLY_PRINTK select SYS_HAS_EARLY_PRINTK
select CPU_CAVIUM_OCTEON select SYS_HAS_CPU_CAVIUM_OCTEON
select SWAP_IO_SPACE select SWAP_IO_SPACE
help help
This option supports all of the Octeon reference boards from Cavium This option supports all of the Octeon reference boards from Cavium
...@@ -1234,6 +1234,7 @@ config CPU_SB1 ...@@ -1234,6 +1234,7 @@ config CPU_SB1
config CPU_CAVIUM_OCTEON config CPU_CAVIUM_OCTEON
bool "Cavium Octeon processor" bool "Cavium Octeon processor"
depends on SYS_HAS_CPU_CAVIUM_OCTEON
select IRQ_CPU select IRQ_CPU
select IRQ_CPU_OCTEON select IRQ_CPU_OCTEON
select CPU_HAS_PREFETCH select CPU_HAS_PREFETCH
...@@ -1314,6 +1315,9 @@ config SYS_HAS_CPU_RM9000 ...@@ -1314,6 +1315,9 @@ config SYS_HAS_CPU_RM9000
config SYS_HAS_CPU_SB1 config SYS_HAS_CPU_SB1
bool bool
config SYS_HAS_CPU_CAVIUM_OCTEON
bool
# #
# CPU may reorder R->R, R->W, W->R, W->W # CPU may reorder R->R, R->W, W->R, W->W
# Reordering beyond LL and SC is handled in WEAK_REORDERING_BEYOND_LLSC # Reordering beyond LL and SC is handled in WEAK_REORDERING_BEYOND_LLSC
...@@ -1387,6 +1391,7 @@ config 32BIT ...@@ -1387,6 +1391,7 @@ config 32BIT
config 64BIT config 64BIT
bool "64-bit kernel" bool "64-bit kernel"
depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL
select HAVE_SYSCALL_WRAPPERS
help help
Select this option if you want to build a 64-bit kernel. Select this option if you want to build a 64-bit kernel.
......
...@@ -118,7 +118,7 @@ void __init plat_time_init(void) ...@@ -118,7 +118,7 @@ void __init plat_time_init(void)
* setup counter 1 (RTC) to tick at full speed * setup counter 1 (RTC) to tick at full speed
*/ */
t = 0xffffff; t = 0xffffff;
while ((au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_T1S) && t--) while ((au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_T1S) && --t)
asm volatile ("nop"); asm volatile ("nop");
if (!t) if (!t)
goto cntr_err; goto cntr_err;
...@@ -127,7 +127,7 @@ void __init plat_time_init(void) ...@@ -127,7 +127,7 @@ void __init plat_time_init(void)
au_sync(); au_sync();
t = 0xffffff; t = 0xffffff;
while ((au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_C1S) && t--) while ((au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_C1S) && --t)
asm volatile ("nop"); asm volatile ("nop");
if (!t) if (!t)
goto cntr_err; goto cntr_err;
...@@ -135,7 +135,7 @@ void __init plat_time_init(void) ...@@ -135,7 +135,7 @@ void __init plat_time_init(void)
au_sync(); au_sync();
t = 0xffffff; t = 0xffffff;
while ((au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_C1S) && t--) while ((au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_C1S) && --t)
asm volatile ("nop"); asm volatile ("nop");
if (!t) if (!t)
goto cntr_err; goto cntr_err;
......
...@@ -111,7 +111,6 @@ int show_interrupts(struct seq_file *p, void *v) ...@@ -111,7 +111,6 @@ int show_interrupts(struct seq_file *p, void *v)
seq_printf(p, "%10u ", kstat_cpu(j).irqs[i]); seq_printf(p, "%10u ", kstat_cpu(j).irqs[i]);
#endif #endif
seq_printf(p, " %14s", irq_desc[i].chip->name); seq_printf(p, " %14s", irq_desc[i].chip->name);
seq_printf(p, "-%-8s", irq_desc[i].name);
seq_printf(p, " %s", action->name); seq_printf(p, " %s", action->name);
for (action=action->next; action; action = action->next) for (action=action->next; action; action = action->next)
......
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/binfmts.h> #include <linux/binfmts.h>
#include <linux/security.h> #include <linux/security.h>
#include <linux/syscalls.h>
#include <linux/compat.h> #include <linux/compat.h>
#include <linux/vfs.h> #include <linux/vfs.h>
#include <linux/ipc.h> #include <linux/ipc.h>
...@@ -63,9 +64,9 @@ ...@@ -63,9 +64,9 @@
#define merge_64(r1, r2) ((((r2) & 0xffffffffUL) << 32) + ((r1) & 0xffffffffUL)) #define merge_64(r1, r2) ((((r2) & 0xffffffffUL) << 32) + ((r1) & 0xffffffffUL))
#endif #endif
asmlinkage unsigned long SYSCALL_DEFINE6(32_mmap2, unsigned long, addr, unsigned long, len,
sys32_mmap2(unsigned long addr, unsigned long len, unsigned long prot, unsigned long, prot, unsigned long, flags, unsigned long, fd,
unsigned long flags, unsigned long fd, unsigned long pgoff) unsigned long, pgoff)
{ {
struct file * file = NULL; struct file * file = NULL;
unsigned long error; unsigned long error;
...@@ -121,21 +122,21 @@ struct rlimit32 { ...@@ -121,21 +122,21 @@ struct rlimit32 {
int rlim_max; int rlim_max;
}; };
asmlinkage long sys32_truncate64(const char __user * path, SYSCALL_DEFINE4(32_truncate64, const char __user *, path,
unsigned long __dummy, int a2, int a3) unsigned long, __dummy, unsigned long, a2, unsigned long, a3)
{ {
return sys_truncate(path, merge_64(a2, a3)); return sys_truncate(path, merge_64(a2, a3));
} }
asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned long __dummy, SYSCALL_DEFINE4(32_ftruncate64, unsigned long, fd, unsigned long, __dummy,
int a2, int a3) unsigned long, a2, unsigned long, a3)
{ {
return sys_ftruncate(fd, merge_64(a2, a3)); return sys_ftruncate(fd, merge_64(a2, a3));
} }
asmlinkage int sys32_llseek(unsigned int fd, unsigned int offset_high, SYSCALL_DEFINE5(32_llseek, unsigned long, fd, unsigned long, offset_high,
unsigned int offset_low, loff_t __user * result, unsigned long, offset_low, loff_t __user *, result,
unsigned int origin) unsigned long, origin)
{ {
return sys_llseek(fd, offset_high, offset_low, result, origin); return sys_llseek(fd, offset_high, offset_low, result, origin);
} }
...@@ -144,20 +145,20 @@ asmlinkage int sys32_llseek(unsigned int fd, unsigned int offset_high, ...@@ -144,20 +145,20 @@ asmlinkage int sys32_llseek(unsigned int fd, unsigned int offset_high,
lseek back to original location. They fail just like lseek does on lseek back to original location. They fail just like lseek does on
non-seekable files. */ non-seekable files. */
asmlinkage ssize_t sys32_pread(unsigned int fd, char __user * buf, SYSCALL_DEFINE6(32_pread, unsigned long, fd, char __user *, buf, size_t, count,
size_t count, u32 unused, u64 a4, u64 a5) unsigned long, unused, unsigned long, a4, unsigned long, a5)
{ {
return sys_pread64(fd, buf, count, merge_64(a4, a5)); return sys_pread64(fd, buf, count, merge_64(a4, a5));
} }
asmlinkage ssize_t sys32_pwrite(unsigned int fd, const char __user * buf, SYSCALL_DEFINE6(32_pwrite, unsigned int, fd, const char __user *, buf,
size_t count, u32 unused, u64 a4, u64 a5) size_t, count, u32, unused, u64, a4, u64, a5)
{ {
return sys_pwrite64(fd, buf, count, merge_64(a4, a5)); return sys_pwrite64(fd, buf, count, merge_64(a4, a5));
} }
asmlinkage int sys32_sched_rr_get_interval(compat_pid_t pid, SYSCALL_DEFINE2(32_sched_rr_get_interval, compat_pid_t, pid,
struct compat_timespec __user *interval) struct compat_timespec __user *, interval)
{ {
struct timespec t; struct timespec t;
int ret; int ret;
...@@ -174,8 +175,8 @@ asmlinkage int sys32_sched_rr_get_interval(compat_pid_t pid, ...@@ -174,8 +175,8 @@ asmlinkage int sys32_sched_rr_get_interval(compat_pid_t pid,
#ifdef CONFIG_SYSVIPC #ifdef CONFIG_SYSVIPC
asmlinkage long SYSCALL_DEFINE6(32_ipc, u32, call, long, first, long, second, long, third,
sys32_ipc(u32 call, int first, int second, int third, u32 ptr, u32 fifth) unsigned long, ptr, unsigned long, fifth)
{ {
int version, err; int version, err;
...@@ -233,8 +234,8 @@ sys32_ipc(u32 call, int first, int second, int third, u32 ptr, u32 fifth) ...@@ -233,8 +234,8 @@ sys32_ipc(u32 call, int first, int second, int third, u32 ptr, u32 fifth)
#else #else
asmlinkage long SYSCALL_DEFINE6(32_ipc, u32, call, int, first, int, second, int, third,
sys32_ipc(u32 call, int first, int second, int third, u32 ptr, u32 fifth) u32, ptr, u32 fifth)
{ {
return -ENOSYS; return -ENOSYS;
} }
...@@ -242,7 +243,7 @@ sys32_ipc(u32 call, int first, int second, int third, u32 ptr, u32 fifth) ...@@ -242,7 +243,7 @@ sys32_ipc(u32 call, int first, int second, int third, u32 ptr, u32 fifth)
#endif /* CONFIG_SYSVIPC */ #endif /* CONFIG_SYSVIPC */
#ifdef CONFIG_MIPS32_N32 #ifdef CONFIG_MIPS32_N32
asmlinkage long sysn32_semctl(int semid, int semnum, int cmd, u32 arg) SYSCALL_DEFINE4(n32_semctl, int, semid, int, semnum, int, cmd, u32, arg)
{ {
/* compat_sys_semctl expects a pointer to union semun */ /* compat_sys_semctl expects a pointer to union semun */
u32 __user *uptr = compat_alloc_user_space(sizeof(u32)); u32 __user *uptr = compat_alloc_user_space(sizeof(u32));
...@@ -251,13 +252,14 @@ asmlinkage long sysn32_semctl(int semid, int semnum, int cmd, u32 arg) ...@@ -251,13 +252,14 @@ asmlinkage long sysn32_semctl(int semid, int semnum, int cmd, u32 arg)
return compat_sys_semctl(semid, semnum, cmd, uptr); return compat_sys_semctl(semid, semnum, cmd, uptr);
} }
asmlinkage long sysn32_msgsnd(int msqid, u32 msgp, unsigned msgsz, int msgflg) SYSCALL_DEFINE4(n32_msgsnd, int, msqid, u32, msgp, unsigned int, msgsz,
int, msgflg)
{ {
return compat_sys_msgsnd(msqid, msgsz, msgflg, compat_ptr(msgp)); return compat_sys_msgsnd(msqid, msgsz, msgflg, compat_ptr(msgp));
} }
asmlinkage long sysn32_msgrcv(int msqid, u32 msgp, size_t msgsz, int msgtyp, SYSCALL_DEFINE5(n32_msgrcv, int, msqid, u32, msgp, size_t, msgsz,
int msgflg) int, msgtyp, int, msgflg)
{ {
return compat_sys_msgrcv(msqid, msgsz, msgtyp, msgflg, IPC_64, return compat_sys_msgrcv(msqid, msgsz, msgtyp, msgflg, IPC_64,
compat_ptr(msgp)); compat_ptr(msgp));
...@@ -277,7 +279,7 @@ struct sysctl_args32 ...@@ -277,7 +279,7 @@ struct sysctl_args32
#ifdef CONFIG_SYSCTL_SYSCALL #ifdef CONFIG_SYSCTL_SYSCALL
asmlinkage long sys32_sysctl(struct sysctl_args32 __user *args) SYSCALL_DEFINE1(32_sysctl, struct sysctl_args32 __user *, args)
{ {
struct sysctl_args32 tmp; struct sysctl_args32 tmp;
int error; int error;
...@@ -316,9 +318,16 @@ asmlinkage long sys32_sysctl(struct sysctl_args32 __user *args) ...@@ -316,9 +318,16 @@ asmlinkage long sys32_sysctl(struct sysctl_args32 __user *args)
return error; return error;
} }
#else
SYSCALL_DEFINE1(32_sysctl, struct sysctl_args32 __user *, args)
{
return -ENOSYS;
}
#endif /* CONFIG_SYSCTL_SYSCALL */ #endif /* CONFIG_SYSCTL_SYSCALL */
asmlinkage long sys32_newuname(struct new_utsname __user * name) SYSCALL_DEFINE1(32_newuname, struct new_utsname __user *, name)
{ {
int ret = 0; int ret = 0;
...@@ -334,7 +343,7 @@ asmlinkage long sys32_newuname(struct new_utsname __user * name) ...@@ -334,7 +343,7 @@ asmlinkage long sys32_newuname(struct new_utsname __user * name)
return ret; return ret;
} }
asmlinkage int sys32_personality(unsigned long personality) SYSCALL_DEFINE1(32_personality, unsigned long, personality)
{ {
int ret; int ret;
personality &= 0xffffffff; personality &= 0xffffffff;
...@@ -357,7 +366,7 @@ struct ustat32 { ...@@ -357,7 +366,7 @@ struct ustat32 {
extern asmlinkage long sys_ustat(dev_t dev, struct ustat __user * ubuf); extern asmlinkage long sys_ustat(dev_t dev, struct ustat __user * ubuf);
asmlinkage int sys32_ustat(dev_t dev, struct ustat32 __user * ubuf32) SYSCALL_DEFINE2(32_ustat, dev_t, dev, struct ustat32 __user *, ubuf32)
{ {
int err; int err;
struct ustat tmp; struct ustat tmp;
...@@ -381,8 +390,8 @@ asmlinkage int sys32_ustat(dev_t dev, struct ustat32 __user * ubuf32) ...@@ -381,8 +390,8 @@ asmlinkage int sys32_ustat(dev_t dev, struct ustat32 __user * ubuf32)
return err; return err;
} }
asmlinkage int sys32_sendfile(int out_fd, int in_fd, compat_off_t __user *offset, SYSCALL_DEFINE4(32_sendfile, long, out_fd, long, in_fd,
s32 count) compat_off_t __user *, offset, s32, count)
{ {
mm_segment_t old_fs = get_fs(); mm_segment_t old_fs = get_fs();
int ret; int ret;
......
...@@ -399,7 +399,7 @@ einval: li v0, -ENOSYS ...@@ -399,7 +399,7 @@ einval: li v0, -ENOSYS
sys sys_swapon 2 sys sys_swapon 2
sys sys_reboot 3 sys sys_reboot 3
sys sys_old_readdir 3 sys sys_old_readdir 3
sys old_mmap 6 /* 4090 */ sys sys_mips_mmap 6 /* 4090 */
sys sys_munmap 2 sys sys_munmap 2
sys sys_truncate 2 sys sys_truncate 2
sys sys_ftruncate 2 sys sys_ftruncate 2
...@@ -519,7 +519,7 @@ einval: li v0, -ENOSYS ...@@ -519,7 +519,7 @@ einval: li v0, -ENOSYS
sys sys_sendfile 4 sys sys_sendfile 4
sys sys_ni_syscall 0 sys sys_ni_syscall 0
sys sys_ni_syscall 0 sys sys_ni_syscall 0
sys sys_mmap2 6 /* 4210 */ sys sys_mips_mmap2 6 /* 4210 */
sys sys_truncate64 4 sys sys_truncate64 4
sys sys_ftruncate64 4 sys sys_ftruncate64 4
sys sys_stat64 2 sys sys_stat64 2
......
...@@ -207,7 +207,7 @@ sys_call_table: ...@@ -207,7 +207,7 @@ sys_call_table:
PTR sys_newlstat PTR sys_newlstat
PTR sys_poll PTR sys_poll
PTR sys_lseek PTR sys_lseek
PTR old_mmap PTR sys_mips_mmap
PTR sys_mprotect /* 5010 */ PTR sys_mprotect /* 5010 */
PTR sys_munmap PTR sys_munmap
PTR sys_brk PTR sys_brk
......
...@@ -129,12 +129,12 @@ EXPORT(sysn32_call_table) ...@@ -129,12 +129,12 @@ EXPORT(sysn32_call_table)
PTR sys_newlstat PTR sys_newlstat
PTR sys_poll PTR sys_poll
PTR sys_lseek PTR sys_lseek
PTR old_mmap PTR sys_mips_mmap
PTR sys_mprotect /* 6010 */ PTR sys_mprotect /* 6010 */
PTR sys_munmap PTR sys_munmap
PTR sys_brk PTR sys_brk
PTR sys32_rt_sigaction PTR sys_32_rt_sigaction
PTR sys32_rt_sigprocmask PTR sys_32_rt_sigprocmask
PTR compat_sys_ioctl /* 6015 */ PTR compat_sys_ioctl /* 6015 */
PTR sys_pread64 PTR sys_pread64
PTR sys_pwrite64 PTR sys_pwrite64
...@@ -159,7 +159,7 @@ EXPORT(sysn32_call_table) ...@@ -159,7 +159,7 @@ EXPORT(sysn32_call_table)
PTR compat_sys_setitimer PTR compat_sys_setitimer
PTR sys_alarm PTR sys_alarm
PTR sys_getpid PTR sys_getpid
PTR sys32_sendfile PTR sys_32_sendfile
PTR sys_socket /* 6040 */ PTR sys_socket /* 6040 */
PTR sys_connect PTR sys_connect
PTR sys_accept PTR sys_accept
...@@ -181,14 +181,14 @@ EXPORT(sysn32_call_table) ...@@ -181,14 +181,14 @@ EXPORT(sysn32_call_table)
PTR sys_exit PTR sys_exit
PTR compat_sys_wait4 PTR compat_sys_wait4
PTR sys_kill /* 6060 */ PTR sys_kill /* 6060 */
PTR sys32_newuname PTR sys_32_newuname
PTR sys_semget PTR sys_semget
PTR sys_semop PTR sys_semop
PTR sysn32_semctl PTR sys_n32_semctl
PTR sys_shmdt /* 6065 */ PTR sys_shmdt /* 6065 */
PTR sys_msgget PTR sys_msgget
PTR sysn32_msgsnd PTR sys_n32_msgsnd
PTR sysn32_msgrcv PTR sys_n32_msgrcv
PTR compat_sys_msgctl PTR compat_sys_msgctl
PTR compat_sys_fcntl /* 6070 */ PTR compat_sys_fcntl /* 6070 */
PTR sys_flock PTR sys_flock
...@@ -245,15 +245,15 @@ EXPORT(sysn32_call_table) ...@@ -245,15 +245,15 @@ EXPORT(sysn32_call_table)
PTR sys_getsid PTR sys_getsid
PTR sys_capget PTR sys_capget
PTR sys_capset PTR sys_capset
PTR sys32_rt_sigpending /* 6125 */ PTR sys_32_rt_sigpending /* 6125 */
PTR compat_sys_rt_sigtimedwait PTR compat_sys_rt_sigtimedwait
PTR sys32_rt_sigqueueinfo PTR sys_32_rt_sigqueueinfo
PTR sysn32_rt_sigsuspend PTR sysn32_rt_sigsuspend
PTR sys32_sigaltstack PTR sys32_sigaltstack
PTR compat_sys_utime /* 6130 */ PTR compat_sys_utime /* 6130 */
PTR sys_mknod PTR sys_mknod
PTR sys32_personality PTR sys_32_personality
PTR sys32_ustat PTR sys_32_ustat
PTR compat_sys_statfs PTR compat_sys_statfs
PTR compat_sys_fstatfs /* 6135 */ PTR compat_sys_fstatfs /* 6135 */
PTR sys_sysfs PTR sys_sysfs
...@@ -265,14 +265,14 @@ EXPORT(sysn32_call_table) ...@@ -265,14 +265,14 @@ EXPORT(sysn32_call_table)
PTR sys_sched_getscheduler PTR sys_sched_getscheduler
PTR sys_sched_get_priority_max PTR sys_sched_get_priority_max
PTR sys_sched_get_priority_min PTR sys_sched_get_priority_min
PTR sys32_sched_rr_get_interval /* 6145 */ PTR sys_32_sched_rr_get_interval /* 6145 */
PTR sys_mlock PTR sys_mlock
PTR sys_munlock PTR sys_munlock
PTR sys_mlockall PTR sys_mlockall
PTR sys_munlockall PTR sys_munlockall
PTR sys_vhangup /* 6150 */ PTR sys_vhangup /* 6150 */
PTR sys_pivot_root PTR sys_pivot_root
PTR sys32_sysctl PTR sys_32_sysctl
PTR sys_prctl PTR sys_prctl
PTR compat_sys_adjtimex PTR compat_sys_adjtimex
PTR compat_sys_setrlimit /* 6155 */ PTR compat_sys_setrlimit /* 6155 */
......
...@@ -265,12 +265,12 @@ sys_call_table: ...@@ -265,12 +265,12 @@ sys_call_table:
PTR sys_olduname PTR sys_olduname
PTR sys_umask /* 4060 */ PTR sys_umask /* 4060 */
PTR sys_chroot PTR sys_chroot
PTR sys32_ustat PTR sys_32_ustat
PTR sys_dup2 PTR sys_dup2
PTR sys_getppid PTR sys_getppid
PTR sys_getpgrp /* 4065 */ PTR sys_getpgrp /* 4065 */
PTR sys_setsid PTR sys_setsid
PTR sys32_sigaction PTR sys_32_sigaction
PTR sys_sgetmask PTR sys_sgetmask
PTR sys_ssetmask PTR sys_ssetmask
PTR sys_setreuid /* 4070 */ PTR sys_setreuid /* 4070 */
...@@ -293,7 +293,7 @@ sys_call_table: ...@@ -293,7 +293,7 @@ sys_call_table:
PTR sys_swapon PTR sys_swapon
PTR sys_reboot PTR sys_reboot
PTR compat_sys_old_readdir PTR compat_sys_old_readdir
PTR old_mmap /* 4090 */ PTR sys_mips_mmap /* 4090 */
PTR sys_munmap PTR sys_munmap
PTR sys_truncate PTR sys_truncate
PTR sys_ftruncate PTR sys_ftruncate
...@@ -320,12 +320,12 @@ sys_call_table: ...@@ -320,12 +320,12 @@ sys_call_table:
PTR compat_sys_wait4 PTR compat_sys_wait4
PTR sys_swapoff /* 4115 */ PTR sys_swapoff /* 4115 */
PTR compat_sys_sysinfo PTR compat_sys_sysinfo
PTR sys32_ipc PTR sys_32_ipc
PTR sys_fsync PTR sys_fsync
PTR sys32_sigreturn PTR sys32_sigreturn
PTR sys32_clone /* 4120 */ PTR sys32_clone /* 4120 */
PTR sys_setdomainname PTR sys_setdomainname
PTR sys32_newuname PTR sys_32_newuname
PTR sys_ni_syscall /* sys_modify_ldt */ PTR sys_ni_syscall /* sys_modify_ldt */
PTR compat_sys_adjtimex PTR compat_sys_adjtimex
PTR sys_mprotect /* 4125 */ PTR sys_mprotect /* 4125 */
...@@ -339,11 +339,11 @@ sys_call_table: ...@@ -339,11 +339,11 @@ sys_call_table:
PTR sys_fchdir PTR sys_fchdir
PTR sys_bdflush PTR sys_bdflush
PTR sys_sysfs /* 4135 */ PTR sys_sysfs /* 4135 */
PTR sys32_personality PTR sys_32_personality
PTR sys_ni_syscall /* for afs_syscall */ PTR sys_ni_syscall /* for afs_syscall */
PTR sys_setfsuid PTR sys_setfsuid
PTR sys_setfsgid PTR sys_setfsgid
PTR sys32_llseek /* 4140 */ PTR sys_32_llseek /* 4140 */
PTR compat_sys_getdents PTR compat_sys_getdents
PTR compat_sys_select PTR compat_sys_select
PTR sys_flock PTR sys_flock
...@@ -356,7 +356,7 @@ sys_call_table: ...@@ -356,7 +356,7 @@ sys_call_table:
PTR sys_ni_syscall /* 4150 */ PTR sys_ni_syscall /* 4150 */
PTR sys_getsid PTR sys_getsid
PTR sys_fdatasync PTR sys_fdatasync
PTR sys32_sysctl PTR sys_32_sysctl
PTR sys_mlock PTR sys_mlock
PTR sys_munlock /* 4155 */ PTR sys_munlock /* 4155 */
PTR sys_mlockall PTR sys_mlockall
...@@ -368,7 +368,7 @@ sys_call_table: ...@@ -368,7 +368,7 @@ sys_call_table:
PTR sys_sched_yield PTR sys_sched_yield
PTR sys_sched_get_priority_max PTR sys_sched_get_priority_max
PTR sys_sched_get_priority_min PTR sys_sched_get_priority_min
PTR sys32_sched_rr_get_interval /* 4165 */ PTR sys_32_sched_rr_get_interval /* 4165 */
PTR compat_sys_nanosleep PTR compat_sys_nanosleep
PTR sys_mremap PTR sys_mremap
PTR sys_accept PTR sys_accept
...@@ -397,25 +397,25 @@ sys_call_table: ...@@ -397,25 +397,25 @@ sys_call_table:
PTR sys_getresgid PTR sys_getresgid
PTR sys_prctl PTR sys_prctl
PTR sys32_rt_sigreturn PTR sys32_rt_sigreturn
PTR sys32_rt_sigaction PTR sys_32_rt_sigaction
PTR sys32_rt_sigprocmask /* 4195 */ PTR sys_32_rt_sigprocmask /* 4195 */
PTR sys32_rt_sigpending PTR sys_32_rt_sigpending
PTR compat_sys_rt_sigtimedwait PTR compat_sys_rt_sigtimedwait
PTR sys32_rt_sigqueueinfo PTR sys_32_rt_sigqueueinfo
PTR sys32_rt_sigsuspend PTR sys32_rt_sigsuspend
PTR sys32_pread /* 4200 */ PTR sys_32_pread /* 4200 */
PTR sys32_pwrite PTR sys_32_pwrite
PTR sys_chown PTR sys_chown
PTR sys_getcwd PTR sys_getcwd
PTR sys_capget PTR sys_capget
PTR sys_capset /* 4205 */ PTR sys_capset /* 4205 */
PTR sys32_sigaltstack PTR sys32_sigaltstack
PTR sys32_sendfile PTR sys_32_sendfile
PTR sys_ni_syscall PTR sys_ni_syscall
PTR sys_ni_syscall PTR sys_ni_syscall
PTR sys32_mmap2 /* 4210 */ PTR sys_mips_mmap2 /* 4210 */
PTR sys32_truncate64 PTR sys_32_truncate64
PTR sys32_ftruncate64 PTR sys_32_ftruncate64
PTR sys_newstat PTR sys_newstat
PTR sys_newlstat PTR sys_newlstat
PTR sys_newfstat /* 4215 */ PTR sys_newfstat /* 4215 */
...@@ -481,7 +481,7 @@ sys_call_table: ...@@ -481,7 +481,7 @@ sys_call_table:
PTR compat_sys_mq_notify /* 4275 */ PTR compat_sys_mq_notify /* 4275 */
PTR compat_sys_mq_getsetattr PTR compat_sys_mq_getsetattr
PTR sys_ni_syscall /* sys_vserver */ PTR sys_ni_syscall /* sys_vserver */
PTR sys32_waitid PTR sys_32_waitid
PTR sys_ni_syscall /* available, was setaltroot */ PTR sys_ni_syscall /* available, was setaltroot */
PTR sys_add_key /* 4280 */ PTR sys_add_key /* 4280 */
PTR sys_request_key PTR sys_request_key
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#include <linux/ptrace.h> #include <linux/ptrace.h>
#include <linux/unistd.h> #include <linux/unistd.h>
#include <linux/compiler.h> #include <linux/compiler.h>
#include <linux/syscalls.h>
#include <linux/uaccess.h> #include <linux/uaccess.h>
#include <asm/abi.h> #include <asm/abi.h>
...@@ -338,8 +339,8 @@ asmlinkage int sys_rt_sigsuspend(nabi_no_regargs struct pt_regs regs) ...@@ -338,8 +339,8 @@ asmlinkage int sys_rt_sigsuspend(nabi_no_regargs struct pt_regs regs)
} }
#ifdef CONFIG_TRAD_SIGNALS #ifdef CONFIG_TRAD_SIGNALS
asmlinkage int sys_sigaction(int sig, const struct sigaction __user *act, SYSCALL_DEFINE3(sigaction, int, sig, const struct sigaction __user *, act,
struct sigaction __user *oact) struct sigaction __user *, oact)
{ {
struct k_sigaction new_ka, old_ka; struct k_sigaction new_ka, old_ka;
int ret; int ret;
......
...@@ -349,8 +349,8 @@ asmlinkage int sys32_rt_sigsuspend(nabi_no_regargs struct pt_regs regs) ...@@ -349,8 +349,8 @@ asmlinkage int sys32_rt_sigsuspend(nabi_no_regargs struct pt_regs regs)
return -ERESTARTNOHAND; return -ERESTARTNOHAND;
} }
asmlinkage int sys32_sigaction(int sig, const struct sigaction32 __user *act, SYSCALL_DEFINE3(32_sigaction, long, sig, const struct sigaction32 __user *, act,
struct sigaction32 __user *oact) struct sigaction32 __user *, oact)
{ {
struct k_sigaction new_ka, old_ka; struct k_sigaction new_ka, old_ka;
int ret; int ret;
...@@ -704,9 +704,9 @@ struct mips_abi mips_abi_32 = { ...@@ -704,9 +704,9 @@ struct mips_abi mips_abi_32 = {
.restart = __NR_O32_restart_syscall .restart = __NR_O32_restart_syscall
}; };
asmlinkage int sys32_rt_sigaction(int sig, const struct sigaction32 __user *act, SYSCALL_DEFINE4(32_rt_sigaction, int, sig,
struct sigaction32 __user *oact, const struct sigaction32 __user *, act,
unsigned int sigsetsize) struct sigaction32 __user *, oact, unsigned int, sigsetsize)
{ {
struct k_sigaction new_sa, old_sa; struct k_sigaction new_sa, old_sa;
int ret = -EINVAL; int ret = -EINVAL;
...@@ -748,8 +748,8 @@ asmlinkage int sys32_rt_sigaction(int sig, const struct sigaction32 __user *act, ...@@ -748,8 +748,8 @@ asmlinkage int sys32_rt_sigaction(int sig, const struct sigaction32 __user *act,
return ret; return ret;
} }
asmlinkage int sys32_rt_sigprocmask(int how, compat_sigset_t __user *set, SYSCALL_DEFINE4(32_rt_sigprocmask, int, how, compat_sigset_t __user *, set,
compat_sigset_t __user *oset, unsigned int sigsetsize) compat_sigset_t __user *, oset, unsigned int, sigsetsize)
{ {
sigset_t old_set, new_set; sigset_t old_set, new_set;
int ret; int ret;
...@@ -770,8 +770,8 @@ asmlinkage int sys32_rt_sigprocmask(int how, compat_sigset_t __user *set, ...@@ -770,8 +770,8 @@ asmlinkage int sys32_rt_sigprocmask(int how, compat_sigset_t __user *set,
return ret; return ret;
} }
asmlinkage int sys32_rt_sigpending(compat_sigset_t __user *uset, SYSCALL_DEFINE2(32_rt_sigpending, compat_sigset_t __user *, uset,
unsigned int sigsetsize) unsigned int, sigsetsize)
{ {
int ret; int ret;
sigset_t set; sigset_t set;
...@@ -787,7 +787,8 @@ asmlinkage int sys32_rt_sigpending(compat_sigset_t __user *uset, ...@@ -787,7 +787,8 @@ asmlinkage int sys32_rt_sigpending(compat_sigset_t __user *uset,
return ret; return ret;
} }
asmlinkage int sys32_rt_sigqueueinfo(int pid, int sig, compat_siginfo_t __user *uinfo) SYSCALL_DEFINE3(32_rt_sigqueueinfo, int, pid, int, sig,
compat_siginfo_t __user *, uinfo)
{ {
siginfo_t info; siginfo_t info;
int ret; int ret;
...@@ -802,10 +803,9 @@ asmlinkage int sys32_rt_sigqueueinfo(int pid, int sig, compat_siginfo_t __user * ...@@ -802,10 +803,9 @@ asmlinkage int sys32_rt_sigqueueinfo(int pid, int sig, compat_siginfo_t __user *
return ret; return ret;
} }
asmlinkage long SYSCALL_DEFINE5(32_waitid, int, which, compat_pid_t, pid,
sys32_waitid(int which, compat_pid_t pid, compat_siginfo_t __user *, uinfo, int, options,
compat_siginfo_t __user *uinfo, int options, struct compat_rusage __user *, uru)
struct compat_rusage __user *uru)
{ {
siginfo_t info; siginfo_t info;
struct rusage ru; struct rusage ru;
......
...@@ -152,9 +152,9 @@ do_mmap2(unsigned long addr, unsigned long len, unsigned long prot, ...@@ -152,9 +152,9 @@ do_mmap2(unsigned long addr, unsigned long len, unsigned long prot,
return error; return error;
} }
asmlinkage unsigned long SYSCALL_DEFINE6(mips_mmap, unsigned long, addr, unsigned long, len,
old_mmap(unsigned long addr, unsigned long len, int prot, unsigned long, prot, unsigned long, flags, unsigned long,
int flags, int fd, off_t offset) fd, off_t, offset)
{ {
unsigned long result; unsigned long result;
...@@ -168,9 +168,9 @@ old_mmap(unsigned long addr, unsigned long len, int prot, ...@@ -168,9 +168,9 @@ old_mmap(unsigned long addr, unsigned long len, int prot,
return result; return result;
} }
asmlinkage unsigned long SYSCALL_DEFINE6(mips_mmap2, unsigned long, addr, unsigned long, len,
sys_mmap2(unsigned long addr, unsigned long len, unsigned long prot, unsigned long, prot, unsigned long, flags, unsigned long, fd,
unsigned long flags, unsigned long fd, unsigned long pgoff) unsigned long, pgoff)
{ {
if (pgoff & (~PAGE_MASK >> 12)) if (pgoff & (~PAGE_MASK >> 12))
return -EINVAL; return -EINVAL;
...@@ -240,7 +240,7 @@ asmlinkage int sys_execve(nabi_no_regargs struct pt_regs regs) ...@@ -240,7 +240,7 @@ asmlinkage int sys_execve(nabi_no_regargs struct pt_regs regs)
/* /*
* Compacrapability ... * Compacrapability ...
*/ */
asmlinkage int sys_uname(struct old_utsname __user * name) SYSCALL_DEFINE1(uname, struct old_utsname __user *, name)
{ {
if (name && !copy_to_user(name, utsname(), sizeof (*name))) if (name && !copy_to_user(name, utsname(), sizeof (*name)))
return 0; return 0;
...@@ -250,7 +250,7 @@ asmlinkage int sys_uname(struct old_utsname __user * name) ...@@ -250,7 +250,7 @@ asmlinkage int sys_uname(struct old_utsname __user * name)
/* /*
* Compacrapability ... * Compacrapability ...
*/ */
asmlinkage int sys_olduname(struct oldold_utsname __user * name) SYSCALL_DEFINE1(olduname, struct oldold_utsname __user *, name)
{ {
int error; int error;
...@@ -279,7 +279,7 @@ asmlinkage int sys_olduname(struct oldold_utsname __user * name) ...@@ -279,7 +279,7 @@ asmlinkage int sys_olduname(struct oldold_utsname __user * name)
return error; return error;
} }
asmlinkage int sys_set_thread_area(unsigned long addr) SYSCALL_DEFINE1(set_thread_area, unsigned long, addr)
{ {
struct thread_info *ti = task_thread_info(current); struct thread_info *ti = task_thread_info(current);
...@@ -290,7 +290,7 @@ asmlinkage int sys_set_thread_area(unsigned long addr) ...@@ -290,7 +290,7 @@ asmlinkage int sys_set_thread_area(unsigned long addr)
return 0; return 0;
} }
asmlinkage int _sys_sysmips(int cmd, long arg1, int arg2, int arg3) asmlinkage int _sys_sysmips(long cmd, long arg1, long arg2, long arg3)
{ {
switch (cmd) { switch (cmd) {
case MIPS_ATOMIC_SET: case MIPS_ATOMIC_SET:
...@@ -325,8 +325,8 @@ asmlinkage int _sys_sysmips(int cmd, long arg1, int arg2, int arg3) ...@@ -325,8 +325,8 @@ asmlinkage int _sys_sysmips(int cmd, long arg1, int arg2, int arg3)
* *
* This is really horribly ugly. * This is really horribly ugly.
*/ */
asmlinkage int sys_ipc(unsigned int call, int first, int second, SYSCALL_DEFINE6(ipc, unsigned int, call, int, first, int, second,
unsigned long third, void __user *ptr, long fifth) unsigned long, third, void __user *, ptr, long, fifth)
{ {
int version, ret; int version, ret;
...@@ -411,7 +411,7 @@ asmlinkage int sys_ipc(unsigned int call, int first, int second, ...@@ -411,7 +411,7 @@ asmlinkage int sys_ipc(unsigned int call, int first, int second,
/* /*
* No implemented yet ... * No implemented yet ...
*/ */
asmlinkage int sys_cachectl(char *addr, int nbytes, int op) SYSCALL_DEFINE3(cachectl, char *, addr, int, nbytes, int, op)
{ {
return -ENOSYS; return -ENOSYS;
} }
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include <linux/linkage.h> #include <linux/linkage.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/sched.h> #include <linux/sched.h>
#include <linux/syscalls.h>
#include <linux/mm.h> #include <linux/mm.h>
#include <asm/cacheflush.h> #include <asm/cacheflush.h>
...@@ -58,8 +59,8 @@ EXPORT_SYMBOL(_dma_cache_wback_inv); ...@@ -58,8 +59,8 @@ EXPORT_SYMBOL(_dma_cache_wback_inv);
* We could optimize the case where the cache argument is not BCACHE but * We could optimize the case where the cache argument is not BCACHE but
* that seems very atypical use ... * that seems very atypical use ...
*/ */
asmlinkage int sys_cacheflush(unsigned long addr, SYSCALL_DEFINE3(cacheflush, unsigned long, addr, unsigned long, bytes,
unsigned long bytes, unsigned int cache) unsigned int, cache)
{ {
if (bytes == 0) if (bytes == 0)
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment