• Tejun Heo's avatar
    sched, kvm: Fix race condition involving sched_in_preempt_notifers · 498657a4
    Tejun Heo authored
    In finish_task_switch(), fire_sched_in_preempt_notifiers() is
    called after finish_lock_switch().
    
    However, depending on architecture, preemption can be enabled after
    finish_lock_switch() which breaks the semantics of preempt
    notifiers.
    
    So move it before finish_arch_switch(). This also makes the in-
    notifiers symmetric to out- notifiers in terms of locking - now
    both are called under rq lock.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Acked-by: default avatarAvi Kivity <avi@redhat.com>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    LKML-Reference: <4AFD2801.7020900@kernel.org>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    498657a4
sched.c 267 KB