Thread (10 messages) flat view 10 messages, 4 authors, 2021-09-23

Re: ia32 signed long treated as x64 unsigned int by __ia32_sys*

From: Arnd Bergmann <arnd@arndb.de>
Date: 2021-09-23 10:25:28
Also in: linux-fsdevel, lkml, ltp

On Thu, Sep 23, 2021 at 12:01 PM Richard Palethorpe [off-list ref] wrote:
Arnd Bergmann [off-list ref] writes:
quoted
On Wed, Sep 22, 2021 at 10:46 AM Richard Palethorpe [off-list ref] wrote:
quoted
Richard Palethorpe [off-list ref] writes:
I also noticed that only x86 and s390 even have separate entry
points for normal syscalls when called in compat mode, while
the others all just zero the upper halves of the registers in the
low-level entry code and then call the native entry point.
It looks to me like aarch64 also has something similar? At any rate, I
can try to fix it for x86 and investigate what else might be effected.
arm64 also has a custom asm/syscall_wrapper.h, but it only does
this for accessing pt_regs (as x86 does), not for doing any
argument conversion. x86 does the 32-to-64 widening in the
wrapper, arm64 relies on the pt_regs already having the upper
halves zeroed.

        Arnd
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help