]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - kernel/signal.c
ftrace: Fix removing of second function probe
[karo-tx-linux.git] / kernel / signal.c
index 13f9def8b24aecf662dd12095e1d505e909785e4..7e59ebc2c25e669ef60f54d6e3ae6839c34d2f2a 100644 (file)
 #include <linux/slab.h>
 #include <linux/export.h>
 #include <linux/init.h>
-#include <linux/sched.h>
+#include <linux/sched/mm.h>
+#include <linux/sched/user.h>
+#include <linux/sched/debug.h>
+#include <linux/sched/task.h>
+#include <linux/sched/task_stack.h>
+#include <linux/sched/cputime.h>
 #include <linux/fs.h>
 #include <linux/tty.h>
 #include <linux/binfmts.h>
@@ -2395,11 +2400,11 @@ void exit_signals(struct task_struct *tsk)
         * @tsk is about to have PF_EXITING set - lock out users which
         * expect stable threadgroup.
         */
-       threadgroup_change_begin(tsk);
+       cgroup_threadgroup_change_begin(tsk);
 
        if (thread_group_empty(tsk) || signal_group_exit(tsk->signal)) {
                tsk->flags |= PF_EXITING;
-               threadgroup_change_end(tsk);
+               cgroup_threadgroup_change_end(tsk);
                return;
        }
 
@@ -2410,7 +2415,7 @@ void exit_signals(struct task_struct *tsk)
         */
        tsk->flags |= PF_EXITING;
 
-       threadgroup_change_end(tsk);
+       cgroup_threadgroup_change_end(tsk);
 
        if (!signal_pending(tsk))
                goto out;
@@ -3239,10 +3244,17 @@ int compat_restore_altstack(const compat_stack_t __user *uss)
 
 int __compat_save_altstack(compat_stack_t __user *uss, unsigned long sp)
 {
+       int err;
        struct task_struct *t = current;
-       return  __put_user(ptr_to_compat((void __user *)t->sas_ss_sp), &uss->ss_sp) |
-               __put_user(sas_ss_flags(sp), &uss->ss_flags) |
+       err = __put_user(ptr_to_compat((void __user *)t->sas_ss_sp),
+                        &uss->ss_sp) |
+               __put_user(t->sas_ss_flags, &uss->ss_flags) |
                __put_user(t->sas_ss_size, &uss->ss_size);
+       if (err)
+               return err;
+       if (t->sas_ss_flags & SS_AUTODISARM)
+               sas_ss_reset(t);
+       return 0;
 }
 #endif