Re: [PATCH] sched/numa: Fix use of spin_{un}lock_irq() when interrupts are disabled

From: Eric Dumazet
Date: Tue May 27 2014 - 16:20:30 EST


On Tue, 2014-05-27 at 15:52 -0400, Steven Rostedt wrote:
> As Peter Zijlstra told me, we have the following path:
>
> do_exit()
> exit_itimers()
> itimer_delete()
> spin_lock_irqsave(&timer->it_lock, &flags);
> timer_delete_hook(timer);
> kc->timer_del(timer) := posix_cpu_timer_del()
> put_task_struct()
> __put_task_struct()
> task_numa_free()
> spin_lock(&grp->lock);
>
>
> Which means that task_numa_free() can be called with interrupts
> disabled, which means that we should not be using spin_lock_irq() but
> spin_lock_irqsave() instead. Otherwise we are enabling interrupts while
> holding an interrupt unsafe lock!
>
> Link: http://lkml.kernel.org/r/20140527182541.GH11096@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>
> Signed-off-by: Steven Rostedt <rostedt@xxxxxxxxxxx>
> ---

Your patch was mangled it seems...

Fixes: 60e69eed85bb ("sched/numa: Fix task_numa_free() lockdep splat")



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/