From fc73c6dbea1f1c7dcd8edc75c4bc6e423ef179c0 Mon Sep 17 00:00:00 2001 From: Daniel Pouzzner Date: Mon, 18 Oct 2021 15:00:47 -0500 Subject: [PATCH] linuxkm: fix Makefile to properly pivot module signature on CONFIG_MODULE_SIG==y; remove not-yet-kernel-compatible asm files from the ASFLAGS_FPU_DISABLE_SIMD_ENABLE list, matching the OBJECT_FILES_NON_STANDARD list, for clarity. --- linuxkm/Kbuild | 14 ++++---------- linuxkm/Makefile | 11 ++++------- 2 files changed, 8 insertions(+), 17 deletions(-) diff --git a/linuxkm/Kbuild b/linuxkm/Kbuild index 37497ecdf..50c44f43c 100644 --- a/linuxkm/Kbuild +++ b/linuxkm/Kbuild @@ -91,19 +91,13 @@ endif asflags-y := $(WOLFSSL_ASFLAGS) $(ASFLAGS_FPUSIMD_DISABLE) -# vectorized algorithms protected by {SAVE,RESTORE}_VECTOR_REGISTERS() can be -# safely included here, though many of these are not yet kernel-compatible: +# vectorized implementations that are kernel-safe are listed here. +# these are known kernel-compatible, but they still irritate objtool. $(obj)/wolfcrypt/src/aes_asm.o: asflags-y = $(WOLFSSL_ASFLAGS) $(ASFLAGS_FPU_DISABLE_SIMD_ENABLE) -$(obj)/wolfcrypt/src/aes_gcm_asm.o: asflags-y = $(WOLFSSL_ASFLAGS) $(ASFLAGS_FPU_DISABLE_SIMD_ENABLE) -$(obj)/wolfcrypt/src/sha256_asm.o: asflags-y = $(WOLFSSL_ASFLAGS) $(ASFLAGS_FPU_DISABLE_SIMD_ENABLE) -$(obj)/wolfcrypt/src/sp_x86_64_asm.o: asflags-y = $(WOLFSSL_ASFLAGS) $(ASFLAGS_FPU_DISABLE_SIMD_ENABLE) -$(obj)/wolfcrypt/src/sha512_asm.o: asflags-y = $(WOLFSSL_ASFLAGS) $(ASFLAGS_FPU_DISABLE_SIMD_ENABLE) -$(obj)/wolfcrypt/src/poly1305_asm.o: asflags-y = $(WOLFSSL_ASFLAGS) $(ASFLAGS_FPU_DISABLE_SIMD_ENABLE) -$(obj)/wolfcrypt/src/chacha_asm.o: asflags-y = $(WOLFSSL_ASFLAGS) $(ASFLAGS_FPU_DISABLE_SIMD_ENABLE) - -# these _asms are known kernel-compatible, but they still irritate objtool: $(obj)/wolfcrypt/src/aes_asm.o: OBJECT_FILES_NON_STANDARD := y +$(obj)/wolfcrypt/src/aes_gcm_asm.o: asflags-y = $(WOLFSSL_ASFLAGS) $(ASFLAGS_FPU_DISABLE_SIMD_ENABLE) $(obj)/wolfcrypt/src/aes_gcm_asm.o: OBJECT_FILES_NON_STANDARD := y +$(obj)/wolfcrypt/src/sp_x86_64_asm.o: asflags-y = $(WOLFSSL_ASFLAGS) $(ASFLAGS_FPU_DISABLE_SIMD_ENABLE) $(obj)/wolfcrypt/src/sp_x86_64_asm.o: OBJECT_FILES_NON_STANDARD := y ifeq "$(ENABLED_LINUXKM_PIE)" "yes" diff --git a/linuxkm/Makefile b/linuxkm/Makefile index 4cc39bc01..68f4feeea 100644 --- a/linuxkm/Makefile +++ b/linuxkm/Makefile @@ -71,16 +71,13 @@ libwolfssl.ko.signed: libwolfssl.ko @cd '$(KERNEL_ROOT)' || exit $$?; \ while read configline; do \ case "$$configline" in \ - CONFIG_MODULE_SIG_KEY=*) \ - CONFIG_MODULE_SIG_KEY="$${configline#CONFIG_MODULE_SIG_KEY=}" \ - ;; \ - CONFIG_MODULE_SIG_HASH=*) \ - CONFIG_MODULE_SIG_HASH="$${configline#CONFIG_MODULE_SIG_HASH=}" \ + CONFIG_MODULE_SIG*=*) \ + declare "$${configline%=*}"="$${configline#*=}" \ ;; \ esac; \ done < .config || exit $$?; \ - if [[ -n "$${CONFIG_MODULE_SIG_KEY}" && -n "$${CONFIG_MODULE_SIG_HASH}" && \ - ( ! -f '$(MODULE_TOP)/$@' || \ + if [[ "$${CONFIG_MODULE_SIG}" = "y" && -n "$${CONFIG_MODULE_SIG_KEY}" && \ + -n "$${CONFIG_MODULE_SIG_HASH}" && ( ! -f '$(MODULE_TOP)/$@' || \ '$(MODULE_TOP)/$<' -nt '$(MODULE_TOP)/$@' ) ]]; then \ CONFIG_MODULE_SIG_KEY="$${CONFIG_MODULE_SIG_KEY#\"}"; \ CONFIG_MODULE_SIG_KEY="$${CONFIG_MODULE_SIG_KEY%\"}"; \