On Wed, Jul 29, 2020 at 04:43:04PM -0700, Linus Torvalds wrote: > On Wed, Jul 29, 2020 at 4:08 PM Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote: > > > > include/linux/random.h:123:24: error: variable 'net_rand_state' with 'latent_entropy' attribute must not be local > > 123 | DECLARE_PER_CPU(struct rnd_state, net_rand_state) __latent_entropy; > > Hmm. > > Ok, this shows a limitation of my allmodconfig testing (and all my > normal builds) - no plugins. So that problem wasn't as obvious as it > should have been. 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...) > Adding the gcc plugin people. Otherwise the only option seems to be to > just remove that __latent_entropy marker. And just another heads-up, the patch[1] (which was never sent to a public list) also breaks arm64 (circular header needs?): $ make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64 defconfig ... $ make -j$(getconf _NPROCESSORS_ONLN) CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64 ... In file included from ./arch/arm64/include/asm/smp.h:33, from ./include/linux/smp.h:82, from ./include/linux/percpu.h:7, from ./include/linux/random.h:14, from arch/arm64/kernel/pointer_auth.c:5: ./arch/arm64/include/asm/pointer_auth.h: In function ‘ptrauth_keys_init_user’: ./arch/arm64/include/asm/pointer_auth.h:40:3: error: implicit declaration of function ‘get_random_bytes’; did you mean ‘get_random_once’? [-Werror=implicit-function-declaration] 40 | get_random_bytes(&keys->apia, sizeof(keys->apia)); | ^~~~~ [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f227e3ec3b5cad859ad15666874405e8c1bbc1d4 -- Kees Cook