On my machine it was the keventd workqueue that got messed up.I have some patches that: - add debug_show_held_locks(current) to might_sleep() and schedule() - check in_atomic() and lockdep_depth after each workqueue function and print the last function executed - name some 'old_style_spin_init' locks