From e1ee5e4421ef4caba7cfdc47ab150c56a4200bda Mon Sep 17 00:00:00 2001 From: Daniel Pouzzner Date: Wed, 31 Jan 2024 11:49:46 -0600 Subject: [PATCH] linuxkm: spruce up arch-dependent CFLAGS setup in linuxkm/Kbuild; add "failed:" to error messages in km_AesGcmEncrypt() and km_AesGcmDecrypt(). --- linuxkm/Kbuild | 14 +++++++++----- linuxkm/lkcapi_glue.c | 4 ++-- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/linuxkm/Kbuild b/linuxkm/Kbuild index 4abe73109..aa1e1c661 100644 --- a/linuxkm/Kbuild +++ b/linuxkm/Kbuild @@ -32,6 +32,10 @@ WOLFSSL_CFLAGS += -ffreestanding -Wframe-larger-than=$(MAX_STACK_FRAME_SIZE) -is ifeq "$(KERNEL_ARCH)" "x86" WOLFSSL_CFLAGS += -mpreferred-stack-boundary=4 +else ifeq "$(KERNEL_ARCH)" "aarch64" + WOLFSSL_CFLAGS += -mno-outline-atomics +else ifeq "$(KERNEL_ARCH)" "arm64" + WOLFSSL_CFLAGS += -mno-outline-atomics endif obj-m := libwolfssl.o @@ -47,15 +51,15 @@ $(obj)/linuxkm/module_exports.o: $(WOLFSSL_OBJ_TARGETS) # this mechanism only works in kernel 5.x+ (fallback to hardcoded value) hostprogs := linuxkm/get_thread_size always-y := $(hostprogs) + +HOST_EXTRACFLAGS += $(NOSTDINC_FLAGS) $(LINUXINCLUDE) $(KBUILD_CFLAGS) -static -fno-omit-frame-pointer + # "-mindirect-branch=keep -mfunction-return=keep" to avoid "undefined reference # to `__x86_return_thunk'" on CONFIG_RETHUNK kernels (5.19.0-rc7) -ifeq "$(KERNEL_ARCH)" "aarch64" - HOST_EXTRACFLAGS += $(NOSTDINC_FLAGS) $(LINUXINCLUDE) $(KBUILD_CFLAGS) -static -fno-omit-frame-pointer -else - HOST_EXTRACFLAGS += $(NOSTDINC_FLAGS) $(LINUXINCLUDE) $(KBUILD_CFLAGS) -static -fno-omit-frame-pointer -mindirect-branch=keep -mfunction-return=keep +ifeq "$(KERNEL_ARCH)" "x86" + HOST_EXTRACFLAGS += -mindirect-branch=keep -mfunction-return=keep endif - # this rule is needed to get build to succeed in 4.x (get_thread_size still doesn't get built) $(obj)/linuxkm/get_thread_size: $(src)/linuxkm/get_thread_size.c diff --git a/linuxkm/lkcapi_glue.c b/linuxkm/lkcapi_glue.c index 72998d3f9..d1e8081ed 100644 --- a/linuxkm/lkcapi_glue.c +++ b/linuxkm/lkcapi_glue.c @@ -579,7 +579,7 @@ static int km_AesGcmEncrypt(struct aead_request *req) err = skcipher_walk_aead_encrypt(&walk, req, false); if (unlikely(err)) { - pr_err("%s: skcipher_walk_aead_encrypt: %d\n", + pr_err("%s: skcipher_walk_aead_encrypt failed: %d\n", crypto_tfm_alg_driver_name(crypto_aead_tfm(tfm)), err); return -1; } @@ -685,7 +685,7 @@ static int km_AesGcmDecrypt(struct aead_request *req) err = skcipher_walk_aead_decrypt(&walk, req, false); if (unlikely(err)) { - pr_err("%s: skcipher_walk_aead_decrypt: %d\n", + pr_err("%s: skcipher_walk_aead_decrypt failed: %d\n", crypto_tfm_alg_driver_name(crypto_aead_tfm(tfm)), err); return err; }