[patch V2 04/37] rseq: Remove the ksig argument from rseq_handle_notify_resume()

Thomas Gleixner posted 37 patches 1 month, 1 week ago
There is a newer version of this series
[patch V2 04/37] rseq: Remove the ksig argument from rseq_handle_notify_resume()
Posted by Thomas Gleixner 1 month, 1 week ago
There is no point for this being visible in the resume_to_user_mode()
handling.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 include/linux/resume_user_mode.h |    2 +-
 include/linux/rseq.h             |   13 +++++++------
 2 files changed, 8 insertions(+), 7 deletions(-)

--- a/include/linux/resume_user_mode.h
+++ b/include/linux/resume_user_mode.h
@@ -59,7 +59,7 @@ static inline void resume_user_mode_work
 	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 */
--- a/include/linux/rseq.h
+++ b/include/linux/rseq.h
@@ -37,19 +37,20 @@ static inline void rseq_set_notify_resum
 
 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. */
Re: [patch V2 04/37] rseq: Remove the ksig argument from rseq_handle_notify_resume()
Posted by Mathieu Desnoyers 1 month, 1 week ago
On 2025-08-23 12:39, Thomas Gleixner wrote:
> There is no point for this being visible in the resume_to_user_mode()
> handling.
> 
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

Reviewed-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>

> ---
>   include/linux/resume_user_mode.h |    2 +-
>   include/linux/rseq.h             |   13 +++++++------
>   2 files changed, 8 insertions(+), 7 deletions(-)
> 
> --- a/include/linux/resume_user_mode.h
> +++ b/include/linux/resume_user_mode.h
> @@ -59,7 +59,7 @@ static inline void resume_user_mode_work
>   	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 */
> --- a/include/linux/rseq.h
> +++ b/include/linux/rseq.h
> @@ -37,19 +37,20 @@ static inline void rseq_set_notify_resum
>   
>   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. */
> 


-- 
Mathieu Desnoyers
EfficiOS Inc.
https://www.efficios.com