ARM: 9114/1: oabi-compat: rework sys_semtimedop emulation
authorArnd Bergmann <arnd@arndb.de>
Wed, 11 Aug 2021 07:30:23 +0000 (08:30 +0100)
committerRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Fri, 20 Aug 2021 10:39:26 +0000 (11:39 +0100)
commitbdec0145286f7e6be9b3134aa35f0f335fa27c38
tree4d7bf334c059da611f7dcb9e6edf7df14969db73
parent249dbe74d3c4b568a623fb55c56cddf19fdf0b89
ARM: 9114/1: oabi-compat: rework sys_semtimedop emulation

sys_oabi_semtimedop() is one of the last users of set_fs() on Arm. To
remove this one, expose the internal code of the actual implementation
that operates on a kernel pointer and call it directly after copying.

There should be no measurable impact on the normal execution of this
function, and it makes the overly long function a little shorter, which
may help readability.

While reworking the oabi version, make it behave a little more like
the native one, using kvmalloc_array() and restructure the code
flow in a similar way.

The naming of __do_semtimedop() is not very good, I hope someone can
come up with a better name.

One regression was spotted by kernel test robot <rong.a.chen@intel.com>
and fixed before the first mailing list submission.

Acked-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
arch/arm/kernel/sys_oabi-compat.c
include/linux/syscalls.h
ipc/sem.c