|
@@ -2783,7 +2783,13 @@ static void finish_task_switch(struct rq *rq, struct task_struct *prev)
|
|
|
*/
|
|
|
prev_state = prev->state;
|
|
|
finish_arch_switch(prev);
|
|
|
+#ifdef __ARCH_WANT_INTERRUPTS_ON_CTXSW
|
|
|
+ local_irq_disable();
|
|
|
+#endif /* __ARCH_WANT_INTERRUPTS_ON_CTXSW */
|
|
|
perf_event_task_sched_in(current);
|
|
|
+#ifdef __ARCH_WANT_INTERRUPTS_ON_CTXSW
|
|
|
+ local_irq_enable();
|
|
|
+#endif /* __ARCH_WANT_INTERRUPTS_ON_CTXSW */
|
|
|
finish_lock_switch(rq, prev);
|
|
|
|
|
|
fire_sched_in_preempt_notifiers(current);
|