patch-5.15.79-rt54.patch
[platform/kernel/linux-rpi.git] / arch / arm64 / kernel / signal.c
index b3e1bec..0318356 100644 (file)
@@ -922,7 +922,7 @@ static void do_signal(struct pt_regs *regs)
 void do_notify_resume(struct pt_regs *regs, unsigned long thread_flags)
 {
        do {
-               if (thread_flags & _TIF_NEED_RESCHED) {
+               if (thread_flags & _TIF_NEED_RESCHED_MASK) {
                        /* Unmask Debug and SError for the next task */
                        local_daif_restore(DAIF_PROCCTX_NOIRQ);
 
@@ -930,6 +930,14 @@ void do_notify_resume(struct pt_regs *regs, unsigned long thread_flags)
                } else {
                        local_daif_restore(DAIF_PROCCTX);
 
+#ifdef ARCH_RT_DELAYS_SIGNAL_SEND
+                       if (unlikely(current->forced_info.si_signo)) {
+                               struct task_struct *t = current;
+                               force_sig_info(&t->forced_info);
+                               t->forced_info.si_signo = 0;
+                       }
+#endif
+
                        if (thread_flags & _TIF_UPROBE)
                                uprobe_notify_resume(regs);