ugh. Just discovered the bug: spin_lock(&list_lock); /** code */ spin_lock(&list_lock); …deadlocks unconditionally == fail.

@williballenthin