[lkml]   [2007]   [Apr]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    Subject[patch 12/33] Fix compat sys_ipc() on sparc64
    -stable review patch.  If anyone has any objections, please let us know.

    From: David Miller <>

    The 32-bit syscall trampoline for sys_ipc() on sparc64
    was sign extending various arguments, which is bogus when
    using compat_sys_ipc() since that function expects zero
    extended copies of all the arguments.

    This bug breaks the sparc64 kernel when built with gcc-4.2.x
    among other things.

    [SPARC64]: Fix arg passing to compat_sys_ipc().

    Do not sign extend args using the sys32_ipc stub, that is
    buggy and unnecessary.

    Based upon an excellent report by Mikael Pettersson.

    Signed-off-by: David S. Miller <>
    Signed-off-by: Greg Kroah-Hartman <>

    arch/sparc64/kernel/sys32.S | 1 -
    arch/sparc64/kernel/systbls.S | 2 +-
    2 files changed, 1 insertion(+), 2 deletions(-)

    --- a/arch/sparc64/kernel/sys32.S
    +++ b/arch/sparc64/kernel/sys32.S
    @@ -91,7 +91,6 @@ SIGN1(sys32_select, compat_sys_select, %
    SIGN1(sys32_mkdir, sys_mkdir, %o1)
    SIGN3(sys32_futex, compat_sys_futex, %o1, %o2, %o5)
    SIGN1(sys32_sysfs, compat_sys_sysfs, %o0)
    -SIGN3(sys32_ipc, compat_sys_ipc, %o1, %o2, %o3)
    SIGN2(sys32_sendfile, compat_sys_sendfile, %o0, %o1)
    SIGN2(sys32_sendfile64, compat_sys_sendfile64, %o0, %o1)
    SIGN1(sys32_prctl, sys_prctl, %o0)
    --- a/arch/sparc64/kernel/systbls.S
    +++ b/arch/sparc64/kernel/systbls.S
    @@ -62,7 +62,7 @@ sys_call_table32:
    /*200*/ .word sys32_ssetmask, sys_sigsuspend, compat_sys_newlstat, sys_uselib, compat_sys_old_readdir
    .word sys32_readahead, sys32_socketcall, sys32_syslog, sys32_lookup_dcookie, sys32_fadvise64
    /*210*/ .word sys32_fadvise64_64, sys32_tgkill, sys32_waitpid, sys_swapoff, sys32_sysinfo
    - .word sys32_ipc, sys32_sigreturn, sys_clone, sys32_ioprio_get, compat_sys_adjtimex
    + .word compat_sys_ipc, sys32_sigreturn, sys_clone, sys32_ioprio_get, compat_sys_adjtimex
    /*220*/ .word sys32_sigprocmask, sys_ni_syscall, sys32_delete_module, sys_ni_syscall, sys32_getpgid
    .word sys32_bdflush, sys32_sysfs, sys_nis_syscall, sys32_setfsuid16, sys32_setfsgid16
    /*230*/ .word sys32_select, compat_sys_time, sys32_splice, compat_sys_stime, compat_sys_statfs64
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2007-04-26 19:13    [W:0.020 / U:5.424 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site