lkml.org 
[lkml]   [2022]   [Aug]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.4 030/389] parisc: io_pgetevents_time64() needs compat syscall in 32-bit compat mode
    Date
    From: Helge Deller <deller@gmx.de>

    commit 6431e92fc827bdd2d28f79150d90415ba9ce0d21 upstream.

    For all syscalls in 32-bit compat mode on 64-bit kernels the upper
    32-bits of the 64-bit registers are zeroed out, so a negative 32-bit
    signed value will show up as positive 64-bit signed value.

    This behaviour breaks the io_pgetevents_time64() syscall which expects
    signed 64-bit values for the "min_nr" and "nr" parameters.
    Fix this by switching to the compat_sys_io_pgetevents_time64() syscall,
    which uses "compat_long_t" types for those parameters.

    Cc: <stable@vger.kernel.org> # v5.1+
    Signed-off-by: Helge Deller <deller@gmx.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    arch/parisc/kernel/syscalls/syscall.tbl | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/arch/parisc/kernel/syscalls/syscall.tbl
    +++ b/arch/parisc/kernel/syscalls/syscall.tbl
    @@ -413,7 +413,7 @@
    412 32 utimensat_time64 sys_utimensat sys_utimensat
    413 32 pselect6_time64 sys_pselect6 compat_sys_pselect6_time64
    414 32 ppoll_time64 sys_ppoll compat_sys_ppoll_time64
    -416 32 io_pgetevents_time64 sys_io_pgetevents sys_io_pgetevents
    +416 32 io_pgetevents_time64 sys_io_pgetevents compat_sys_io_pgetevents_time64
    417 32 recvmmsg_time64 sys_recvmmsg compat_sys_recvmmsg_time64
    418 32 mq_timedsend_time64 sys_mq_timedsend sys_mq_timedsend
    419 32 mq_timedreceive_time64 sys_mq_timedreceive sys_mq_timedreceive

    \
     
     \ /
      Last update: 2022-08-23 13:13    [W:2.142 / U:0.044 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site