lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 16 Aug 2022 05:14:34 -0700 From: Yury Norov <yury.norov@...il.com> To: Andrew Donnellan <ajd@...ux.ibm.com> Cc: linux-hardening@...r.kernel.org, linuxppc-dev@...ts.ozlabs.org, Emese Revfy <re.emese@...il.com>, Erhard Furtner <erhard_f@...lbox.org> Subject: Re: [PATCH] gcc-plugins: Undefine LATENT_ENTROPY_PLUGIN when plugin disabled for a file On Tue, Aug 16, 2022 at 03:17:20PM +1000, Andrew Donnellan wrote: > Commit 36d4b36b6959 ("lib/nodemask: inline next_node_in() and > node_random()") refactored some code by moving node_random() from > lib/nodemask.c to include/linux/nodemask.h, thus requiring nodemask.h to > include random.h, which conditionally defines add_latent_entropy() > depending on whether the macro LATENT_ENTROPY_PLUGIN is defined. > > This broke the build on powerpc, where nodemask.h is indirectly included > in arch/powerpc/kernel/prom_init.c, part of the early boot machinery that > is excluded from the latent entropy plugin using > DISABLE_LATENT_ENTROPY_PLUGIN. It turns out that while we add a gcc flag > to disable the actual plugin, we don't undefine LATENT_ENTROPY_PLUGIN. > > This leads to the following: > > CC arch/powerpc/kernel/prom_init.o > In file included from ./include/linux/nodemask.h:97, > from ./include/linux/mmzone.h:17, > from ./include/linux/gfp.h:7, > from ./include/linux/xarray.h:15, As a side note, xarray can go with gfp_types.h instead of gfp.h > from ./include/linux/radix-tree.h:21, > from ./include/linux/idr.h:15, > from ./include/linux/kernfs.h:12, > from ./include/linux/sysfs.h:16, > from ./include/linux/kobject.h:20, > from ./include/linux/pci.h:35, > from arch/powerpc/kernel/prom_init.c:24: > ./include/linux/random.h: In function 'add_latent_entropy': > ./include/linux/random.h:25:46: error: 'latent_entropy' undeclared (first use in this function); did you mean 'add_latent_entropy'? > 25 | add_device_randomness((const void *)&latent_entropy, sizeof(latent_entropy)); > | ^~~~~~~~~~~~~~ > | add_latent_entropy > ./include/linux/random.h:25:46: note: each undeclared identifier is reported only once for each function it appears in > make[2]: *** [scripts/Makefile.build:249: arch/powerpc/kernel/prom_init.o] Fehler 1 > make[1]: *** [scripts/Makefile.build:465: arch/powerpc/kernel] Fehler 2 > make: *** [Makefile:1855: arch/powerpc] Error 2 > > Change the DISABLE_LATENT_ENTROPY_PLUGIN flags to undefine > LATENT_ENTROPY_PLUGIN for files where the plugin is disabled. > > Cc: Yury Norov <yury.norov@...il.com> > Cc: Emese Revfy <re.emese@...il.com> > Fixes: 36d4b36b6959 ("lib/nodemask: inline next_node_in() and node_random()") I think it rather fixes 38addce8b600ca33 ("gcc-plugins: Add latent_entropy plugin"). For the rest, Reviewed-by: Yury Norov <yury.norov@...il.com> > Link: https://bugzilla.kernel.org/show_bug.cgi?id=216367 > Link: https://lore.kernel.org/linuxppc-dev/alpine.DEB.2.22.394.2208152006320.289321@ramsan.of.borg/ > Reported-by: Erhard Furtner <erhard_f@...lbox.org> > Signed-off-by: Andrew Donnellan <ajd@...ux.ibm.com> > --- > scripts/Makefile.gcc-plugins | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/scripts/Makefile.gcc-plugins b/scripts/Makefile.gcc-plugins > index 692d64a70542..e4deaf5fa571 100644 > --- a/scripts/Makefile.gcc-plugins > +++ b/scripts/Makefile.gcc-plugins > @@ -4,7 +4,7 @@ gcc-plugin-$(CONFIG_GCC_PLUGIN_LATENT_ENTROPY) += latent_entropy_plugin.so > gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_LATENT_ENTROPY) \ > += -DLATENT_ENTROPY_PLUGIN > ifdef CONFIG_GCC_PLUGIN_LATENT_ENTROPY > - DISABLE_LATENT_ENTROPY_PLUGIN += -fplugin-arg-latent_entropy_plugin-disable > + DISABLE_LATENT_ENTROPY_PLUGIN += -fplugin-arg-latent_entropy_plugin-disable -ULATENT_ENTROPY_PLUGIN > endif > export DISABLE_LATENT_ENTROPY_PLUGIN > > -- > 2.30.2
Powered by blists - more mailing lists