]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
uprobes: Remove redundant spinlock in uprobe_deny_signal()
authorLiao Chang <liaochang1@huawei.com>
Fri, 24 Jan 2025 09:38:25 +0000 (09:38 +0000)
committerPeter Zijlstra <peterz@infradead.org>
Mon, 3 Feb 2025 10:46:06 +0000 (11:46 +0100)
Since clearing a bit in thread_info is an atomic operation, the spinlock
is redundant and can be removed, reducing lock contention is good for
performance.

Signed-off-by: Liao Chang <liaochang1@huawei.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: "Masami Hiramatsu (Google)" <mhiramat@kernel.org>
Acked-by: Oleg Nesterov <oleg@redhat.com>
Link: https://lore.kernel.org/r/20250124093826.2123675-2-liaochang1@huawei.com
kernel/events/uprobes.c

index 2ca797cbe465f2d4a596e4a5d0d2d5a45e5cacf9..33bd6083f7c40534c6c3eb0a556a12b5b362a213 100644 (file)
@@ -2302,9 +2302,7 @@ bool uprobe_deny_signal(void)
        WARN_ON_ONCE(utask->state != UTASK_SSTEP);
 
        if (task_sigpending(t)) {
-               spin_lock_irq(&t->sighand->siglock);
                clear_tsk_thread_flag(t, TIF_SIGPENDING);
-               spin_unlock_irq(&t->sighand->siglock);
 
                if (__fatal_signal_pending(t) || arch_uprobe_xol_was_trapped(t)) {
                        utask->state = UTASK_SSTEP_TRAPPED;