|
@@ -10,6 +10,8 @@
|
|
#include <linux/kthread.h>
|
|
#include <linux/kthread.h>
|
|
#include <linux/nospec.h>
|
|
#include <linux/nospec.h>
|
|
|
|
|
|
|
|
+#include <linux/kcov.h>
|
|
|
|
+
|
|
#include <asm/switch_to.h>
|
|
#include <asm/switch_to.h>
|
|
#include <asm/tlb.h>
|
|
#include <asm/tlb.h>
|
|
|
|
|
|
@@ -2633,6 +2635,7 @@ static inline void
|
|
prepare_task_switch(struct rq *rq, struct task_struct *prev,
|
|
prepare_task_switch(struct rq *rq, struct task_struct *prev,
|
|
struct task_struct *next)
|
|
struct task_struct *next)
|
|
{
|
|
{
|
|
|
|
+ kcov_prepare_switch(prev);
|
|
sched_info_switch(rq, prev, next);
|
|
sched_info_switch(rq, prev, next);
|
|
perf_event_task_sched_out(prev, next);
|
|
perf_event_task_sched_out(prev, next);
|
|
rseq_preempt(prev);
|
|
rseq_preempt(prev);
|
|
@@ -2702,6 +2705,7 @@ static struct rq *finish_task_switch(struct task_struct *prev)
|
|
finish_task(prev);
|
|
finish_task(prev);
|
|
finish_lock_switch(rq);
|
|
finish_lock_switch(rq);
|
|
finish_arch_post_lock_switch();
|
|
finish_arch_post_lock_switch();
|
|
|
|
+ kcov_finish_switch(current);
|
|
|
|
|
|
fire_sched_in_preempt_notifiers(current);
|
|
fire_sched_in_preempt_notifiers(current);
|
|
/*
|
|
/*
|