![]() | |||||||||||||
Messages in this thread |
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 majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ | ||||||||||||
| Last update: 2007-08-17 05:45 [W:0.608 / U:0.020 seconds] ©2003-2008 Jasper Spaans | |||||||||||||