Re: [PATCH 11/27] [AARCH64] Syscalls for ILP32 are passed always via 64bit values.

From: Yury Norov
Date: Thu Jun 23 2016 - 02:32:54 EST


On Wed, Jun 22, 2016 at 04:49:52PM +0100, Catalin Marinas wrote:
> On Tue, Jun 21, 2016 at 08:06:55AM +0300, Yury Norov wrote:
> > This patch adds support for ILP32 syscalls, sign and zero extending
> > where needed. Unlike LP64, pointers are 32bit and need to be zero
> > extended rather than the standard sign extend that the code would do.
> > We take advatage of ssize_t being long rather than int for ILP32,
> > to get this correct.
>
> Unless I misunderstand what this patch does, I thought we agreed that
> 32-bit arguments are passed as 32-bit values and it is the kernel's
> responsibility to zero or sign-extend the upper half (IOW, assume
> garbage just like the PCS ABI).
>
> We are still debating whether 64-bit values are passed in one or two
> registers but this doesn't change the situation of 32-bit values like
> pointers.
>
> --
> Catalin

Hi Catalin,

I dropped this patch with no regressions. It might be needed it we
choose s390-like wrappers, but this series is not about it anyway.

BTW, what about 64-bit values passing? Any new comments?

Yury.