Messages in this thread | | | Date | Wed, 29 Mar 2017 20:50:41 +0200 | From | Oleg Nesterov <> | Subject | Re: syscall_get_error() && TS_ checks |
| |
On 03/29, Linus Torvalds wrote: > > That said, I'm not sure why you want to change this in the first > place? I think the current syscall_get_error() - with explicit compat > handling and all - is fine.
To simplify this logic. To kill TS_I386_REGS_POKED (which doesn't really work and can't) and to remove the subtle dependency on TS_COMPAT in ret- with-signal paths.
Again, afaics we only need these compat checks because regs->ax could be changed by 32-bit debugger without sign-extension. And TS_I386_REGS_POKED means that if TS_COMPAT is not set, then the debugger should have also changed regs->orig_ax. This mostly works, but imo too fragile.
Currently we have the same check in get_nr_restart_syscall() but it is even more broken (see the patch/changelog), so it should go away and in this case it would be nice to avoid these checks in do_signal() path too.
Oleg.
| |