[PATCH v6 14/21] arm64:ilp32: add sys_ilp32.c and a separate table (in entry.S) to use it

Yury Norov
2016-01-08T11:13:18Z

On Fri, Jan 08, 2016 at 10:21:06AM +0100, Arnd Bergmann wrote:
> On Friday 08 January 2016 02:34:32 Yury Norov wrote:
>
> > @@ -688,6 +692,12 @@ ni_sys:
> > b ret_fast_syscall
> > ENDPROC(el0_svc)
> >
> > +#ifdef CONFIG_ARM64_ILP32
> > +el0_ilp32_svc:
> > + adrp stbl, sys_call_ilp32_table // load syscall table pointer
> > + b el0_svc_naked
> > +#endif
>
> Don't we still need some code that clears the top halves of the 32-bit
> arguments? That thread has taken so many turns now that I'm confused
> about what we actually need, but I thought we had concluded that your
> current approach has at some some problems.

We are discussing how to do it better - make a generic solution from
s390 with individual syscall handling, or reproduce s390 solution for
ILP32, or zero top-half registers and not use top half of register at
all. As I understand, we stand on 1st option, and agreed to introduce
it separately.

>
> > +#include <asm/syscall.h>
> > +
> > +#undef __SYSCALL
> > +#undef __SC_COMP
> > +#undef __SC_3264
> > +#undef __SC_COMP_3264
>
> The four #undef are not needed, right?
>
> Arnd