Herbert Xu writes: > On Fri, Aug 17, 2007 at 03:09:57PM +1000, Paul Mackerras wrote: > > Herbert Xu writes: > > > > > Can you find an actual atomic_read code snippet there that is > > > broken without the volatile modifier? > > > > There are some in arch-specific code, for example line 1073 of > > arch/mips/kernel/smtc.c. On mips, cpu_relax() is just barrier(), so > > the empty loop body is ok provided that atomic_read actually does the > > load each time around the loop. > > A barrier() is all you need to force the compiler to reread > the value. > > The people advocating volatile in this thread are talking > about code that doesn't use barrier()/cpu_relax().
Did you look at it? Here it is: /* Someone else is initializing in parallel - let 'em finish */ while (atomic_read(&idle_hook_initialized) < 1000) ; Paul. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/