When the Linux kernel creates the stack frame for a signal handler, a call to
sigreturn is inserted into the stack frame so that the the signal
handler will call sigreturn upon return. This inserted call to
sigreturn cleans up the stack so that the process can restart from
where it was interrupted by the signal.