On Tue, Jan 25, 2022 at 3:34 PM Segher Boessenkool <segher@xxxxxxxxxxxxxxxxxxx> wrote: > > Hi! > > On Mon, Jan 24, 2022 at 03:26:36PM -0800, Nick Desaulniers wrote: > > > If this is fixed in gcc-10, then we can probably add a comment with a > > FIXME link to the issue or commit to replace __COUNTER__ with %= one > > day. If not, then we can probably come up with a reduced test case > > for the GCC devs to take a look at, then add the FIXME comment to > > kernel sources. > > Please open a PR? https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104236 > > I'm more confident that we can remove the `volatile` keyword (I was > > thinking about adding a new diagnostic to clang to warn that volatile > > is redundate+implied for asm goto or inline asm that doesn't have > > outputs) though that's not the problem here and will probably generate > > some kernel wide cleanup before we could enable such a flag. > > Its main value is that it would discourage users from thinking volatile > is magic. Seriously worth some pain! Yeah, SGTM. > > > Perhaps > > there are known compiler versions that still require the keyword for > > those cases for some reason. > > It was removed from compiler-gcc.h in 3347acc6fcd4 (which changed the > minimum required GCC version to GCC 5). ``` diff --git a/include/linux/compiler.h b/include/linux/compiler.h index e512f5505dad..b8fe0c23cfff 100644 --- a/include/linux/compiler.h +++ b/include/linux/compiler.h @@ -80,11 +80,25 @@ void ftrace_likely_update(struct ftrace_likely_data *f, int val, /* Optimization barrier */ #ifndef barrier -# define barrier() __memory_barrier() +/* The "volatile" is due to gcc bugs */ +# define barrier() __asm__ __volatile__("": : :"memory") ``` I definitely wish there was a comment with a link to what "gcc bugs" they were referring to; otherwise who knows if it's been fixed...if they have been... -- Thanks, ~Nick Desaulniers