diff options
-rw-r--r-- | arch/sparc/kernel/sys32.S | 28 | ||||
-rw-r--r-- | arch/sparc/kernel/sys_sparc32.c | 26 | ||||
-rw-r--r-- | arch/sparc/kernel/systbls.h | 12 | ||||
-rw-r--r-- | arch/sparc/kernel/systbls_64.S | 4 |
4 files changed, 18 insertions, 52 deletions
diff --git a/arch/sparc/kernel/sys32.S b/arch/sparc/kernel/sys32.S index fba545787f81..489ffab918a8 100644 --- a/arch/sparc/kernel/sys32.S +++ b/arch/sparc/kernel/sys32.S | |||
@@ -13,34 +13,6 @@ | |||
13 | 13 | ||
14 | .text | 14 | .text |
15 | 15 | ||
16 | #define SIGN1(STUB,SYSCALL,REG1) \ | ||
17 | .align 32; \ | ||
18 | .globl STUB; \ | ||
19 | STUB: sethi %hi(SYSCALL), %g1; \ | ||
20 | jmpl %g1 + %lo(SYSCALL), %g0; \ | ||
21 | sra REG1, 0, REG1 | ||
22 | |||
23 | #define SIGN2(STUB,SYSCALL,REG1,REG2) \ | ||
24 | .align 32; \ | ||
25 | .globl STUB; \ | ||
26 | STUB: sethi %hi(SYSCALL), %g1; \ | ||
27 | sra REG1, 0, REG1; \ | ||
28 | jmpl %g1 + %lo(SYSCALL), %g0; \ | ||
29 | sra REG2, 0, REG2 | ||
30 | |||
31 | #define SIGN3(STUB,SYSCALL,REG1,REG2,REG3) \ | ||
32 | .align 32; \ | ||
33 | .globl STUB; \ | ||
34 | STUB: sra REG1, 0, REG1; \ | ||
35 | sethi %hi(SYSCALL), %g1; \ | ||
36 | sra REG2, 0, REG2; \ | ||
37 | jmpl %g1 + %lo(SYSCALL), %g0; \ | ||
38 | sra REG3, 0, REG3 | ||
39 | |||
40 | SIGN1(sys32_readahead, compat_sys_readahead, %o0) | ||
41 | SIGN2(sys32_fadvise64, compat_sys_fadvise64, %o0, %o4) | ||
42 | SIGN2(sys32_fadvise64_64, compat_sys_fadvise64_64, %o0, %o5) | ||
43 | |||
44 | .globl sys32_mmap2 | 16 | .globl sys32_mmap2 |
45 | sys32_mmap2: | 17 | sys32_mmap2: |
46 | sethi %hi(sys_mmap), %g1 | 18 | sethi %hi(sys_mmap), %g1 |
diff --git a/arch/sparc/kernel/sys_sparc32.c b/arch/sparc/kernel/sys_sparc32.c index 6d964bdefbaa..9b0c569267bf 100644 --- a/arch/sparc/kernel/sys_sparc32.c +++ b/arch/sparc/kernel/sys_sparc32.c | |||
@@ -212,30 +212,24 @@ asmlinkage compat_ssize_t sys32_pwrite64(unsigned int fd, | |||
212 | return sys_pwrite64(fd, ubuf, count, (poshi << 32) | poslo); | 212 | return sys_pwrite64(fd, ubuf, count, (poshi << 32) | poslo); |
213 | } | 213 | } |
214 | 214 | ||
215 | asmlinkage long compat_sys_readahead(int fd, | 215 | COMPAT_SYSCALL_DEFINE4(readahead, int, fd, u32, offhi, u32, offlo, |
216 | unsigned long offhi, | 216 | compat_size_t, count) |
217 | unsigned long offlo, | ||
218 | compat_size_t count) | ||
219 | { | 217 | { |
220 | return sys_readahead(fd, (offhi << 32) | offlo, count); | 218 | return sys_readahead(fd, ((u64)offhi << 32) | offlo, count); |
221 | } | 219 | } |
222 | 220 | ||
223 | long compat_sys_fadvise64(int fd, | 221 | COMPAT_SYSCALL_DEFINE5(fadvise64, int, fd, u32, offhi, u32, offlo, |
224 | unsigned long offhi, | 222 | compat_size_t, len, int, advice) |
225 | unsigned long offlo, | ||
226 | compat_size_t len, int advice) | ||
227 | { | 223 | { |
228 | return sys_fadvise64_64(fd, (offhi << 32) | offlo, len, advice); | 224 | return sys_fadvise64_64(fd, ((u64)offhi << 32) | offlo, len, advice); |
229 | } | 225 | } |
230 | 226 | ||
231 | long compat_sys_fadvise64_64(int fd, | 227 | COMPAT_SYSCALL_DEFINE6(fadvise64_64, int, fd, u32, offhi, u32, offlo, |
232 | unsigned long offhi, unsigned long offlo, | 228 | u32, lenhi, u32, lenlo, int, advice) |
233 | unsigned long lenhi, unsigned long lenlo, | ||
234 | int advice) | ||
235 | { | 229 | { |
236 | return sys_fadvise64_64(fd, | 230 | return sys_fadvise64_64(fd, |
237 | (offhi << 32) | offlo, | 231 | ((u64)offhi << 32) | offlo, |
238 | (lenhi << 32) | lenlo, | 232 | ((u64)lenhi << 32) | lenlo, |
239 | advice); | 233 | advice); |
240 | } | 234 | } |
241 | 235 | ||
diff --git a/arch/sparc/kernel/systbls.h b/arch/sparc/kernel/systbls.h index 0c9434d980d7..4aca08e3ddef 100644 --- a/arch/sparc/kernel/systbls.h +++ b/arch/sparc/kernel/systbls.h | |||
@@ -77,16 +77,16 @@ asmlinkage compat_ssize_t sys32_pwrite64(unsigned int fd, | |||
77 | unsigned long poshi, | 77 | unsigned long poshi, |
78 | unsigned long poslo); | 78 | unsigned long poslo); |
79 | asmlinkage long compat_sys_readahead(int fd, | 79 | asmlinkage long compat_sys_readahead(int fd, |
80 | unsigned long offhi, | 80 | unsigned offhi, |
81 | unsigned long offlo, | 81 | unsigned offlo, |
82 | compat_size_t count); | 82 | compat_size_t count); |
83 | long compat_sys_fadvise64(int fd, | 83 | long compat_sys_fadvise64(int fd, |
84 | unsigned long offhi, | 84 | unsigned offhi, |
85 | unsigned long offlo, | 85 | unsigned offlo, |
86 | compat_size_t len, int advice); | 86 | compat_size_t len, int advice); |
87 | long compat_sys_fadvise64_64(int fd, | 87 | long compat_sys_fadvise64_64(int fd, |
88 | unsigned long offhi, unsigned long offlo, | 88 | unsigned offhi, unsigned offlo, |
89 | unsigned long lenhi, unsigned long lenlo, | 89 | unsigned lenhi, unsigned lenlo, |
90 | int advice); | 90 | int advice); |
91 | long sys32_sync_file_range(unsigned int fd, | 91 | long sys32_sync_file_range(unsigned int fd, |
92 | unsigned long off_high, unsigned long off_low, | 92 | unsigned long off_high, unsigned long off_low, |
diff --git a/arch/sparc/kernel/systbls_64.S b/arch/sparc/kernel/systbls_64.S index a5c7d23cddf0..96b6b64ce579 100644 --- a/arch/sparc/kernel/systbls_64.S +++ b/arch/sparc/kernel/systbls_64.S | |||
@@ -60,8 +60,8 @@ sys_call_table32: | |||
60 | /*190*/ .word sys_init_module, sys_sparc64_personality, sys_remap_file_pages, sys_epoll_create, sys_epoll_ctl | 60 | /*190*/ .word sys_init_module, sys_sparc64_personality, sys_remap_file_pages, sys_epoll_create, sys_epoll_ctl |
61 | .word sys_epoll_wait, sys_ioprio_set, sys_getppid, compat_sys_sparc_sigaction, sys_sgetmask | 61 | .word sys_epoll_wait, sys_ioprio_set, sys_getppid, compat_sys_sparc_sigaction, sys_sgetmask |
62 | /*200*/ .word sys_ssetmask, sys_sigsuspend, compat_sys_newlstat, sys_uselib, compat_sys_old_readdir | 62 | /*200*/ .word sys_ssetmask, sys_sigsuspend, compat_sys_newlstat, sys_uselib, compat_sys_old_readdir |
63 | .word sys32_readahead, sys32_socketcall, sys_syslog, compat_sys_lookup_dcookie, sys32_fadvise64 | 63 | .word compat_sys_readahead, sys32_socketcall, sys_syslog, compat_sys_lookup_dcookie, compat_sys_fadvise64 |
64 | /*210*/ .word sys32_fadvise64_64, sys_tgkill, sys_waitpid, sys_swapoff, compat_sys_sysinfo | 64 | /*210*/ .word compat_sys_fadvise64_64, sys_tgkill, sys_waitpid, sys_swapoff, compat_sys_sysinfo |
65 | .word compat_sys_ipc, sys32_sigreturn, sys_clone, sys_ioprio_get, compat_sys_adjtimex | 65 | .word compat_sys_ipc, sys32_sigreturn, sys_clone, sys_ioprio_get, compat_sys_adjtimex |
66 | /*220*/ .word compat_sys_sigprocmask, sys_ni_syscall, sys_delete_module, sys_ni_syscall, sys_getpgid | 66 | /*220*/ .word compat_sys_sigprocmask, sys_ni_syscall, sys_delete_module, sys_ni_syscall, sys_getpgid |
67 | .word sys_bdflush, sys_sysfs, sys_nis_syscall, sys_setfsuid16, sys_setfsgid16 | 67 | .word sys_bdflush, sys_sysfs, sys_nis_syscall, sys_setfsuid16, sys_setfsgid16 |