]> git.baikalelectronics.ru Git - kernel.git/commit
powerpc/compat_sys: swap hi/lo parts of 64-bit syscall args in LE mode
authorWill Springer <skirmisher@protonmail.com>
Sun, 3 Jan 2021 01:35:30 +0000 (01:35 +0000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 11 Feb 2021 12:35:07 +0000 (23:35 +1100)
commit57f48b4b74e720e88b6d8674ae5d3804a8d03915
tree0200f303659efcbc60813909ee4af95b96f7f938
parentcaccf2ac5c5d085cd35043027b3eb93c4ffead07
powerpc/compat_sys: swap hi/lo parts of 64-bit syscall args in LE mode

Swap upper/lower 32 bits for 64-bit compat syscalls, conditioned on
endianness. This is modeled after the same functionality in
arch/mips/kernel/linux32.c.

This fixes compat_sys on ppc64le, when called by 32-bit little-endian
processes.

Tested with `file /bin/bash` (pread64) and `truncate -s 5G test`
(ftruncate64).

Signed-off-by: Will Springer <skirmisher@protonmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/2765111.e9J7NaK4W3@sheen
arch/powerpc/kernel/sys_ppc32.c