On Thu, 6 Nov 2014, Vivek Goyal wrote:
On Thu, Nov 06, 2014 at 01:57:36PM -0800, David Rientjes wrote:
[..]
quoted
You see that doing
if (panic_on_warn) {
panic_on_warn = 0;
panic(...);
}
is racy, I hope. If two threads WARN() at the same time, then there's
nothing preventing a double panic() because WARN() itself is not
serialized against anything. So both the current comment and your
suggested revision comment are bogus.
panic() is serialized on panic_lock. So I guess it is fine to hit WARN()
on multiple cpus. Do you see an issue there?
No issue at all, what's completely mysterious is the panic_on_warn = 0 and
the completely bogus comment that says "prevent further WARN()s from
panicking the system" when that's racy. There's no need to clear
panic_on_warn at all.