When ending an oops, don't clear die_owner unless the nest count
went to zero. This prevents a second nested oops from hanging forever
on the die_lock.
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
                               int signr)
 {
        bust_spinlocks(0);
-       die_owner = -1;
        add_taint(TAINT_DIE, LOCKDEP_NOW_UNRELIABLE);
        die_nest_count--;
        oops_exit();
        printk("\n");
-       if (!die_nest_count)
+       if (!die_nest_count) {
                /* Nest count reaches zero, release the lock. */
+               die_owner = -1;
                arch_spin_unlock(&die_lock);
+       }
        raw_local_irq_restore(flags);
 
        crash_fadump(regs, "die oops");