On Wed, Oct 07, 2020 at 06:45:36PM +0200, Borislav Petkov wrote:
It doesn't look like it is toolchain-specific and in both cases, copy_mc_fragile's checksum is 0.
SUSE Leap 15.1:
Name : binutils Version : 2.32-lp151.3.6.1
$ grep -E "(copy_mc_fragile|copy_user_generic_unrolled)" Module.symvers 0x00000000 copy_mc_fragile vmlinux EXPORT_SYMBOL_GPL 0xecdcabd2 copy_user_generic_unrolled vmlinux EXPORT_SYMBOL
debian testing:
Package: binutils Version: 2.35-2
$ grep -E "(copy_mc_fragile|copy_user_generic_unrolled)" Module.symvers 0x00000000 copy_mc_fragile vmlinux EXPORT_SYMBOL_GPL 0xecdcabd2 copy_user_generic_unrolled vmlinux EXPORT_SYMBOL
Ok, I think I have it:
--- From: Borislav Petkov bp@suse.de Date: Wed, 7 Oct 2020 18:55:35 +0200 Subject: [PATCH] x86/mce: Allow for copy_mc_fragile symbol checksum to be generated
Add asm/mce.h to asm/asm-prototypes.h so that that asm symbol's checksum can be generated in order to support CONFIG_MODVERSIONS with it and fix:
WARNING: modpost: EXPORT symbol "copy_mc_fragile" [vmlinux] version \ generation failed, symbol will not be versioned.
For reference see:
4efca4ed05cb ("kbuild: modversions for EXPORT_SYMBOL() for asm") 334bb7738764 ("x86/kbuild: enable modversions for symbols exported from asm")
Fixes: ec6347bb4339 ("x86, powerpc: Rename memcpy_mcsafe() to copy_mc_to_{user, kernel}()") Signed-off-by: Borislav Petkov bp@suse.de --- arch/x86/include/asm/asm-prototypes.h | 1 + 1 file changed, 1 insertion(+)
diff --git a/arch/x86/include/asm/asm-prototypes.h b/arch/x86/include/asm/asm-prototypes.h index 5a42f9206138..51e2bf27cc9b 100644 --- a/arch/x86/include/asm/asm-prototypes.h +++ b/arch/x86/include/asm/asm-prototypes.h @@ -5,6 +5,7 @@ #include <asm/string.h> #include <asm/page.h> #include <asm/checksum.h> +#include <asm/mce.h>
#include <asm-generic/asm-prototypes.h>