diff options
Diffstat (limited to 'kernel/sched.c')
-rw-r--r-- | kernel/sched.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/kernel/sched.c b/kernel/sched.c index 7ffaabd64f89..78acdefeccca 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
@@ -49,6 +49,7 @@ | |||
49 | #include <linux/syscalls.h> | 49 | #include <linux/syscalls.h> |
50 | #include <linux/times.h> | 50 | #include <linux/times.h> |
51 | #include <linux/acct.h> | 51 | #include <linux/acct.h> |
52 | #include <linux/kprobes.h> | ||
52 | #include <asm/tlb.h> | 53 | #include <asm/tlb.h> |
53 | 54 | ||
54 | #include <asm/unistd.h> | 55 | #include <asm/unistd.h> |
@@ -1546,8 +1547,14 @@ static inline void finish_task_switch(runqueue_t *rq, task_t *prev) | |||
1546 | finish_lock_switch(rq, prev); | 1547 | finish_lock_switch(rq, prev); |
1547 | if (mm) | 1548 | if (mm) |
1548 | mmdrop(mm); | 1549 | mmdrop(mm); |
1549 | if (unlikely(prev_task_flags & PF_DEAD)) | 1550 | if (unlikely(prev_task_flags & PF_DEAD)) { |
1551 | /* | ||
1552 | * Remove function-return probe instances associated with this | ||
1553 | * task and put them back on the free list. | ||
1554 | */ | ||
1555 | kprobe_flush_task(prev); | ||
1550 | put_task_struct(prev); | 1556 | put_task_struct(prev); |
1557 | } | ||
1551 | } | 1558 | } |
1552 | 1559 | ||
1553 | /** | 1560 | /** |