lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 21 Dec 2010 01:02:03 +0100 From: Frederic Weisbecker <fweisbec@...il.com> To: Peter Zijlstra <a.p.zijlstra@...llo.nl> Cc: LKML <linux-kernel@...r.kernel.org>, Thomas Gleixner <tglx@...utronix.de>, "Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>, Ingo Molnar <mingo@...e.hu>, Steven Rostedt <rostedt@...dmis.org>, Lai Jiangshan <laijs@...fujitsu.com>, Andrew Morton <akpm@...ux-foundation.org>, Anton Blanchard <anton@....ibm.com>, Tim Pepper <lnxninja@...ux.vnet.ibm.com> Subject: Re: [RFC PATCH 08/15] smp: Don't warn if irq are disabled but we don't wait for the ipi On Mon, Dec 20, 2010 at 05:03:59PM +0100, Peter Zijlstra wrote: > On Mon, 2010-12-20 at 16:24 +0100, Frederic Weisbecker wrote: > > The comment in smp_call_function_single() says it wants the irqs > > to be enabled otherwise it may deadlock. > > > > I can't find the reason for that though, except if we had to wait > > for a self triggered IPI but we execute the local IPI by just > > calling the function in place. > > > > In doubt, only suppress the warning if we are not waiting for the > > IPI to complete as it should really not raise any deadlock. > > > > Signed-off-by: Frederic Weisbecker <fweisbec@...il.com> > > Cc: Thomas Gleixner <tglx@...utronix.de> > > Cc: Peter Zijlstra <a.p.zijlstra@...llo.nl> > > Cc: Paul E. McKenney <paulmck@...ux.vnet.ibm.com> > > Cc: Ingo Molnar <mingo@...e.hu> > > Cc: Steven Rostedt <rostedt@...dmis.org> > > Cc: Lai Jiangshan <laijs@...fujitsu.com> > > Cc: Andrew Morton <akpm@...ux-foundation.org> > > Cc: Anton Blanchard <anton@....ibm.com> > > Cc: Tim Pepper <lnxninja@...ux.vnet.ibm.com> > > --- > > kernel/smp.c | 2 +- > > 1 files changed, 1 insertions(+), 1 deletions(-) > > > > diff --git a/kernel/smp.c b/kernel/smp.c > > index 12ed8b0..886a406 100644 > > --- a/kernel/smp.c > > +++ b/kernel/smp.c > > @@ -289,7 +289,7 @@ int smp_call_function_single(int cpu, smp_call_func_t func, void *info, > > * send smp call function interrupt to this cpu and as such deadlocks > > * can't happen. > > */ > > - WARN_ON_ONCE(cpu_online(this_cpu) && irqs_disabled() > > + WARN_ON_ONCE(cpu_online(this_cpu) && wait && irqs_disabled() > > && !oops_in_progress); > > > > if (cpu == this_cpu) { > > You just deadlocked the machine.. note how you can still wait on the > previous csd in csd_lock(). Ah right. I should then use __smp_call_function_single(). -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists