X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=kernel%2Fpanic.c;h=e1b2822fff97b8164ffae96e8a17ace02060a0c1;hb=d67df2b9edfc42ccc0a9ee5332e2821d487d6b3b;hp=d2a5f4ecc6ddd2ebc2da68764da646c7b96d9fc9;hpb=6de3f7e911d27d6737c79b3f6b5069044ea408ec;p=profile%2Fivi%2Fkernel-adaptation-intel-automotive.git diff --git a/kernel/panic.c b/kernel/panic.c index d2a5f4e..e1b2822 100644 --- a/kernel/panic.c +++ b/kernel/panic.c @@ -75,6 +75,14 @@ void panic(const char *fmt, ...) int state = 0; /* + * Disable local interrupts. This will prevent panic_smp_self_stop + * from deadlocking the first cpu that invokes the panic, since + * there is nothing to prevent an interrupt handler (that runs + * after the panic_lock is acquired) from invoking panic again. + */ + local_irq_disable(); + + /* * It's possible to come here directly from a panic-assertion and * not have preempt disabled. Some functions called from here want * preempt to be disabled. No point enabling it later though...