Merge tag 'core_urgent_for_v5.16_rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull signal handlign fix from Borislav Petkov: - Prevent lock contention on the new sigaltstack lock on the common-case path, when no changes have been made to the alternative signal stack. * tag 'core_urgent_for_v5.16_rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: signal: Skip the altstack update when not needed
This commit is contained in:
@@ -4185,6 +4185,15 @@ do_sigaltstack (const stack_t *ss, stack_t *oss, unsigned long sp,
|
||||
ss_mode != 0))
|
||||
return -EINVAL;
|
||||
|
||||
/*
|
||||
* Return before taking any locks if no actual
|
||||
* sigaltstack changes were requested.
|
||||
*/
|
||||
if (t->sas_ss_sp == (unsigned long)ss_sp &&
|
||||
t->sas_ss_size == ss_size &&
|
||||
t->sas_ss_flags == ss_flags)
|
||||
return 0;
|
||||
|
||||
sigaltstack_lock();
|
||||
if (ss_mode == SS_DISABLE) {
|
||||
ss_size = 0;
|
||||
|
||||
Reference in New Issue
Block a user