Re: linux-next: x86: Unalbe to run x32 processes on the x86_64 kernel

From: Thomas Gleixner
Date: Tue Mar 21 2017 - 08:49:54 EST


On Tue, 21 Mar 2017, Adam Borowski wrote:
> On Tue, Mar 21, 2017 at 07:45:39AM +0100, Ingo Molnar wrote:
> > * Andrei Vagin <avagin@xxxxxxxxx> wrote:
> >
> > > # first bad commit: [45fc8757d1d2128e342b4e7ef39adedf7752faac] x86:
> > > Make the GDT remapping read-only on 64-bit
> >
> > Just wondering, does the following commit fix it:
> >
> > 5b781c7e317f x86/tls: Forcibly set the accessed bit in TLS segments
>
> It does fix i386 but not x32.
>
> By "x32" I mean CONFIG_X86_X32, by "i386" CONFIG_IA32_EMULATION, contrary to
> Andrei's first report. The naming of the new ABI wasn't too fortunate...

The X32 issue is unrelated to the GDT mapping.

What happens is that the mmap rework from Dmitry switched X32 to use 64bit
mappings, which is wrong. X32 has 64bit instructions and syscalls and 32bit
address space.

Dmitry, can you please have a look and fix that up? For reproduction just
compile helloworld.c with gcc -mx32.

Thanks,

tglx