Re: [PATCH v3 2/3] x86/signal: Rewire the restart_block() syscall to have a constant nr

From: Oleg Nesterov
Date: Thu Jun 23 2016 - 17:20:35 EST


So I think this series is fine, yesterday I misread it completely.

On 06/20, Andy Lutomirski wrote:
>
> Suppose a 64-bit task A traces a 32-bit task B.

And even if they are both 64-bit ...

> B makes a syscall
> that uses ERESTART_RESTARTBLOCK and gets a signal. A catches
> syscall exit, snapshots B's regs, changes the regs, and resumes.
> Then A restores the snapshot of B's regs.

perhaps in this case gdb should always turn ERESTART_RESTARTBLOCK
into EINTR, because we can't know if B->restart_block is still the
same; it can be changed if the tracee does another RESTARTBLOCK
syscall after the first resume.

But anyway the patch looks good to me.

Oleg.