On Thu, 6 Nov 2014, Vivek Goyal wrote: > On Thu, Nov 06, 2014 at 01:57:36PM -0800, David Rientjes wrote: > > [..] > > 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.