|
From: Seiji A. <sei...@hd...> - 2011-10-17 14:11:11
|
Hi,
Thank you for giving me a comment.
>I have a stupid question: since you have serialized the process procedure via
>smp_send_stop, why still using spin_lock_xxx? Maybe preempt_disable/enable is
>enough?
I added spin_lock_init() in panic path for sharing code with other triggers
such as oops/reboot/emergency_restart because they still need spin_locks.
Do you suggest following code?
<snip>
If(!panic)
spin_lock_irqsave();
.
.
If(!panic)
spin_unlock_restore();
<snip>
I don't stick to current patch.
So I will resend a patch above if you request.
Regarding as preempt_disable/enable, we don't need to call them in panic path because they are
called at the beginning of panic().
<snip>
60 NORET_TYPE void panic(const char * fmt, ...)
61 {
62 static char buf[1024];
63 va_list args;
64 long i, i_next = 0;
65 int state = 0;
66
67 /*
68 * It's possible to come here directly from a panic-assertion and
69 * not have preempt disabled. Some functions called from here want
70 * preempt to be disabled. No point enabling it later though...
71 */
72 preempt_disable();
<snip>
Seiji
|