From: Leon Romanovsky <leonro@xxxxxxxxxxxx> VERMAGIC* definitions are not supposed to be used by the drivers, see this [1] bug report, so simply move this header file to be visible to kernel/* and scripts files only. In-tree module build: ➜ kernel git:(vermagic) ✗ make clean ➜ kernel git:(vermagic) ✗ make M=drivers/infiniband/hw/mlx5 ➜ kernel git:(vermagic) ✗ modinfo drivers/infiniband/hw/mlx5/mlx5_ib.ko filename: /images/leonro/src/kernel/drivers/infiniband/hw/mlx5/mlx5_ib.ko <...> vermagic: 5.6.0+ SMP mod_unload modversions Out-of-tree module build: ➜ mlx5 make -C /images/leonro/src/kernel clean M=/tmp/mlx5 ➜ mlx5 make -C /images/leonro/src/kernel M=/tmp/mlx5 ➜ mlx5 modinfo /tmp/mlx5/mlx5_ib.ko filename: /tmp/mlx5/mlx5_ib.ko <...> vermagic: 5.6.0+ SMP mod_unload modversions [1] https://lore.kernel.org/lkml/20200411155623.GA22175@xxxxxxx Reported-by: Borislav Petkov <bp@xxxxxxx> Acked-by: Borislav Petkov <bp@xxxxxxx> Signed-off-by: Leon Romanovsky <leonro@xxxxxxxxxxxx> --- kernel/module.c | 2 +- {include/linux => kernel}/vermagic.h | 0 scripts/mod/modpost.c | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) rename {include/linux => kernel}/vermagic.h (100%) diff --git a/kernel/module.c b/kernel/module.c index 3447f3b74870..fce06095d341 100644 --- a/kernel/module.c +++ b/kernel/module.c @@ -29,7 +29,6 @@ #include <linux/moduleparam.h> #include <linux/errno.h> #include <linux/err.h> -#include <linux/vermagic.h> #include <linux/notifier.h> #include <linux/sched.h> #include <linux/device.h> @@ -55,6 +54,7 @@ #include <linux/audit.h> #include <uapi/linux/module.h> #include "module-internal.h" +#include "vermagic.h" #define CREATE_TRACE_POINTS #include <trace/events/module.h> diff --git a/include/linux/vermagic.h b/kernel/vermagic.h similarity index 100% rename from include/linux/vermagic.h rename to kernel/vermagic.h diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index 5c3c50c5ec52..91f86261bcfe 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -2252,7 +2252,7 @@ static void add_header(struct buffer *b, struct module *mod) * inherit the definitions. */ buf_printf(b, "#include <linux/build-salt.h>\n"); - buf_printf(b, "#include <linux/vermagic.h>\n"); + buf_printf(b, "#include <../kernel/vermagic.h>\n"); buf_printf(b, "#include <linux/compiler.h>\n"); buf_printf(b, "\n"); buf_printf(b, "BUILD_SALT;\n"); -- 2.25.2