• Paul E. McKenney's avatar
    rcu: Make call_rcu_tasks() tolerate first call with irqs disabled · 4929c913
    Paul E. McKenney authored
    Currently, if the very first call to call_rcu_tasks() has irqs disabled,
    it will create the rcu_tasks_kthread with irqs disabled, which will
    result in a splat in the memory allocator, which kthread_run() invokes
    with the expectation that irqs are enabled.
    
    This commit fixes this problem by deferring kthread creation if called
    with irqs disabled.  The first call to call_rcu_tasks() that has irqs
    enabled will create the kthread.
    
    This bug was detected by rcutorture changes that were motivated by
    Iftekhar Ahmed's mutation-testing efforts.
    Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
    4929c913
update.c 27.6 KB