Skip to content
  • Frederic Weisbecker's avatar
    sched: Pull up the might_sleep() check into cond_resched() · 613afbf8
    Frederic Weisbecker authored
    
    
    might_sleep() is called late-ish in cond_resched(), after the
    need_resched()/preempt enabled/system running tests are
    checked.
    
    It's better to check the sleeps while atomic earlier and not
    depend on some environment datas that reduce the chances to
    detect a problem.
    
    Also define cond_resched_*() helpers as macros, so that the
    FILE/LINE reported in the sleeping while atomic warning
    displays the real origin and not sched.h
    
    Changes in v2:
    
     - Call __might_sleep() directly instead of might_sleep() which
       may call cond_resched()
    
     - Turn cond_resched() into a macro so that the file:line
       couple reported refers to the caller of cond_resched() and
       not __cond_resched() itself.
    
    Changes in v3:
    
     - Also propagate this __might_sleep() pull up to
       cond_resched_lock() and cond_resched_softirq()
    
    Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
    Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
    LKML-Reference: <1247725694-6082-6-git-send-email-fweisbec@gmail.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    613afbf8