diff options
Diffstat (limited to 'kernel/exit.c')
-rw-r--r-- | kernel/exit.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/kernel/exit.c b/kernel/exit.c index e61891f80123..3f45e3cf931d 100644 --- a/kernel/exit.c +++ b/kernel/exit.c | |||
@@ -49,6 +49,7 @@ | |||
49 | #include <linux/init_task.h> | 49 | #include <linux/init_task.h> |
50 | #include <linux/perf_event.h> | 50 | #include <linux/perf_event.h> |
51 | #include <trace/events/sched.h> | 51 | #include <trace/events/sched.h> |
52 | #include <linux/hw_breakpoint.h> | ||
52 | 53 | ||
53 | #include <asm/uaccess.h> | 54 | #include <asm/uaccess.h> |
54 | #include <asm/unistd.h> | 55 | #include <asm/unistd.h> |
@@ -359,10 +360,8 @@ void __set_special_pids(struct pid *pid) | |||
359 | { | 360 | { |
360 | struct task_struct *curr = current->group_leader; | 361 | struct task_struct *curr = current->group_leader; |
361 | 362 | ||
362 | if (task_session(curr) != pid) { | 363 | if (task_session(curr) != pid) |
363 | change_pid(curr, PIDTYPE_SID, pid); | 364 | change_pid(curr, PIDTYPE_SID, pid); |
364 | proc_sid_connector(curr); | ||
365 | } | ||
366 | 365 | ||
367 | if (task_pgrp(curr) != pid) | 366 | if (task_pgrp(curr) != pid) |
368 | change_pid(curr, PIDTYPE_PGID, pid); | 367 | change_pid(curr, PIDTYPE_PGID, pid); |
@@ -980,6 +979,10 @@ NORET_TYPE void do_exit(long code) | |||
980 | proc_exit_connector(tsk); | 979 | proc_exit_connector(tsk); |
981 | 980 | ||
982 | /* | 981 | /* |
982 | * FIXME: do that only when needed, using sched_exit tracepoint | ||
983 | */ | ||
984 | flush_ptrace_hw_breakpoint(tsk); | ||
985 | /* | ||
983 | * Flush inherited counters to the parent - before the parent | 986 | * Flush inherited counters to the parent - before the parent |
984 | * gets woken up by child-exit notifications. | 987 | * gets woken up by child-exit notifications. |
985 | */ | 988 | */ |