diff options
| -rw-r--r-- | kernel/sched/core.c | 3 | ||||
| -rw-r--r-- | kernel/sched/sched.h | 1 |
2 files changed, 4 insertions, 0 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 19db8f3b0e3b..25b377986547 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c | |||
| @@ -2003,6 +2003,9 @@ static void finish_task_switch(struct rq *rq, struct task_struct *prev) | |||
| 2003 | if (unlikely(prev_state == TASK_DEAD)) { | 2003 | if (unlikely(prev_state == TASK_DEAD)) { |
| 2004 | task_numa_free(prev); | 2004 | task_numa_free(prev); |
| 2005 | 2005 | ||
| 2006 | if (prev->sched_class->task_dead) | ||
| 2007 | prev->sched_class->task_dead(prev); | ||
| 2008 | |||
| 2006 | /* | 2009 | /* |
| 2007 | * Remove function-return probe instances associated with this | 2010 | * Remove function-return probe instances associated with this |
| 2008 | * task and put them back on the free list. | 2011 | * task and put them back on the free list. |
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index 88c85b21d633..b3b4a4953efc 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h | |||
| @@ -1023,6 +1023,7 @@ struct sched_class { | |||
| 1023 | void (*set_curr_task) (struct rq *rq); | 1023 | void (*set_curr_task) (struct rq *rq); |
| 1024 | void (*task_tick) (struct rq *rq, struct task_struct *p, int queued); | 1024 | void (*task_tick) (struct rq *rq, struct task_struct *p, int queued); |
| 1025 | void (*task_fork) (struct task_struct *p); | 1025 | void (*task_fork) (struct task_struct *p); |
| 1026 | void (*task_dead) (struct task_struct *p); | ||
| 1026 | 1027 | ||
| 1027 | void (*switched_from) (struct rq *this_rq, struct task_struct *task); | 1028 | void (*switched_from) (struct rq *this_rq, struct task_struct *task); |
| 1028 | void (*switched_to) (struct rq *this_rq, struct task_struct *task); | 1029 | void (*switched_to) (struct rq *this_rq, struct task_struct *task); |
