The use of SYS_sigreturn is unnecessary here.
If handle_signal is called when a signal is delivered, it can just return normally back to sigcode which will call sigreturn anyway.
In case handle_signal is called by check_deferred_signal, using setcontext is better than SYS_sigreturn because that is the correct system call to pair with the earlier getcontext.