On Thu, Jul 30, 2020 at 1:48 PM Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote: > On Thu, Jul 30, 2020 at 11:18:04AM +0200, Arnd Bergmann wrote: > > The in_ia32_syscall() check should be completely reliable in telling whether > > we are called from read() by an ia32 task or not, and we use the same > > logic for input_event, which has a similar problem (on all compat architectures, > > not just x86). > > By the way any reason why we have to have in_ia32_syscall() instead of > in_compat_syscall()? x86 is the only architecture that has different struct alignment between 32-bit and 64-bit processes, so others don't have this particular problem. On top of that, x86 also has two different 32-bit ABIs and only one of them needs the workaround, while the other (x32) uses the same struct layout as x86-64 and must use the normal code path. Arnd