]> 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)
commit32f28386808066f4272800b60c9274e47217d09d
tree0200f303659efcbc60813909ee4af95b96f7f938
parent6148cde2fd4750bb57057972020b122e6cc44c02
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