Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull rseq fixes from Thomas Gleixer: "A pile of rseq related fixups: - Prevent infinite recursion when delivering SIGSEGV - Remove the abort of rseq critical section on fork() as syscalls inside rseq critical sections are explicitely forbidden. So no point in doing the abort on the child. - Align the rseq structure on 32 bytes in the ARM selftest code. - Fix file permissions of the test script" * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: rseq: Avoid infinite recursion when delivering SIGSEGV rseq/cleanup: Do not abort rseq c.s. in child on fork() rseq/selftests/arm: Align 'struct rseq_cs' on 32 bytes rseq/selftests: Make run_param_test.sh executable
This commit is contained in:
@@ -251,10 +251,10 @@ static int rseq_ip_fixup(struct pt_regs *regs)
|
||||
* respect to other threads scheduled on the same CPU, and with respect
|
||||
* to signal handlers.
|
||||
*/
|
||||
void __rseq_handle_notify_resume(struct pt_regs *regs)
|
||||
void __rseq_handle_notify_resume(struct ksignal *ksig, struct pt_regs *regs)
|
||||
{
|
||||
struct task_struct *t = current;
|
||||
int ret;
|
||||
int ret, sig;
|
||||
|
||||
if (unlikely(t->flags & PF_EXITING))
|
||||
return;
|
||||
@@ -268,7 +268,8 @@ void __rseq_handle_notify_resume(struct pt_regs *regs)
|
||||
return;
|
||||
|
||||
error:
|
||||
force_sig(SIGSEGV, t);
|
||||
sig = ksig ? ksig->sig : 0;
|
||||
force_sigsegv(sig, t);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_DEBUG_RSEQ
|
||||
|
Reference in New Issue
Block a user