Re: [PATCH] s390: fix syscall_get_error for compat processes

2020-06-16 Thread Heiko Carstens
On Tue, Jun 02, 2020 at 09:00:51PM +0300, Dmitry V. Levin wrote: > If both the tracer and the tracee are compat processes, and gprs[2] > is assigned a value by __poke_user_compat, then the higher 32 bits > of gprs[2] are cleared, IS_ERR_VALUE() always returns false, and > syscall_get_error() always

[PATCH] s390: fix syscall_get_error for compat processes

2020-06-02 Thread Dmitry V. Levin
If both the tracer and the tracee are compat processes, and gprs[2] is assigned a value by __poke_user_compat, then the higher 32 bits of gprs[2] are cleared, IS_ERR_VALUE() always returns false, and syscall_get_error() always returns 0. Fix the implementation by sign-extending the value for compa