Re: [PATCH] gcc-plugins: Undefine LATENT_ENTROPY_PLUGIN when plugin disabled for a file
From: Andrew Donnellan <hidden>
Date: 2022-08-17 03:10:38
Also in:
linux-hardening
On Tue, 2022-08-16 at 05:14 -0700, Yury Norov wrote:
On Tue, Aug 16, 2022 at 03:17:20PM +1000, Andrew Donnellan wrote:quoted
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
Indeed, I just saw your patch to fix this.
quoted
Fixes: 36d4b36b6959 ("lib/nodemask: inline next_node_in() and node_random()")I think it rather fixes 38addce8b600ca33 ("gcc-plugins: Add latent_entropy plugin").
You're right, I was in a rush and should have tagged that appropriately.
For the rest, Reviewed-by: Yury Norov <yury.norov@gmail.com>
Thanks! -- Andrew Donnellan OzLabs, ADL Canberra ajd@linux.ibm.com IBM Australia Limited