]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
rseq: Remove the ksig argument from rseq_handle_notify_resume()
authorThomas Gleixner <tglx@linutronix.de>
Mon, 27 Oct 2025 08:44:22 +0000 (09:44 +0100)
committerIngo Molnar <mingo@kernel.org>
Tue, 4 Nov 2025 07:30:01 +0000 (08:30 +0100)
There is no point for this being visible in the resume_to_user_mode()
handling.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Reviewed-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Link: https://patch.msgid.link/20251027084306.211520245@linutronix.de
include/linux/resume_user_mode.h
include/linux/rseq.h

index e0135e0adae02f851bafb8bb4ba706cba8c2c288..dd3bf7da90a8ce034ea0c648c9864f4684e59b7c 100644 (file)
@@ -59,7 +59,7 @@ static inline void resume_user_mode_work(struct pt_regs *regs)
        mem_cgroup_handle_over_high(GFP_KERNEL);
        blkcg_maybe_throttle_current();
 
-       rseq_handle_notify_resume(NULL, regs);
+       rseq_handle_notify_resume(regs);
 }
 
 #endif /* LINUX_RESUME_USER_MODE_H */
index 21f875af0e9623f9fc13921e595ae4d8c4824664..d72ddf7ce90380687edf5c97365a7236726f5a5b 100644 (file)
@@ -37,19 +37,20 @@ static inline void rseq_set_notify_resume(struct task_struct *t)
 
 void __rseq_handle_notify_resume(struct ksignal *sig, struct pt_regs *regs);
 
-static inline void rseq_handle_notify_resume(struct ksignal *ksig,
-                                            struct pt_regs *regs)
+static inline void rseq_handle_notify_resume(struct pt_regs *regs)
 {
        if (current->rseq)
-               __rseq_handle_notify_resume(ksig, regs);
+               __rseq_handle_notify_resume(NULL, regs);
 }
 
 static inline void rseq_signal_deliver(struct ksignal *ksig,
                                       struct pt_regs *regs)
 {
-       scoped_guard(RSEQ_EVENT_GUARD)
-               __set_bit(RSEQ_EVENT_SIGNAL_BIT, &current->rseq_event_mask);
-       rseq_handle_notify_resume(ksig, regs);
+       if (current->rseq) {
+               scoped_guard(RSEQ_EVENT_GUARD)
+                       __set_bit(RSEQ_EVENT_SIGNAL_BIT, &current->rseq_event_mask);
+               __rseq_handle_notify_resume(ksig, regs);
+       }
 }
 
 /* rseq_preempt() requires preemption to be disabled. */
@@ -103,7 +104,7 @@ static inline void rseq_execve(struct task_struct *t)
 
 #else /* CONFIG_RSEQ */
 static inline void rseq_set_notify_resume(struct task_struct *t) { }
-static inline void rseq_handle_notify_resume(struct ksignal *ksig, struct pt_regs *regs) { }
+static inline void rseq_handle_notify_resume(struct pt_regs *regs) { }
 static inline void rseq_signal_deliver(struct ksignal *ksig, struct pt_regs *regs) { }
 static inline void rseq_preempt(struct task_struct *t) { }
 static inline void rseq_migrate(struct task_struct *t) { }