On Wed, Jul 29, 2020 at 8:17 PM Kees Cook <keescook@xxxxxxxxxxxx> wrote: > > I'll look into this more tomorrow. (But yes, __latent_entropy is > absolutely used for globals already, as you found, but this is the first > percpu it was applied to...) Note that it was always per-cpu. The only thing that changed was that it was declared static in lib/random.c vs being externally visible. So it's not about the percpu part - although that then showed the arm64 circular include file problem. It's literally that now the exact same thing is declared in a header file and not marked "static". Now, I don't think the __latent_entropy code ever really worked all that well for per-cpu initializations. It ends up generating one single initializer, which obviously isn't optimal. But I guess it's as good as it gets. Unrelated side note: I notice that the plugins could be simplified a bit now that we require gcc 4.9 or later. There's a fair amount of cruft for the earlier gcc versions. I'm not sure how seriously the gcc plugins are actually maintained (no offense) aside from just keeping them limping along. Does anybody actually use them in production? I thought google had mostly moved on to clang. Linus