diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-12-11 15:23:29 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-12-11 15:23:29 -0500 |
| commit | aad3bf04dca5a2147a8406f7aef5703ee5259a52 (patch) | |
| tree | 558d5915ddceab6bb47ed844dea9386c6036d087 /arch/sparc/kernel | |
| parent | 11bd04f6f35621193311c32e0721142b073a7794 (diff) | |
| parent | aa65607373a4daf2010e8c3867b6317619f3c1a3 (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/viro/mmap
* git://git.kernel.org/pub/scm/linux/kernel/git/viro/mmap:
Add missing alignment check in arch/score sys_mmap()
fix broken aliasing checks for MAP_FIXED on sparc32, mips, arm and sh
Get rid of open-coding in ia64_brk()
sparc_brk() is not needed anymore
switch do_brk() to get_unmapped_area()
Take arch_mmap_check() into get_unmapped_area()
fix a struct file leak in do_mmap_pgoff()
Unify sys_mmap*
Cut hugetlb case early for 32bit on ia64
arch_mmap_check() on mn10300
Kill ancient crap in s390 compat mmap
arm: add arch_mmap_check(), get rid of sys_arm_mremap()
file ->get_unmapped_area() shouldn't duplicate work of get_unmapped_area()
kill useless checks in sparc mremap variants
fix pgoff in "have to relocate" case of mremap()
fix the arch checks in MREMAP_FIXED case
fix checks for expand-in-place mremap
do_mremap() untangling, part 3
do_mremap() untangling, part 2
untangling do_mremap(), part 1
Diffstat (limited to 'arch/sparc/kernel')
| -rw-r--r-- | arch/sparc/kernel/sys_sparc32.c | 22 | ||||
| -rw-r--r-- | arch/sparc/kernel/sys_sparc_32.c | 64 | ||||
| -rw-r--r-- | arch/sparc/kernel/sys_sparc_64.c | 50 | ||||
| -rw-r--r-- | arch/sparc/kernel/systbls.h | 1 | ||||
| -rw-r--r-- | arch/sparc/kernel/systbls_32.S | 4 | ||||
| -rw-r--r-- | arch/sparc/kernel/systbls_64.S | 6 |
6 files changed, 24 insertions, 123 deletions
diff --git a/arch/sparc/kernel/sys_sparc32.c b/arch/sparc/kernel/sys_sparc32.c index 00abe87e5b51..dc0ac197e7e2 100644 --- a/arch/sparc/kernel/sys_sparc32.c +++ b/arch/sparc/kernel/sys_sparc32.c | |||
| @@ -564,28 +564,6 @@ asmlinkage long sparc32_open(const char __user *filename, | |||
| 564 | return do_sys_open(AT_FDCWD, filename, flags, mode); | 564 | return do_sys_open(AT_FDCWD, filename, flags, mode); |
| 565 | } | 565 | } |
| 566 | 566 | ||
| 567 | extern unsigned long do_mremap(unsigned long addr, | ||
| 568 | unsigned long old_len, unsigned long new_len, | ||
| 569 | unsigned long flags, unsigned long new_addr); | ||
| 570 | |||
| 571 | asmlinkage unsigned long sys32_mremap(unsigned long addr, | ||
| 572 | unsigned long old_len, unsigned long new_len, | ||
| 573 | unsigned long flags, u32 __new_addr) | ||
| 574 | { | ||
| 575 | unsigned long ret = -EINVAL; | ||
| 576 | unsigned long new_addr = __new_addr; | ||
| 577 | |||
| 578 | if (unlikely(sparc_mmap_check(addr, old_len))) | ||
| 579 | goto out; | ||
| 580 | if (unlikely(sparc_mmap_check(new_addr, new_len))) | ||
| 581 | goto out; | ||
| 582 | down_write(¤t->mm->mmap_sem); | ||
| 583 | ret = do_mremap(addr, old_len, new_len, flags, new_addr); | ||
| 584 | up_write(¤t->mm->mmap_sem); | ||
| 585 | out: | ||
| 586 | return ret; | ||
| 587 | } | ||
| 588 | |||
| 589 | long sys32_lookup_dcookie(unsigned long cookie_high, | 567 | long sys32_lookup_dcookie(unsigned long cookie_high, |
| 590 | unsigned long cookie_low, | 568 | unsigned long cookie_low, |
| 591 | char __user *buf, size_t len) | 569 | char __user *buf, size_t len) |
diff --git a/arch/sparc/kernel/sys_sparc_32.c b/arch/sparc/kernel/sys_sparc_32.c index 03035c852a43..3a82e65d8db2 100644 --- a/arch/sparc/kernel/sys_sparc_32.c +++ b/arch/sparc/kernel/sys_sparc_32.c | |||
| @@ -45,7 +45,8 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi | |||
| 45 | /* We do not accept a shared mapping if it would violate | 45 | /* We do not accept a shared mapping if it would violate |
| 46 | * cache aliasing constraints. | 46 | * cache aliasing constraints. |
| 47 | */ | 47 | */ |
| 48 | if ((flags & MAP_SHARED) && (addr & (SHMLBA - 1))) | 48 | if ((flags & MAP_SHARED) && |
| 49 | ((addr - (pgoff << PAGE_SHIFT)) & (SHMLBA - 1))) | ||
| 49 | return -EINVAL; | 50 | return -EINVAL; |
| 50 | return addr; | 51 | return addr; |
| 51 | } | 52 | } |
| @@ -79,15 +80,6 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi | |||
| 79 | } | 80 | } |
| 80 | } | 81 | } |
| 81 | 82 | ||
| 82 | asmlinkage unsigned long sparc_brk(unsigned long brk) | ||
| 83 | { | ||
| 84 | if(ARCH_SUN4C) { | ||
| 85 | if ((brk & 0xe0000000) != (current->mm->brk & 0xe0000000)) | ||
| 86 | return current->mm->brk; | ||
| 87 | } | ||
| 88 | return sys_brk(brk); | ||
| 89 | } | ||
| 90 | |||
| 91 | /* | 83 | /* |
| 92 | * sys_pipe() is the normal C calling standard for creating | 84 | * sys_pipe() is the normal C calling standard for creating |
| 93 | * a pipe. It's not the way unix traditionally does this, though. | 85 | * a pipe. It's not the way unix traditionally does this, though. |
| @@ -234,31 +226,6 @@ int sparc_mmap_check(unsigned long addr, unsigned long len) | |||
| 234 | } | 226 | } |
| 235 | 227 | ||
| 236 | /* Linux version of mmap */ | 228 | /* Linux version of mmap */ |
| 237 | static unsigned long do_mmap2(unsigned long addr, unsigned long len, | ||
| 238 | unsigned long prot, unsigned long flags, unsigned long fd, | ||
| 239 | unsigned long pgoff) | ||
| 240 | { | ||
| 241 | struct file * file = NULL; | ||
| 242 | unsigned long retval = -EBADF; | ||
| 243 | |||
| 244 | if (!(flags & MAP_ANONYMOUS)) { | ||
| 245 | file = fget(fd); | ||
| 246 | if (!file) | ||
| 247 | goto out; | ||
| 248 | } | ||
| 249 | |||
| 250 | len = PAGE_ALIGN(len); | ||
| 251 | flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE); | ||
| 252 | |||
| 253 | down_write(¤t->mm->mmap_sem); | ||
| 254 | retval = do_mmap_pgoff(file, addr, len, prot, flags, pgoff); | ||
| 255 | up_write(¤t->mm->mmap_sem); | ||
| 256 | |||
| 257 | if (file) | ||
| 258 | fput(file); | ||
| 259 | out: | ||
| 260 | return retval; | ||
| 261 | } | ||
| 262 | 229 | ||
| 263 | asmlinkage unsigned long sys_mmap2(unsigned long addr, unsigned long len, | 230 | asmlinkage unsigned long sys_mmap2(unsigned long addr, unsigned long len, |
| 264 | unsigned long prot, unsigned long flags, unsigned long fd, | 231 | unsigned long prot, unsigned long flags, unsigned long fd, |
| @@ -266,14 +233,16 @@ asmlinkage unsigned long sys_mmap2(unsigned long addr, unsigned long len, | |||
| 266 | { | 233 | { |
| 267 | /* Make sure the shift for mmap2 is constant (12), no matter what PAGE_SIZE | 234 | /* Make sure the shift for mmap2 is constant (12), no matter what PAGE_SIZE |
| 268 | we have. */ | 235 | we have. */ |
| 269 | return do_mmap2(addr, len, prot, flags, fd, pgoff >> (PAGE_SHIFT - 12)); | 236 | return sys_mmap_pgoff(addr, len, prot, flags, fd, |
| 237 | pgoff >> (PAGE_SHIFT - 12)); | ||
| 270 | } | 238 | } |
| 271 | 239 | ||
| 272 | asmlinkage unsigned long sys_mmap(unsigned long addr, unsigned long len, | 240 | asmlinkage unsigned long sys_mmap(unsigned long addr, unsigned long len, |
| 273 | unsigned long prot, unsigned long flags, unsigned long fd, | 241 | unsigned long prot, unsigned long flags, unsigned long fd, |
| 274 | unsigned long off) | 242 | unsigned long off) |
| 275 | { | 243 | { |
| 276 | return do_mmap2(addr, len, prot, flags, fd, off >> PAGE_SHIFT); | 244 | /* no alignment check? */ |
| 245 | return sys_mmap_pgoff(addr, len, prot, flags, fd, off >> PAGE_SHIFT); | ||
| 277 | } | 246 | } |
| 278 | 247 | ||
| 279 | long sparc_remap_file_pages(unsigned long start, unsigned long size, | 248 | long sparc_remap_file_pages(unsigned long start, unsigned long size, |
| @@ -287,27 +256,6 @@ long sparc_remap_file_pages(unsigned long start, unsigned long size, | |||
| 287 | (pgoff >> (PAGE_SHIFT - 12)), flags); | 256 | (pgoff >> (PAGE_SHIFT - 12)), flags); |
| 288 | } | 257 | } |
| 289 | 258 | ||
| 290 | extern unsigned long do_mremap(unsigned long addr, | ||
| 291 | unsigned long old_len, unsigned long new_len, | ||
| 292 | unsigned long flags, unsigned long new_addr); | ||
| 293 | |||
| 294 | asmlinkage unsigned long sparc_mremap(unsigned long addr, | ||
| 295 | unsigned long old_len, unsigned long new_len, | ||
| 296 | unsigned long flags, unsigned long new_addr) | ||
| 297 | { | ||
| 298 | unsigned long ret = -EINVAL; | ||
| 299 | |||
| 300 | if (unlikely(sparc_mmap_check(addr, old_len))) | ||
| 301 | goto out; | ||
| 302 | if (unlikely(sparc_mmap_check(new_addr, new_len))) | ||
| 303 | goto out; | ||
| 304 | down_write(¤t->mm->mmap_sem); | ||
| 305 | ret = do_mremap(addr, old_len, new_len, flags, new_addr); | ||
| 306 | up_write(¤t->mm->mmap_sem); | ||
| 307 | out: | ||
| 308 | return ret; | ||
| 309 | } | ||
| 310 | |||
| 311 | /* we come to here via sys_nis_syscall so it can setup the regs argument */ | 259 | /* we come to here via sys_nis_syscall so it can setup the regs argument */ |
| 312 | asmlinkage unsigned long | 260 | asmlinkage unsigned long |
| 313 | c_sys_nis_syscall (struct pt_regs *regs) | 261 | c_sys_nis_syscall (struct pt_regs *regs) |
diff --git a/arch/sparc/kernel/sys_sparc_64.c b/arch/sparc/kernel/sys_sparc_64.c index e2d102447a43..cfa0e19abe3b 100644 --- a/arch/sparc/kernel/sys_sparc_64.c +++ b/arch/sparc/kernel/sys_sparc_64.c | |||
| @@ -317,10 +317,14 @@ bottomup: | |||
| 317 | unsigned long get_fb_unmapped_area(struct file *filp, unsigned long orig_addr, unsigned long len, unsigned long pgoff, unsigned long flags) | 317 | unsigned long get_fb_unmapped_area(struct file *filp, unsigned long orig_addr, unsigned long len, unsigned long pgoff, unsigned long flags) |
| 318 | { | 318 | { |
| 319 | unsigned long align_goal, addr = -ENOMEM; | 319 | unsigned long align_goal, addr = -ENOMEM; |
| 320 | unsigned long (*get_area)(struct file *, unsigned long, | ||
| 321 | unsigned long, unsigned long, unsigned long); | ||
| 322 | |||
| 323 | get_area = current->mm->get_unmapped_area; | ||
| 320 | 324 | ||
| 321 | if (flags & MAP_FIXED) { | 325 | if (flags & MAP_FIXED) { |
| 322 | /* Ok, don't mess with it. */ | 326 | /* Ok, don't mess with it. */ |
| 323 | return get_unmapped_area(NULL, orig_addr, len, pgoff, flags); | 327 | return get_area(NULL, orig_addr, len, pgoff, flags); |
| 324 | } | 328 | } |
| 325 | flags &= ~MAP_SHARED; | 329 | flags &= ~MAP_SHARED; |
| 326 | 330 | ||
| @@ -333,7 +337,7 @@ unsigned long get_fb_unmapped_area(struct file *filp, unsigned long orig_addr, u | |||
| 333 | align_goal = (64UL * 1024); | 337 | align_goal = (64UL * 1024); |
| 334 | 338 | ||
| 335 | do { | 339 | do { |
| 336 | addr = get_unmapped_area(NULL, orig_addr, len + (align_goal - PAGE_SIZE), pgoff, flags); | 340 | addr = get_area(NULL, orig_addr, len + (align_goal - PAGE_SIZE), pgoff, flags); |
| 337 | if (!(addr & ~PAGE_MASK)) { | 341 | if (!(addr & ~PAGE_MASK)) { |
| 338 | addr = (addr + (align_goal - 1UL)) & ~(align_goal - 1UL); | 342 | addr = (addr + (align_goal - 1UL)) & ~(align_goal - 1UL); |
| 339 | break; | 343 | break; |
| @@ -351,7 +355,7 @@ unsigned long get_fb_unmapped_area(struct file *filp, unsigned long orig_addr, u | |||
| 351 | * be obtained. | 355 | * be obtained. |
| 352 | */ | 356 | */ |
| 353 | if (addr & ~PAGE_MASK) | 357 | if (addr & ~PAGE_MASK) |
| 354 | addr = get_unmapped_area(NULL, orig_addr, len, pgoff, flags); | 358 | addr = get_area(NULL, orig_addr, len, pgoff, flags); |
| 355 | 359 | ||
| 356 | return addr; | 360 | return addr; |
| 357 | } | 361 | } |
| @@ -399,18 +403,6 @@ void arch_pick_mmap_layout(struct mm_struct *mm) | |||
| 399 | } | 403 | } |
| 400 | } | 404 | } |
| 401 | 405 | ||
| 402 | SYSCALL_DEFINE1(sparc_brk, unsigned long, brk) | ||
| 403 | { | ||
| 404 | /* People could try to be nasty and use ta 0x6d in 32bit programs */ | ||
| 405 | if (test_thread_flag(TIF_32BIT) && brk >= STACK_TOP32) | ||
| 406 | return current->mm->brk; | ||
| 407 | |||
| 408 | if (unlikely(straddles_64bit_va_hole(current->mm->brk, brk))) | ||
| 409 | return current->mm->brk; | ||
| 410 | |||
| 411 | return sys_brk(brk); | ||
| 412 | } | ||
| 413 | |||
| 414 | /* | 406 | /* |
| 415 | * sys_pipe() is the normal C calling standard for creating | 407 | * sys_pipe() is the normal C calling standard for creating |
| 416 | * a pipe. It's not the way unix traditionally does this, though. | 408 | * a pipe. It's not the way unix traditionally does this, though. |
| @@ -568,23 +560,13 @@ SYSCALL_DEFINE6(mmap, unsigned long, addr, unsigned long, len, | |||
| 568 | unsigned long, prot, unsigned long, flags, unsigned long, fd, | 560 | unsigned long, prot, unsigned long, flags, unsigned long, fd, |
| 569 | unsigned long, off) | 561 | unsigned long, off) |
| 570 | { | 562 | { |
| 571 | struct file * file = NULL; | 563 | unsigned long retval = -EINVAL; |
| 572 | unsigned long retval = -EBADF; | ||
| 573 | |||
| 574 | if (!(flags & MAP_ANONYMOUS)) { | ||
| 575 | file = fget(fd); | ||
| 576 | if (!file) | ||
| 577 | goto out; | ||
| 578 | } | ||
| 579 | flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE); | ||
| 580 | len = PAGE_ALIGN(len); | ||
| 581 | 564 | ||
| 582 | down_write(¤t->mm->mmap_sem); | 565 | if ((off + PAGE_ALIGN(len)) < off) |
| 583 | retval = do_mmap(file, addr, len, prot, flags, off); | 566 | goto out; |
| 584 | up_write(¤t->mm->mmap_sem); | 567 | if (off & ~PAGE_MASK) |
| 585 | 568 | goto out; | |
| 586 | if (file) | 569 | retval = sys_mmap_pgoff(addr, len, prot, flags, fd, off >> PAGE_SHIFT); |
| 587 | fput(file); | ||
| 588 | out: | 570 | out: |
| 589 | return retval; | 571 | return retval; |
| 590 | } | 572 | } |
| @@ -614,12 +596,6 @@ SYSCALL_DEFINE5(64_mremap, unsigned long, addr, unsigned long, old_len, | |||
| 614 | 596 | ||
| 615 | if (test_thread_flag(TIF_32BIT)) | 597 | if (test_thread_flag(TIF_32BIT)) |
| 616 | goto out; | 598 | goto out; |
| 617 | if (unlikely(new_len >= VA_EXCLUDE_START)) | ||
| 618 | goto out; | ||
| 619 | if (unlikely(sparc_mmap_check(addr, old_len))) | ||
| 620 | goto out; | ||
| 621 | if (unlikely(sparc_mmap_check(new_addr, new_len))) | ||
| 622 | goto out; | ||
| 623 | 599 | ||
| 624 | down_write(¤t->mm->mmap_sem); | 600 | down_write(¤t->mm->mmap_sem); |
| 625 | ret = do_mremap(addr, old_len, new_len, flags, new_addr); | 601 | ret = do_mremap(addr, old_len, new_len, flags, new_addr); |
diff --git a/arch/sparc/kernel/systbls.h b/arch/sparc/kernel/systbls.h index a63c5d2d9849..d2f999ae2b85 100644 --- a/arch/sparc/kernel/systbls.h +++ b/arch/sparc/kernel/systbls.h | |||
| @@ -9,7 +9,6 @@ | |||
| 9 | struct new_utsname; | 9 | struct new_utsname; |
| 10 | 10 | ||
| 11 | extern asmlinkage unsigned long sys_getpagesize(void); | 11 | extern asmlinkage unsigned long sys_getpagesize(void); |
| 12 | extern asmlinkage unsigned long sparc_brk(unsigned long brk); | ||
| 13 | extern asmlinkage long sparc_pipe(struct pt_regs *regs); | 12 | extern asmlinkage long sparc_pipe(struct pt_regs *regs); |
| 14 | extern asmlinkage long sys_ipc(unsigned int call, int first, | 13 | extern asmlinkage long sys_ipc(unsigned int call, int first, |
| 15 | unsigned long second, | 14 | unsigned long second, |
diff --git a/arch/sparc/kernel/systbls_32.S b/arch/sparc/kernel/systbls_32.S index ceb1530f8aa6..801fc8e5a0e8 100644 --- a/arch/sparc/kernel/systbls_32.S +++ b/arch/sparc/kernel/systbls_32.S | |||
| @@ -19,7 +19,7 @@ sys_call_table: | |||
| 19 | /*0*/ .long sys_restart_syscall, sys_exit, sys_fork, sys_read, sys_write | 19 | /*0*/ .long sys_restart_syscall, sys_exit, sys_fork, sys_read, sys_write |
| 20 | /*5*/ .long sys_open, sys_close, sys_wait4, sys_creat, sys_link | 20 | /*5*/ .long sys_open, sys_close, sys_wait4, sys_creat, sys_link |
| 21 | /*10*/ .long sys_unlink, sunos_execv, sys_chdir, sys_chown16, sys_mknod | 21 | /*10*/ .long sys_unlink, sunos_execv, sys_chdir, sys_chown16, sys_mknod |
| 22 | /*15*/ .long sys_chmod, sys_lchown16, sparc_brk, sys_nis_syscall, sys_lseek | 22 | /*15*/ .long sys_chmod, sys_lchown16, sys_brk, sys_nis_syscall, sys_lseek |
| 23 | /*20*/ .long sys_getpid, sys_capget, sys_capset, sys_setuid16, sys_getuid16 | 23 | /*20*/ .long sys_getpid, sys_capget, sys_capset, sys_setuid16, sys_getuid16 |
| 24 | /*25*/ .long sys_vmsplice, sys_ptrace, sys_alarm, sys_sigaltstack, sys_pause | 24 | /*25*/ .long sys_vmsplice, sys_ptrace, sys_alarm, sys_sigaltstack, sys_pause |
| 25 | /*30*/ .long sys_utime, sys_lchown, sys_fchown, sys_access, sys_nice | 25 | /*30*/ .long sys_utime, sys_lchown, sys_fchown, sys_access, sys_nice |
| @@ -67,7 +67,7 @@ sys_call_table: | |||
| 67 | /*235*/ .long sys_fstatfs64, sys_llseek, sys_mlock, sys_munlock, sys_mlockall | 67 | /*235*/ .long sys_fstatfs64, sys_llseek, sys_mlock, sys_munlock, sys_mlockall |
| 68 | /*240*/ .long sys_munlockall, sys_sched_setparam, sys_sched_getparam, sys_sched_setscheduler, sys_sched_getscheduler | 68 | /*240*/ .long sys_munlockall, sys_sched_setparam, sys_sched_getparam, sys_sched_setscheduler, sys_sched_getscheduler |
| 69 | /*245*/ .long sys_sched_yield, sys_sched_get_priority_max, sys_sched_get_priority_min, sys_sched_rr_get_interval, sys_nanosleep | 69 | /*245*/ .long sys_sched_yield, sys_sched_get_priority_max, sys_sched_get_priority_min, sys_sched_rr_get_interval, sys_nanosleep |
| 70 | /*250*/ .long sparc_mremap, sys_sysctl, sys_getsid, sys_fdatasync, sys_nfsservctl | 70 | /*250*/ .long sys_mremap, sys_sysctl, sys_getsid, sys_fdatasync, sys_nfsservctl |
| 71 | /*255*/ .long sys_sync_file_range, sys_clock_settime, sys_clock_gettime, sys_clock_getres, sys_clock_nanosleep | 71 | /*255*/ .long sys_sync_file_range, sys_clock_settime, sys_clock_gettime, sys_clock_getres, sys_clock_nanosleep |
| 72 | /*260*/ .long sys_sched_getaffinity, sys_sched_setaffinity, sys_timer_settime, sys_timer_gettime, sys_timer_getoverrun | 72 | /*260*/ .long sys_sched_getaffinity, sys_sched_setaffinity, sys_timer_settime, sys_timer_gettime, sys_timer_getoverrun |
| 73 | /*265*/ .long sys_timer_delete, sys_timer_create, sys_nis_syscall, sys_io_setup, sys_io_destroy | 73 | /*265*/ .long sys_timer_delete, sys_timer_create, sys_nis_syscall, sys_io_setup, sys_io_destroy |
diff --git a/arch/sparc/kernel/systbls_64.S b/arch/sparc/kernel/systbls_64.S index cc8e7862e95a..e575b46bd7a9 100644 --- a/arch/sparc/kernel/systbls_64.S +++ b/arch/sparc/kernel/systbls_64.S | |||
| @@ -21,7 +21,7 @@ sys_call_table32: | |||
| 21 | /*0*/ .word sys_restart_syscall, sys32_exit, sys_fork, sys_read, sys_write | 21 | /*0*/ .word sys_restart_syscall, sys32_exit, sys_fork, sys_read, sys_write |
| 22 | /*5*/ .word sys32_open, sys_close, sys32_wait4, sys32_creat, sys_link | 22 | /*5*/ .word sys32_open, sys_close, sys32_wait4, sys32_creat, sys_link |
| 23 | /*10*/ .word sys_unlink, sunos_execv, sys_chdir, sys_chown16, sys32_mknod | 23 | /*10*/ .word sys_unlink, sunos_execv, sys_chdir, sys_chown16, sys32_mknod |
| 24 | /*15*/ .word sys_chmod, sys_lchown16, sys_sparc_brk, sys32_perfctr, sys32_lseek | 24 | /*15*/ .word sys_chmod, sys_lchown16, sys_brk, sys32_perfctr, sys32_lseek |
| 25 | /*20*/ .word sys_getpid, sys_capget, sys_capset, sys_setuid16, sys_getuid16 | 25 | /*20*/ .word sys_getpid, sys_capget, sys_capset, sys_setuid16, sys_getuid16 |
| 26 | /*25*/ .word sys32_vmsplice, compat_sys_ptrace, sys_alarm, sys32_sigaltstack, sys_pause | 26 | /*25*/ .word sys32_vmsplice, compat_sys_ptrace, sys_alarm, sys32_sigaltstack, sys_pause |
| 27 | /*30*/ .word compat_sys_utime, sys_lchown, sys_fchown, sys32_access, sys32_nice | 27 | /*30*/ .word compat_sys_utime, sys_lchown, sys_fchown, sys32_access, sys32_nice |
| @@ -68,7 +68,7 @@ sys_call_table32: | |||
| 68 | .word compat_sys_fstatfs64, sys_llseek, sys_mlock, sys_munlock, sys32_mlockall | 68 | .word compat_sys_fstatfs64, sys_llseek, sys_mlock, sys_munlock, sys32_mlockall |
| 69 | /*240*/ .word sys_munlockall, sys32_sched_setparam, sys32_sched_getparam, sys32_sched_setscheduler, sys32_sched_getscheduler | 69 | /*240*/ .word sys_munlockall, sys32_sched_setparam, sys32_sched_getparam, sys32_sched_setscheduler, sys32_sched_getscheduler |
| 70 | .word sys_sched_yield, sys32_sched_get_priority_max, sys32_sched_get_priority_min, sys32_sched_rr_get_interval, compat_sys_nanosleep | 70 | .word sys_sched_yield, sys32_sched_get_priority_max, sys32_sched_get_priority_min, sys32_sched_rr_get_interval, compat_sys_nanosleep |
| 71 | /*250*/ .word sys32_mremap, compat_sys_sysctl, sys32_getsid, sys_fdatasync, sys32_nfsservctl | 71 | /*250*/ .word sys_mremap, compat_sys_sysctl, sys32_getsid, sys_fdatasync, sys32_nfsservctl |
| 72 | .word sys32_sync_file_range, compat_sys_clock_settime, compat_sys_clock_gettime, compat_sys_clock_getres, sys32_clock_nanosleep | 72 | .word sys32_sync_file_range, compat_sys_clock_settime, compat_sys_clock_gettime, compat_sys_clock_getres, sys32_clock_nanosleep |
| 73 | /*260*/ .word compat_sys_sched_getaffinity, compat_sys_sched_setaffinity, sys32_timer_settime, compat_sys_timer_gettime, sys_timer_getoverrun | 73 | /*260*/ .word compat_sys_sched_getaffinity, compat_sys_sched_setaffinity, sys32_timer_settime, compat_sys_timer_gettime, sys_timer_getoverrun |
| 74 | .word sys_timer_delete, compat_sys_timer_create, sys_ni_syscall, compat_sys_io_setup, sys_io_destroy | 74 | .word sys_timer_delete, compat_sys_timer_create, sys_ni_syscall, compat_sys_io_setup, sys_io_destroy |
| @@ -96,7 +96,7 @@ sys_call_table: | |||
| 96 | /*0*/ .word sys_restart_syscall, sparc_exit, sys_fork, sys_read, sys_write | 96 | /*0*/ .word sys_restart_syscall, sparc_exit, sys_fork, sys_read, sys_write |
| 97 | /*5*/ .word sys_open, sys_close, sys_wait4, sys_creat, sys_link | 97 | /*5*/ .word sys_open, sys_close, sys_wait4, sys_creat, sys_link |
| 98 | /*10*/ .word sys_unlink, sys_nis_syscall, sys_chdir, sys_chown, sys_mknod | 98 | /*10*/ .word sys_unlink, sys_nis_syscall, sys_chdir, sys_chown, sys_mknod |
| 99 | /*15*/ .word sys_chmod, sys_lchown, sys_sparc_brk, sys_perfctr, sys_lseek | 99 | /*15*/ .word sys_chmod, sys_lchown, sys_brk, sys_perfctr, sys_lseek |
| 100 | /*20*/ .word sys_getpid, sys_capget, sys_capset, sys_setuid, sys_getuid | 100 | /*20*/ .word sys_getpid, sys_capget, sys_capset, sys_setuid, sys_getuid |
| 101 | /*25*/ .word sys_vmsplice, sys_ptrace, sys_alarm, sys_sigaltstack, sys_nis_syscall | 101 | /*25*/ .word sys_vmsplice, sys_ptrace, sys_alarm, sys_sigaltstack, sys_nis_syscall |
| 102 | /*30*/ .word sys_utime, sys_nis_syscall, sys_nis_syscall, sys_access, sys_nice | 102 | /*30*/ .word sys_utime, sys_nis_syscall, sys_nis_syscall, sys_access, sys_nice |
