From 1c4d15f46f2377e9525ec3741b5e23db64bfc7ae Mon Sep 17 00:00:00 2001 From: Yongxin Liu Date: Mon, 12 Apr 2021 16:24:38 +0800 Subject: qat17: update to version 1.7.l.4.12.0-00011 Removed patches: qat17_4.7.0-00006-Drop-pr_warning-definition.patch qat17_4.7.0-00006-Link-driver-with-object-files.patch qat17_4.7.0-00006-Switch-to-skcipher-API.patch qat17_4.7.0-00006-crypto-qat-adf_aer-Remove-pci_cleanup_aer_uncorrect_.patch qat17_4.7.0-00006-make-it-compatible-with-kernel-5.6.patch qat17_4.7.0-00006-qat-replace-linux-cryptohash.h-with-crypto-sha.h-for.patch use-CC-for-LD.patch Renamed and rebased patches: qat16_2.3.0-34-qat-fix-for-cross-compilation-issue.patch => 0001-qat-fix-for-cross-compilation-issue.patch qat16_2.3.0-34-qat-remove-local-path-from-makefile.patch => 0002-qat-remove-local-path-from-makefile.patch qat16_2.6.0-65-qat-override-CC-LD-AR-only-when-it-is-not-define.patch => 0003-qat-override-CC-LD-AR-only-when-it-is-not-define.patch qat17_0.6.0-1-qat-update-KDIR-for-cross-compilation.patch => 0004-update-KDIR-for-cross-compilation.patch qat17_0.8.0-37-qat-added-include-dir-path.patch => 0005-Added-include-dir-path.patch qat17_0.9.0-4-qat-add-install-target-and-add-folder.patch => 0006-qat-add-install-target-and-add-folder.patch qat17_4.1.0-00022-qat-use-static-lib-for-linking.patch => 0007-qat-use-static-lib-for-linking-under-cpa-sample-code.patch qat17_4.7.0-00006-overwrite-KBUILD_BUILTIN-in-kernel-s-Makefile.patch => 0008-qat-overwrite-KBUILD_BUILTIN-in-kernel-s-Makefile.patch qat17_4.7.0-00006-crypto-qat-Silence-smp_processor_id-warning.patch => 0009-crypto-qat-Silence-smp_processor_id-warning.patch qat17_4.7.0-00006-qat-include-sha1.h-and-sha2.h-instead-of-sha.h-in-ke.patch => 0010-qat-include-sha1.h-and-sha2.h-instead-of-sha.h-in-ke.patch qat17_4.7.0-00006-qat17-use-namespace-CRYPTO_INTERNAL.patch => 0011-qat17-use-namespace-CRYPTO_INTERNAL.patch Signed-off-by: Yongxin Liu Signed-off-by: Anuj Mittal --- .../0001-qat-fix-for-cross-compilation-issue.patch | 61 ++ .../0002-qat-remove-local-path-from-makefile.patch | 31 + ...rride-CC-LD-AR-only-when-it-is-not-define.patch | 35 + .../0004-update-KDIR-for-cross-compilation.patch | 39 + .../qat/files/0005-Added-include-dir-path.patch | 28 + ...006-qat-add-install-target-and-add-folder.patch | 70 ++ ...tic-lib-for-linking-under-cpa-sample-code.patch | 31 + ...write-KBUILD_BUILTIN-in-kernel-s-Makefile.patch | 33 + ...ypto-qat-Silence-smp_processor_id-warning.patch | 72 ++ ...-sha1.h-and-sha2.h-instead-of-sha.h-in-ke.patch | 54 + .../0011-qat17-use-namespace-CRYPTO_INTERNAL.patch | 47 + ....0-34-qat-remove-local-path-from-makefile.patch | 31 - ...rride-CC-LD-AR-only-when-it-is-not-define.patch | 34 - ...0-1-qat-update-KDIR-for-cross-compilation.patch | 38 - ...qat17_0.8.0-37-qat-added-include-dir-path.patch | 28 - ...0-4-qat-add-install-target-and-add-folder.patch | 68 -- ....1.0-00022-qat-use-static-lib-for-linking.patch | 30 - ...17_4.7.0-00006-Drop-pr_warning-definition.patch | 31 - ...4.7.0-00006-Link-driver-with-object-files.patch | 91 -- .../qat17_4.7.0-00006-Switch-to-skcipher-API.patch | 1158 -------------------- ...ypto-qat-Silence-smp_processor_id-warning.patch | 72 -- ...adf_aer-Remove-pci_cleanup_aer_uncorrect_.patch | 32 - ...-00006-make-it-compatible-with-kernel-5.6.patch | 96 -- ...write-KBUILD_BUILTIN-in-kernel-s-Makefile.patch | 33 - ...-sha1.h-and-sha2.h-instead-of-sha.h-in-ke.patch | 62 -- ...-linux-cryptohash.h-with-crypto-sha.h-for.patch | 35 - ...00006-qat17-use-namespace-CRYPTO_INTERNAL.patch | 47 - recipes-extended/qat/files/use-CC-for-LD.patch | 17 - recipes-extended/qat/qat17_4.12.0-00011.bb | 171 +++ recipes-extended/qat/qat17_4.7.0-00006.bb | 202 ---- 30 files changed, 672 insertions(+), 2105 deletions(-) create mode 100644 recipes-extended/qat/files/0001-qat-fix-for-cross-compilation-issue.patch create mode 100644 recipes-extended/qat/files/0002-qat-remove-local-path-from-makefile.patch create mode 100644 recipes-extended/qat/files/0003-qat-override-CC-LD-AR-only-when-it-is-not-define.patch create mode 100644 recipes-extended/qat/files/0004-update-KDIR-for-cross-compilation.patch create mode 100644 recipes-extended/qat/files/0005-Added-include-dir-path.patch create mode 100644 recipes-extended/qat/files/0006-qat-add-install-target-and-add-folder.patch create mode 100644 recipes-extended/qat/files/0007-qat-use-static-lib-for-linking-under-cpa-sample-code.patch create mode 100644 recipes-extended/qat/files/0008-qat-overwrite-KBUILD_BUILTIN-in-kernel-s-Makefile.patch create mode 100644 recipes-extended/qat/files/0009-crypto-qat-Silence-smp_processor_id-warning.patch create mode 100644 recipes-extended/qat/files/0010-qat-include-sha1.h-and-sha2.h-instead-of-sha.h-in-ke.patch create mode 100644 recipes-extended/qat/files/0011-qat17-use-namespace-CRYPTO_INTERNAL.patch delete mode 100644 recipes-extended/qat/files/qat16_2.3.0-34-qat-remove-local-path-from-makefile.patch delete mode 100644 recipes-extended/qat/files/qat16_2.6.0-65-qat-override-CC-LD-AR-only-when-it-is-not-define.patch delete mode 100644 recipes-extended/qat/files/qat17_0.6.0-1-qat-update-KDIR-for-cross-compilation.patch delete mode 100644 recipes-extended/qat/files/qat17_0.8.0-37-qat-added-include-dir-path.patch delete mode 100644 recipes-extended/qat/files/qat17_0.9.0-4-qat-add-install-target-and-add-folder.patch delete mode 100644 recipes-extended/qat/files/qat17_4.1.0-00022-qat-use-static-lib-for-linking.patch delete mode 100644 recipes-extended/qat/files/qat17_4.7.0-00006-Drop-pr_warning-definition.patch delete mode 100644 recipes-extended/qat/files/qat17_4.7.0-00006-Link-driver-with-object-files.patch delete mode 100644 recipes-extended/qat/files/qat17_4.7.0-00006-Switch-to-skcipher-API.patch delete mode 100644 recipes-extended/qat/files/qat17_4.7.0-00006-crypto-qat-Silence-smp_processor_id-warning.patch delete mode 100644 recipes-extended/qat/files/qat17_4.7.0-00006-crypto-qat-adf_aer-Remove-pci_cleanup_aer_uncorrect_.patch delete mode 100644 recipes-extended/qat/files/qat17_4.7.0-00006-make-it-compatible-with-kernel-5.6.patch delete mode 100644 recipes-extended/qat/files/qat17_4.7.0-00006-overwrite-KBUILD_BUILTIN-in-kernel-s-Makefile.patch delete mode 100644 recipes-extended/qat/files/qat17_4.7.0-00006-qat-include-sha1.h-and-sha2.h-instead-of-sha.h-in-ke.patch delete mode 100644 recipes-extended/qat/files/qat17_4.7.0-00006-qat-replace-linux-cryptohash.h-with-crypto-sha.h-for.patch delete mode 100644 recipes-extended/qat/files/qat17_4.7.0-00006-qat17-use-namespace-CRYPTO_INTERNAL.patch delete mode 100644 recipes-extended/qat/files/use-CC-for-LD.patch create mode 100644 recipes-extended/qat/qat17_4.12.0-00011.bb delete mode 100644 recipes-extended/qat/qat17_4.7.0-00006.bb diff --git a/recipes-extended/qat/files/0001-qat-fix-for-cross-compilation-issue.patch b/recipes-extended/qat/files/0001-qat-fix-for-cross-compilation-issue.patch new file mode 100644 index 0000000..45689a9 --- /dev/null +++ b/recipes-extended/qat/files/0001-qat-fix-for-cross-compilation-issue.patch @@ -0,0 +1,61 @@ +From 563cc2fc8d1b120a63aa9d157effed04d39bd58f Mon Sep 17 00:00:00 2001 +From: venkatasubramanian pattu +Date: Mon, 6 Jul 2015 15:57:20 +0800 +Subject: [PATCH 01/11] qat: fix for cross-compilation issue + +Upstream-Status: Inappropriate [Configuration] + +Ensure that we are not using host compiler. + +Signed-off-by: venkatasubramanian pattu +Signed-off-by: Anuj Mittal +[YL: modified for patching to qat17_4.12.0-00011] +Signed-off-by: Yongxin Liu +--- + quickassist/lookaside/access_layer/src/sample_code/functional/common.mk | 2 +- + .../access_layer/src/sample_code/functional/dc/dc_dp_sample/Makefile | 2 +- + quickassist/lookaside/access_layer/src/sample_code/performance/Makefile | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/quickassist/lookaside/access_layer/src/sample_code/functional/common.mk b/quickassist/lookaside/access_layer/src/sample_code/functional/common.mk +index 8c2fa3c..9402873 100644 +--- a/quickassist/lookaside/access_layer/src/sample_code/functional/common.mk ++++ b/quickassist/lookaside/access_layer/src/sample_code/functional/common.mk +@@ -150,7 +150,7 @@ ifeq ($(ICP_OS_LEVEL),user_space) + ############################################################ + + ifneq ($(PREBUILD_BINS),0) +- ADDITIONAL_OBJECTS += -L/usr/Lib -L$(ICP_BUILD_OUTPUT) ++ ADDITIONAL_OBJECTS += -L$(ICP_BUILD_OUTPUT) + + ifeq ($(WITH_UPSTREAM),1) + ifeq ($(WITH_ICP_TARGET),1) +diff --git a/quickassist/lookaside/access_layer/src/sample_code/functional/dc/dc_dp_sample/Makefile b/quickassist/lookaside/access_layer/src/sample_code/functional/dc/dc_dp_sample/Makefile +index 7a4d593..06cbc3d 100644 +--- a/quickassist/lookaside/access_layer/src/sample_code/functional/dc/dc_dp_sample/Makefile ++++ b/quickassist/lookaside/access_layer/src/sample_code/functional/dc/dc_dp_sample/Makefile +@@ -70,7 +70,7 @@ ifeq ($(ICP_OS_LEVEL),user_space) + # Build user space executible + # + ############################################################ +-ADDITIONAL_OBJECTS += -L/usr/Lib -lpthread -lcrypto ++ADDITIONAL_OBJECTS += -lpthread -lcrypto + + USER_SOURCE_FILES += ../../common/cpa_sample_utils.c cpa_dc_dp_sample.c + USER_SOURCE_FILES += cpa_dc_dp_sample_user.c +diff --git a/quickassist/lookaside/access_layer/src/sample_code/performance/Makefile b/quickassist/lookaside/access_layer/src/sample_code/performance/Makefile +index 4b6857f..3914c1b 100644 +--- a/quickassist/lookaside/access_layer/src/sample_code/performance/Makefile ++++ b/quickassist/lookaside/access_layer/src/sample_code/performance/Makefile +@@ -341,7 +341,7 @@ endif + + + +-ADDITIONAL_OBJECTS += -L/Lib -lpthread ++ADDITIONAL_OBJECTS += -lpthread + ADDITIONAL_OBJECTS += -lcrypto + ifeq ($(WITH_UPSTREAM),1) + ifeq ($(OS),linux) +-- +2.14.5 + diff --git a/recipes-extended/qat/files/0002-qat-remove-local-path-from-makefile.patch b/recipes-extended/qat/files/0002-qat-remove-local-path-from-makefile.patch new file mode 100644 index 0000000..f3aa726 --- /dev/null +++ b/recipes-extended/qat/files/0002-qat-remove-local-path-from-makefile.patch @@ -0,0 +1,31 @@ +From b71895c04981f59bf90de608c08ca389b65ad5e9 Mon Sep 17 00:00:00 2001 +From: Anuj Mittal +Date: Wed, 8 Jul 2015 11:11:32 +0800 +Subject: [PATCH 02/11] qat: remove local path from makefile + +Upstream-Status: Inappropriate [Configuration] + +Remove the host machine /usr/include path from makefile. + +Signed-off-by: Anuj Mittal +--- + quickassist/build_system/build_files/env_files/linux_2.6_user_space.mk | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/quickassist/build_system/build_files/env_files/linux_2.6_user_space.mk b/quickassist/build_system/build_files/env_files/linux_2.6_user_space.mk +index c1504e1..7a27739 100644 +--- a/quickassist/build_system/build_files/env_files/linux_2.6_user_space.mk ++++ b/quickassist/build_system/build_files/env_files/linux_2.6_user_space.mk +@@ -46,8 +46,7 @@ + # + #------------------------------------------------------------- + +-INCLUDES+=-I/usr/include \ +- -I$(API_DIR) \ ++INCLUDES+=-I$(API_DIR) \ + -I$(ADF_CMN_DIR) \ + -I$(OSAL_DIR)/include \ + -I$(OSAL_DIR)/src/linux/user_space/include +-- +2.14.5 + diff --git a/recipes-extended/qat/files/0003-qat-override-CC-LD-AR-only-when-it-is-not-define.patch b/recipes-extended/qat/files/0003-qat-override-CC-LD-AR-only-when-it-is-not-define.patch new file mode 100644 index 0000000..f3b8fe6 --- /dev/null +++ b/recipes-extended/qat/files/0003-qat-override-CC-LD-AR-only-when-it-is-not-define.patch @@ -0,0 +1,35 @@ +From 0a881aefea89006f21b82fcafc5a422b04fc0c9a Mon Sep 17 00:00:00 2001 +From: Rahul Kumar Gupta +Date: Mon, 12 Apr 2021 08:40:47 +0800 +Subject: [PATCH 03/11] qat: override CC LD AR only when it is not define + +Upstream-Status: Inappropriate [Configuration] + +To make sure that compiler linker and archiver will override only when +it is not defined by the environment. + +Signed-off-by: Rahul Kumar Gupta +--- + quickassist/build_system/build_files/Core/ia.mk | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/quickassist/build_system/build_files/Core/ia.mk b/quickassist/build_system/build_files/Core/ia.mk +index 230ee0f..f6fc755 100644 +--- a/quickassist/build_system/build_files/Core/ia.mk ++++ b/quickassist/build_system/build_files/Core/ia.mk +@@ -67,9 +67,9 @@ + # e.g. setenv CROSS_COMPILE x86_64-linux + ifdef CROSS_COMPILE + ifdef MACHINE +-CC = $(CROSS_COMPILE)gcc +-LD = $(CROSS_COMPILE)ld +-AR = $(CROSS_COMPILE)ar ++CC ?= $(CROSS_COMPILE)gcc ++LD ?= $(CROSS_COMPILE)ld ++AR ?= $(CROSS_COMPILE)ar + else + $(error MACHINE is undefined. Please set your target i.e. x86_64 \ + "-> setenv MACHINE x86_64 or export MACHINE=x86_64") +-- +2.14.5 + diff --git a/recipes-extended/qat/files/0004-update-KDIR-for-cross-compilation.patch b/recipes-extended/qat/files/0004-update-KDIR-for-cross-compilation.patch new file mode 100644 index 0000000..8812a96 --- /dev/null +++ b/recipes-extended/qat/files/0004-update-KDIR-for-cross-compilation.patch @@ -0,0 +1,39 @@ +From 2d73ce79ef1b05d11868c89f0095ce5920171593 Mon Sep 17 00:00:00 2001 +From: "Tan, Raymond" +Date: Wed, 30 May 2018 22:17:58 +0800 +Subject: [PATCH 04/11] update KDIR for cross-compilation + +Upstream-Status: Inappropriate [Configuration] + +This patch updates the kernel path for cross-compilation, avoid using the host +machine path. + +Signed-off-by: Tan, Raymond +--- + quickassist/qat/Makefile | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/quickassist/qat/Makefile b/quickassist/qat/Makefile +index b31829a..2e490ba 100644 +--- a/quickassist/qat/Makefile ++++ b/quickassist/qat/Makefile +@@ -63,13 +63,13 @@ $(info Compiling with Heartbeat Failure Simulation feature) + endif + + ifeq ($(KERNELRELEASE),) +-KDIR ?= $(INSTALL_MOD_PATH)/lib/modules/$(shell uname -r)/build +-ifneq ($(shell if [ -e $(KDIR)/include/config/auto.conf ]; then echo 1; fi),1) ++KDIR ?= $(KERNEL_SOURCE_ROOT) ++ifneq ($(shell if [ -e $(KERNEL_BUILDDIR)/include/config/auto.conf ]; then echo 1; fi),1) + $(error ERROR: Kernel header files not found. Install the appropriate \ + kernel development package necessary for building external kernel modules \ + or run 'make oldconfig && make modules_prepare' on kernel src to fix it) + endif +-include $(KDIR)/include/config/auto.conf ++include $(KERNEL_BUILDDIR)/include/config/auto.conf + INSTALL_FW_PATH ?= $(INSTALL_MOD_PATH)/lib/firmware + + default: modules +-- +2.14.5 + diff --git a/recipes-extended/qat/files/0005-Added-include-dir-path.patch b/recipes-extended/qat/files/0005-Added-include-dir-path.patch new file mode 100644 index 0000000..237abb6 --- /dev/null +++ b/recipes-extended/qat/files/0005-Added-include-dir-path.patch @@ -0,0 +1,28 @@ +From 667d9fd3542fbeedadf949143e2abf3776cf2336 Mon Sep 17 00:00:00 2001 +From: "Goh, Wen Sen" +Date: Tue, 24 May 2016 16:05:12 +0800 +Subject: [PATCH 05/11] Added include dir path + +Upstream-Status: Inappropriate [Configuration] + +Make sure that we point to the correct include path to the local +headers +--- + quickassist/build_system/build_files/env_files/linux_2.6_user_space.mk | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/quickassist/build_system/build_files/env_files/linux_2.6_user_space.mk b/quickassist/build_system/build_files/env_files/linux_2.6_user_space.mk +index 7a27739..2f935ec 100644 +--- a/quickassist/build_system/build_files/env_files/linux_2.6_user_space.mk ++++ b/quickassist/build_system/build_files/env_files/linux_2.6_user_space.mk +@@ -59,6 +59,7 @@ INCLUDES+=-I$(API_DIR) \ + + EXTRA_CFLAGS += $(cmd_line_cflags) + EXTRA_CFLAGS += -fno-strict-aliasing ++EXTRA_CFLAGS += $(INCLUDES) + EXTRA_LDFLAGS +=-whole-archive + + ifeq ($(ARCH), i386) +-- +2.14.5 + diff --git a/recipes-extended/qat/files/0006-qat-add-install-target-and-add-folder.patch b/recipes-extended/qat/files/0006-qat-add-install-target-and-add-folder.patch new file mode 100644 index 0000000..62d25e0 --- /dev/null +++ b/recipes-extended/qat/files/0006-qat-add-install-target-and-add-folder.patch @@ -0,0 +1,70 @@ +From fc2ae28063d10721282a4e6009cec9143ce37c80 Mon Sep 17 00:00:00 2001 +From: "Tan, Raymond" +Date: Mon, 4 Jun 2018 09:26:33 +0800 +Subject: [PATCH 06/11] qat-add-install-target-and-add-folder + +Upstream-Status: Inappropriate [Configuration] + +Modify Makefile to add install target and add folder + +Signed-off-by: Tan, Raymond +--- + quickassist/Makefile | 25 ++++++++++++++++++++++--- + 1 file changed, 22 insertions(+), 3 deletions(-) + +diff --git a/quickassist/Makefile b/quickassist/Makefile +index 558f85d..4cc0f2b 100644 +--- a/quickassist/Makefile ++++ b/quickassist/Makefile +@@ -96,6 +96,7 @@ ICP_BUILD_OUTPUT?=build_$(DATE) + ICP_TOP_ENV=$(ICP_BUILDSYSTEM_PATH)/build_files/env_files/ + export ICP_ACCEL_INC=YES + LAC_LIB_DIR=$(LAC_PATH)/build/libs ++MODULE_INSTALLPATH=$(SAMPLE_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat + + #Release Package build steps + ALL_TARGETS = lac_user lac_kernel +@@ -113,10 +114,14 @@ all: $(ALL_TARGETS) + + user: lac_lib_dir libosal_user lac_user + ++install: output_dir install_scripts ++ @cp $(ICP_ROOT)/quickassist/utilities/libusdm_drv/usdm_drv.ko $(MODULE_INSTALLPATH); ++ @cp $(ICP_ROOT)/quickassist/lookaside/access_layer/src/sample_code/performance/build/linux_2.6/user_space/cpa_sample_code $(ICP_BUILD_OUTPUT)$(DEST_BINDIR); ++ + install_scripts: + @echo ; echo 'Copying Install Scripts'; +- @cp $(ICP_BUILDSYSTEM_PATH)/build_files/qat_service $(ICP_BUILD_OUTPUT)/; +- @chmod 750 $(ICP_BUILD_OUTPUT)/qat_service; ++ @cp $(ICP_BUILDSYSTEM_PATH)/build_files/qat_service $(ICP_BUILD_OUTPUT)/etc/init.d; ++ @chmod 750 $(ICP_BUILD_OUTPUT)/etc/init.d/qat_service; + + # + # Common memory driver +@@ -199,8 +204,22 @@ ifeq ($(ICP_NO_CLEAN),) + endif + + +-output_dir: clean ++output_dir: + test -d $(ICP_BUILD_OUTPUT) || mkdir -p $(ICP_BUILD_OUTPUT); ++ test -d $(ICP_BUILD_OUTPUT)$(DEST_LIBDIR) || mkdir -p $(ICP_BUILD_OUTPUT)$(DEST_LIBDIR); ++ test -d $(ICP_BUILD_OUTPUT)$(DEST_BINDIR) || mkdir -p $(ICP_BUILD_OUTPUT)$(DEST_BINDIR); ++ test -d $(ICP_BUILD_OUTPUT)/lib/firmware || mkdir -p $(ICP_BUILD_OUTPUT)/lib/firmware; ++ test -d $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat || mkdir -p $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat; ++ test -d $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_common || mkdir -p $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_common; ++ test -d $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_c3xxx || mkdir -p $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_c3xxx; ++ test -d $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_c3xxxvf || mkdir -p $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_c3xxxvf; ++ test -d $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_c62x || mkdir -p $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_c62x; ++ test -d $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_c62xvf || mkdir -p $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_c62xvf; ++ test -d $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_dh895xcc || mkdir -p $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_dh895xcc; ++ test -d $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_dh895xccvf || mkdir -p $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_dh895xccvf; ++ test -d $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_d15xx || mkdir -p $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_d15xx; ++ test -d $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_d15xxvf || mkdir -p $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_d15xxvf; ++ test -d $(ICP_BUILD_OUTPUT)/etc/init.d || mkdir -p $(ICP_BUILD_OUTPUT)/etc/init.d; + + lac_lib_dir: clean + test -d $(LAC_LIB_DIR) || mkdir -p $(LAC_LIB_DIR); +-- +2.14.5 + diff --git a/recipes-extended/qat/files/0007-qat-use-static-lib-for-linking-under-cpa-sample-code.patch b/recipes-extended/qat/files/0007-qat-use-static-lib-for-linking-under-cpa-sample-code.patch new file mode 100644 index 0000000..fc8828e --- /dev/null +++ b/recipes-extended/qat/files/0007-qat-use-static-lib-for-linking-under-cpa-sample-code.patch @@ -0,0 +1,31 @@ +From 54d537415c88b52c6cc682db17ecd0b6c077a8bf Mon Sep 17 00:00:00 2001 +From: "Tan, Raymond" +Date: Mon, 12 Apr 2021 08:52:17 +0800 +Subject: [PATCH 07/11] qat-use-static-lib-for-linking-under-cpa-sample-code + +Upstream-Status: Inappropriate [Configuration] + +Update linking target to use stalib library instead, to mitigate error on +hidden symbol "__ctzdi2" being referenced by shared lib (SO) during intel-core2-32 build. + +Signed-off-by: Tan, Raymond +--- + quickassist/lookaside/access_layer/src/sample_code/performance/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/quickassist/lookaside/access_layer/src/sample_code/performance/Makefile b/quickassist/lookaside/access_layer/src/sample_code/performance/Makefile +index 3914c1b..a22e366 100644 +--- a/quickassist/lookaside/access_layer/src/sample_code/performance/Makefile ++++ b/quickassist/lookaside/access_layer/src/sample_code/performance/Makefile +@@ -319,7 +319,7 @@ ifneq ($(PREBUILD_BINS),0) + ifeq ($(WITH_ICP_TARGET),1) + ADDITIONAL_OBJECTS += $(ICP_BUILD_OUTPUT)/libqae_mem.a + else +- ADDITIONAL_OBJECTS += $(ICP_BUILD_OUTPUT)/libusdm_drv_s.so ++ ADDITIONAL_OBJECTS += $(ICP_BUILD_OUTPUT)/libusdm_drv.a + endif + endif + #endif +-- +2.14.5 + diff --git a/recipes-extended/qat/files/0008-qat-overwrite-KBUILD_BUILTIN-in-kernel-s-Makefile.patch b/recipes-extended/qat/files/0008-qat-overwrite-KBUILD_BUILTIN-in-kernel-s-Makefile.patch new file mode 100644 index 0000000..b511473 --- /dev/null +++ b/recipes-extended/qat/files/0008-qat-overwrite-KBUILD_BUILTIN-in-kernel-s-Makefile.patch @@ -0,0 +1,33 @@ +From 315838f92b83da62afd2800b57eddd03d0cfde58 Mon Sep 17 00:00:00 2001 +From: Yongxin Liu +Date: Wed, 25 Nov 2020 07:58:07 +0800 +Subject: [PATCH 08/11] qat: overwrite KBUILD_BUILTIN in kernel's Makefile + +Since kernel v5.10-rc1, commit 6212804f2d78 ("kbuild: do not create +built-in objects for external module builds"), QAT static libraries +cannot be created. So add KBUILD_BUILTIN=1 in command line to overwrite +it in kernel Makefile. + +Upstream-Status: Inappropriate [Code released in tarball form only] + +Signed-off-by: Yongxin Liu +--- + quickassist/build_system/build_files/OS/linux_2.6_kernel_space_rules.mk | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/quickassist/build_system/build_files/OS/linux_2.6_kernel_space_rules.mk b/quickassist/build_system/build_files/OS/linux_2.6_kernel_space_rules.mk +index 71bbeb7..8a5cfbc 100644 +--- a/quickassist/build_system/build_files/OS/linux_2.6_kernel_space_rules.mk ++++ b/quickassist/build_system/build_files/OS/linux_2.6_kernel_space_rules.mk +@@ -72,7 +72,7 @@ endif + + $(LIB_STATIC): dirs + @echo 'Creating static library ${LIB_STATIC}'; \ +- $(MAKE) -C $(KERNEL_SOURCE_ROOT)/ M=$(PWD) obj-m=""; \ ++ $(MAKE) -C $(KERNEL_SOURCE_ROOT)/ M=$(PWD) obj-m="" KBUILD_BUILTIN=1; \ + echo 'Copying outputs';\ + test -f lib.a && (ar -t lib.a | xargs ar -rcsD $(LIB_STATIC)); \ + test -f $(LIB_STATIC) && mv -f $(LIB_STATIC) $($(PROG_ACY)_FINAL_OUTPUT_DIR)/$(LIB_STATIC); \ +-- +2.14.5 + diff --git a/recipes-extended/qat/files/0009-crypto-qat-Silence-smp_processor_id-warning.patch b/recipes-extended/qat/files/0009-crypto-qat-Silence-smp_processor_id-warning.patch new file mode 100644 index 0000000..d619cc3 --- /dev/null +++ b/recipes-extended/qat/files/0009-crypto-qat-Silence-smp_processor_id-warning.patch @@ -0,0 +1,72 @@ +From a79112f8673c3d4912bb28592e64a90f237a31e5 Mon Sep 17 00:00:00 2001 +From: Alexander Sverdlin +Date: Tue, 23 Jul 2019 07:24:01 +0000 +Subject: [PATCH 09/11] crypto: qat - Silence smp_processor_id() warning + +It seems that smp_processor_id() is only used for a best-effort +load-balancing, refer to qat_crypto_get_instance_node(). It's not feasible +to disable preemption for the duration of the crypto requests. Therefore, +just silence the warning. This commit is similar to e7a9b05ca4 +("crypto: cavium - Fix smp_processor_id() warnings"). + +Silences the following splat: +BUG: using smp_processor_id() in preemptible [00000000] code: cryptomgr_test/2904 +caller is qat_alg_ablkcipher_setkey+0x300/0x4a0 [intel_qat] +CPU: 1 PID: 2904 Comm: cryptomgr_test Tainted: P O 4.14.69 #1 +... +Call Trace: + dump_stack+0x5f/0x86 + check_preemption_disabled+0xd3/0xe0 + qat_alg_ablkcipher_setkey+0x300/0x4a0 [intel_qat] + skcipher_setkey_ablkcipher+0x2b/0x40 + __test_skcipher+0x1f3/0xb20 + ? cpumask_next_and+0x26/0x40 + ? find_busiest_group+0x10e/0x9d0 + ? preempt_count_add+0x49/0xa0 + ? try_module_get+0x61/0xf0 + ? crypto_mod_get+0x15/0x30 + ? __kmalloc+0x1df/0x1f0 + ? __crypto_alloc_tfm+0x116/0x180 + ? crypto_skcipher_init_tfm+0xa6/0x180 + ? crypto_create_tfm+0x4b/0xf0 + test_skcipher+0x21/0xa0 + alg_test_skcipher+0x3f/0xa0 + alg_test.part.6+0x126/0x2a0 + ? finish_task_switch+0x21b/0x260 + ? __schedule+0x1e9/0x800 + ? __wake_up_common+0x8d/0x140 + cryptomgr_test+0x40/0x50 + kthread+0xff/0x130 + ? cryptomgr_notify+0x540/0x540 + ? kthread_create_on_node+0x70/0x70 + ret_from_fork+0x24/0x50 + +Fixes: ed8ccaef52 ("crypto: qat - Add support for SRIOV") +Cc: stable@vger.kernel.org +Signed-off-by: Alexander Sverdlin +Signed-off-by: Herbert Xu + +Upstream-Status: Backport +[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1b82feb6c5e1996513d0fb0bbb475417088b4954] + +Signed-off-by: Yongxin Liu +--- + quickassist/qat/drivers/crypto/qat/qat_common/adf_common_drv.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/quickassist/qat/drivers/crypto/qat/qat_common/adf_common_drv.h b/quickassist/qat/drivers/crypto/qat/qat_common/adf_common_drv.h +index 8d57925..38bad69 100644 +--- a/quickassist/qat/drivers/crypto/qat/qat_common/adf_common_drv.h ++++ b/quickassist/qat/drivers/crypto/qat/qat_common/adf_common_drv.h +@@ -100,7 +100,7 @@ struct service_hndl { + + static inline int get_current_node(void) + { +- return topology_physical_package_id(smp_processor_id()); ++ return topology_physical_package_id(raw_smp_processor_id()); + } + + int adf_service_register(struct service_hndl *service); +-- +2.14.5 + diff --git a/recipes-extended/qat/files/0010-qat-include-sha1.h-and-sha2.h-instead-of-sha.h-in-ke.patch b/recipes-extended/qat/files/0010-qat-include-sha1.h-and-sha2.h-instead-of-sha.h-in-ke.patch new file mode 100644 index 0000000..b86d1db --- /dev/null +++ b/recipes-extended/qat/files/0010-qat-include-sha1.h-and-sha2.h-instead-of-sha.h-in-ke.patch @@ -0,0 +1,54 @@ +From c9e04ec8d8be3a1f21a5bdc6c5c79f50191d57dd Mon Sep 17 00:00:00 2001 +From: Yongxin Liu +Date: Thu, 28 Jan 2021 13:07:59 +0800 +Subject: [PATCH 10/11] qat: include sha1.h and sha2.h instead of sha.h in + kernel v5.11 + +In kernel commit a24d22b225ce ("crypto: sha - split sha.h into sha1.h and sha2.h"), + was split into two headers and . + +Upstream-Status: Inappropriate [Code released in tarball form only] + +Signed-off-by: Yongxin Liu +--- + quickassist/qat/drivers/crypto/qat/qat_common/qat_algs.c | 5 +++++ + .../utilities/osal/src/linux/kernel_space/OsalCryptoInterface.c | 5 +++++ + 2 files changed, 10 insertions(+) + +diff --git a/quickassist/qat/drivers/crypto/qat/qat_common/qat_algs.c b/quickassist/qat/drivers/crypto/qat/qat_common/qat_algs.c +index 37ac11e..08680ca 100644 +--- a/quickassist/qat/drivers/crypto/qat/qat_common/qat_algs.c ++++ b/quickassist/qat/drivers/crypto/qat/qat_common/qat_algs.c +@@ -52,7 +52,12 @@ + #include + #include + #include ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,11,0)) ++#include ++#include ++#else + #include ++#endif + #include + #include + #include +diff --git a/quickassist/utilities/osal/src/linux/kernel_space/OsalCryptoInterface.c b/quickassist/utilities/osal/src/linux/kernel_space/OsalCryptoInterface.c +index 9d2e85c..de24fa0 100644 +--- a/quickassist/utilities/osal/src/linux/kernel_space/OsalCryptoInterface.c ++++ b/quickassist/utilities/osal/src/linux/kernel_space/OsalCryptoInterface.c +@@ -69,7 +69,12 @@ + #include + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29)) + #include ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,11,0)) ++#include ++#include ++#else + #include ++#endif + + #define OSAL_MAX_SHASH_DECSIZE 512 + +-- +2.14.5 + diff --git a/recipes-extended/qat/files/0011-qat17-use-namespace-CRYPTO_INTERNAL.patch b/recipes-extended/qat/files/0011-qat17-use-namespace-CRYPTO_INTERNAL.patch new file mode 100644 index 0000000..1a7a647 --- /dev/null +++ b/recipes-extended/qat/files/0011-qat17-use-namespace-CRYPTO_INTERNAL.patch @@ -0,0 +1,47 @@ +From 9b2b7a79fc9d9323fe9ec44de7619ea175c45bc1 Mon Sep 17 00:00:00 2001 +From: Yongxin Liu +Date: Tue, 23 Mar 2021 09:31:25 +0000 +Subject: [PATCH 11/11] qat17: use namespace CRYPTO_INTERNAL + +Due to kernel commit 0eb76ba29d16 ("crypto: remove cipher routines from +public crypto API") in v5.12-rc1, some crypto APIs are exported into a new +namespace CRYPTO_INTERNAL. + +Upstream-Status: Inappropriate [Code released in tarball form only] + +Signed-off-by: Yongxin Liu +--- + quickassist/lookaside/access_layer/src/linux/icp_qa_module.c | 3 +++ + .../utilities/osal/src/linux/kernel_space/OsalCryptoInterface.c | 5 +++++ + 2 files changed, 8 insertions(+) + +diff --git a/quickassist/lookaside/access_layer/src/linux/icp_qa_module.c b/quickassist/lookaside/access_layer/src/linux/icp_qa_module.c +index 413eb07..f3a371e 100644 +--- a/quickassist/lookaside/access_layer/src/linux/icp_qa_module.c ++++ b/quickassist/lookaside/access_layer/src/linux/icp_qa_module.c +@@ -120,3 +120,6 @@ module_exit(kapi_mod_exit); + MODULE_DESCRIPTION("Intel(R) Quickassist Technology Acceleration Driver"); + MODULE_AUTHOR("Intel"); + MODULE_LICENSE("Dual BSD/GPL"); ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,12,0)) ++MODULE_IMPORT_NS(CRYPTO_INTERNAL); ++#endif +diff --git a/quickassist/utilities/osal/src/linux/kernel_space/OsalCryptoInterface.c b/quickassist/utilities/osal/src/linux/kernel_space/OsalCryptoInterface.c +index de24fa0..96c29c0 100644 +--- a/quickassist/utilities/osal/src/linux/kernel_space/OsalCryptoInterface.c ++++ b/quickassist/utilities/osal/src/linux/kernel_space/OsalCryptoInterface.c +@@ -75,6 +75,11 @@ + #else + #include + #endif ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,12,0)) ++#include ++#include ++MODULE_IMPORT_NS(CRYPTO_INTERNAL); ++#endif + + #define OSAL_MAX_SHASH_DECSIZE 512 + +-- +2.14.5 + diff --git a/recipes-extended/qat/files/qat16_2.3.0-34-qat-remove-local-path-from-makefile.patch b/recipes-extended/qat/files/qat16_2.3.0-34-qat-remove-local-path-from-makefile.patch deleted file mode 100644 index 96791cb..0000000 --- a/recipes-extended/qat/files/qat16_2.3.0-34-qat-remove-local-path-from-makefile.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 1e29afc0e69fb9118cb0dcb924cdffa9db730572 Mon Sep 17 00:00:00 2001 -From: Anuj Mittal -Date: Wed, 8 Jul 2015 11:11:32 +0800 -Subject: [PATCH] qat: remove local path from makefile - -Upstream-Status: Inappropriate [Configuration] - -Remove the host machine /usr/include path from makefile. - -Signed-off-by: Anuj Mittal ---- - quickassist/build_system/build_files/env_files/linux_2.6_user_space.mk | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/quickassist/build_system/build_files/env_files/linux_2.6_user_space.mk b/quickassist/build_system/build_files/env_files/linux_2.6_user_space.mk -index f7f18a5..e8c9f18 100644 ---- a/quickassist/build_system/build_files/env_files/linux_2.6_user_space.mk -+++ b/quickassist/build_system/build_files/env_files/linux_2.6_user_space.mk -@@ -46,8 +46,7 @@ - # - #------------------------------------------------------------- - --INCLUDES+=-I/usr/include \ -- -I$(API_DIR) \ -+INCLUDES+=-I$(API_DIR) \ - -I$(ADF_CMN_DIR) \ - -I$(OSAL_DIR)/include \ - -I$(OSAL_DIR)/src/linux/user_space/include --- -2.14.4 - diff --git a/recipes-extended/qat/files/qat16_2.6.0-65-qat-override-CC-LD-AR-only-when-it-is-not-define.patch b/recipes-extended/qat/files/qat16_2.6.0-65-qat-override-CC-LD-AR-only-when-it-is-not-define.patch deleted file mode 100644 index a25fdae..0000000 --- a/recipes-extended/qat/files/qat16_2.6.0-65-qat-override-CC-LD-AR-only-when-it-is-not-define.patch +++ /dev/null @@ -1,34 +0,0 @@ -From b21929c42aca4bc80f6c48b5ac31bf20165b2f3e Mon Sep 17 00:00:00 2001 -From: Rahul Kumar Gupta -Date: Fri, 25 Mar 2016 18:02:37 +0800 -Subject: [PATCH] qat: override CC LD AR only when it is not define - -Upstream-Status: Inappropriate [Configuration] - -To make sure that compiler linker and archiver will override only when -it is not defined by the environment. - -Signed-off-by: Rahul Kumar Gupta ---- - quickassist/build_system/build_files/Core/ia.mk | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/quickassist/build_system/build_files/Core/ia.mk b/quickassist/build_system/build_files/Core/ia.mk -index 4a4d123..f9aca23 100755 ---- a/quickassist/build_system/build_files/Core/ia.mk -+++ b/quickassist/build_system/build_files/Core/ia.mk -@@ -67,9 +67,9 @@ - # e.g. setenv CROSS_COMPILE x86_64-linux - ifdef CROSS_COMPILE - ifdef MACHINE --CC = $(CROSS_COMPILE)gcc --LD = $(CROSS_COMPILE)ld --AR = $(CROSS_COMPILE)ar -+CC ?= $(CROSS_COMPILE)gcc -+LD ?= $(CROSS_COMPILE)ld -+AR ?= $(CROSS_COMPILE)ar - else - $(error MACHINE is undefined. Please set your target i.e. x86_64 \ - "-> setenv MACHINE x86_64 or export MACHINE=x86_64") --- -1.9.1 diff --git a/recipes-extended/qat/files/qat17_0.6.0-1-qat-update-KDIR-for-cross-compilation.patch b/recipes-extended/qat/files/qat17_0.6.0-1-qat-update-KDIR-for-cross-compilation.patch deleted file mode 100644 index 78fc44b..0000000 --- a/recipes-extended/qat/files/qat17_0.6.0-1-qat-update-KDIR-for-cross-compilation.patch +++ /dev/null @@ -1,38 +0,0 @@ -From ae306d58c1bfc3d1c01d0e54ecfbfbbce39a0d4e Mon Sep 17 00:00:00 2001 -From: "Tan, Raymond" -Date: Wed, 30 May 2018 22:17:58 +0800 -Subject: [PATCH] update KDIR for cross-compilation - -Upstream-Status: Inappropriate [Configuration] - -This patch updates the kernel path for cross-compilation, avoid using the host -machine path. - -Signed-off-by: Tan, Raymond ---- - quickassist/qat/Makefile | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/quickassist/qat/Makefile b/quickassist/qat/Makefile -index ab9a381..8608378 100644 ---- a/quickassist/qat/Makefile -+++ b/quickassist/qat/Makefile -@@ -61,13 +61,13 @@ $(info Compiling with Heartbeat Failure Simulation feature) - endif - - ifeq ($(KERNELRELEASE),) --KDIR ?= $(INSTALL_MOD_PATH)/lib/modules/$(shell uname -r)/build --ifneq ($(shell if [ -e $(KDIR)/include/config/auto.conf ]; then echo 1; fi),1) -+KDIR ?= $(KERNEL_SOURCE_ROOT) -+ifneq ($(shell if [ -e $(KERNEL_BUILDDIR)/include/config/auto.conf ]; then echo 1; fi),1) - $(error ERROR: Kernel header files not found. Install the appropriate \ - kernel development package necessary for building external kernel modules \ - or run 'make oldconfig && make modules_prepare' on kernel src to fix it) - endif --include $(KDIR)/include/config/auto.conf -+include $(KERNEL_BUILDDIR)/include/config/auto.conf - INSTALL_FW_PATH ?= $(INSTALL_MOD_PATH)/lib/firmware - - default: modules --- -1.9.1 diff --git a/recipes-extended/qat/files/qat17_0.8.0-37-qat-added-include-dir-path.patch b/recipes-extended/qat/files/qat17_0.8.0-37-qat-added-include-dir-path.patch deleted file mode 100644 index 431d5f7..0000000 --- a/recipes-extended/qat/files/qat17_0.8.0-37-qat-added-include-dir-path.patch +++ /dev/null @@ -1,28 +0,0 @@ -From bb3de86f5511d25dffb1722f9c82379c91a3bb16 Mon Sep 17 00:00:00 2001 -From: "Goh, Wen Sen" -Date: Tue, 24 May 2016 16:05:12 +0800 -Subject: [PATCH] Added include dir path - -Upstream-Status: Inappropriate [Configuration] - -Make sure that we point to the correct include path to the local -headers - ---- - quickassist/build_system/build_files/env_files/linux_2.6_user_space.mk | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/quickassist/build_system/build_files/env_files/linux_2.6_user_space.mk b/quickassist/build_system/build_files/env_files/linux_2.6_user_space.mk -index 493d6e9..67b252a 100755 ---- a/quickassist/build_system/build_files/env_files/linux_2.6_user_space.mk -+++ b/quickassist/build_system/build_files/env_files/linux_2.6_user_space.mk -@@ -84,6 +84,7 @@ INCLUDES+=-I$(API_DIR) \ - - EXTRA_CFLAGS += $(cmd_line_cflags) - EXTRA_CFLAGS += -fno-strict-aliasing -+EXTRA_CFLAGS += $(INCLUDES) - EXTRA_LDFLAGS +=-whole-archive - - ifeq ($(ARCH), i386) --- -2.8.3 diff --git a/recipes-extended/qat/files/qat17_0.9.0-4-qat-add-install-target-and-add-folder.patch b/recipes-extended/qat/files/qat17_0.9.0-4-qat-add-install-target-and-add-folder.patch deleted file mode 100644 index a810cfc..0000000 --- a/recipes-extended/qat/files/qat17_0.9.0-4-qat-add-install-target-and-add-folder.patch +++ /dev/null @@ -1,68 +0,0 @@ -From a94af9df0fa6f2c41efaf7ef6c17d0e5bb8aa80d Mon Sep 17 00:00:00 2001 -From: "Tan, Raymond" -Date: Mon, 4 Jun 2018 09:26:33 +0800 -Subject: [PATCH] qat-add-install-target-and-add-folder - -Upstream-Status: Inappropriate [Configuration] - -Modify Makefile to add install target and add folder - -Signed-off-by: Tan, Raymond - ---- - quickassist/Makefile | 25 ++++++++++++++++++++++--- - 1 file changed, 22 insertions(+), 3 deletions(-) - -diff --git a/quickassist/Makefile b/quickassist/Makefile -index 93990f2..70a4353 100644 ---- a/quickassist/Makefile -+++ b/quickassist/Makefile -@@ -97,6 +97,7 @@ ICP_BUILD_OUTPUT?=build_$(DATE) - ICP_TOP_ENV=$(ICP_BUILDSYSTEM_PATH)/build_files/env_files/ - export ICP_ACCEL_INC=YES - LAC_LIB_DIR=$(LAC_PATH)/build/libs -+MODULE_INSTALLPATH=$(SAMPLE_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat - - #Release Package build steps - ALL_TARGETS = lac_user lac_kernel -@@ -114,10 +115,14 @@ all: $(ALL_TARGETS) - - user: lac_lib_dir libosal_user lac_user - -+install: output_dir install_scripts -+ @cp $(ICP_ROOT)/quickassist/utilities/libusdm_drv/usdm_drv.ko $(MODULE_INSTALLPATH); -+ @cp $(ICP_ROOT)/quickassist/lookaside/access_layer/src/sample_code/performance/build/linux_2.6/user_space/cpa_sample_code $(ICP_BUILD_OUTPUT)$(DEST_BINDIR); -+ - install_scripts: - @echo ; echo 'Copying Install Scripts'; -- @cp $(ICP_BUILDSYSTEM_PATH)/build_files/qat_service $(ICP_BUILD_OUTPUT)/; -- @chmod 750 $(ICP_BUILD_OUTPUT)/qat_service; -+ @cp $(ICP_BUILDSYSTEM_PATH)/build_files/qat_service $(ICP_BUILD_OUTPUT)/etc/init.d; -+ @chmod 750 $(ICP_BUILD_OUTPUT)/etc/init.d/qat_service; - - # - # Common memory driver -@@ -200,8 +205,22 @@ ifeq ($(ICP_NO_CLEAN),) - endif - - --output_dir: clean -+output_dir: - test -d $(ICP_BUILD_OUTPUT) || mkdir -p $(ICP_BUILD_OUTPUT); -+ test -d $(ICP_BUILD_OUTPUT)$(DEST_LIBDIR) || mkdir -p $(ICP_BUILD_OUTPUT)$(DEST_LIBDIR); -+ test -d $(ICP_BUILD_OUTPUT)$(DEST_BINDIR) || mkdir -p $(ICP_BUILD_OUTPUT)$(DEST_BINDIR); -+ test -d $(ICP_BUILD_OUTPUT)/lib/firmware || mkdir -p $(ICP_BUILD_OUTPUT)/lib/firmware; -+ test -d $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat || mkdir -p $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat; -+ test -d $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_common || mkdir -p $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_common; -+ test -d $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_c3xxx || mkdir -p $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_c3xxx; -+ test -d $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_c3xxxvf || mkdir -p $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_c3xxxvf; -+ test -d $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_c62x || mkdir -p $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_c62x; -+ test -d $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_c62xvf || mkdir -p $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_c62xvf; -+ test -d $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_dh895xcc || mkdir -p $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_dh895xcc; -+ test -d $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_dh895xccvf || mkdir -p $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_dh895xccvf; -+ test -d $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_d15xx || mkdir -p $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_d15xx; -+ test -d $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_d15xxvf || mkdir -p $(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_d15xxvf; -+ test -d $(ICP_BUILD_OUTPUT)/etc/init.d || mkdir -p $(ICP_BUILD_OUTPUT)/etc/init.d; - - lac_lib_dir: clean - test -d $(LAC_LIB_DIR) || mkdir -p $(LAC_LIB_DIR); diff --git a/recipes-extended/qat/files/qat17_4.1.0-00022-qat-use-static-lib-for-linking.patch b/recipes-extended/qat/files/qat17_4.1.0-00022-qat-use-static-lib-for-linking.patch deleted file mode 100644 index f786a10..0000000 --- a/recipes-extended/qat/files/qat17_4.1.0-00022-qat-use-static-lib-for-linking.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 026fd275834ac4e345464c8ce2b0163d052d0262 Mon Sep 17 00:00:00 2001 -From: "Tan, Raymond" -Date: Wed, 30 May 2018 13:27:03 +0800 -Subject: [PATCH] qat-use-static-lib-for-linking-under-cpa-sample-code - -Upstream-Status: Inappropriate [Configuration] - -Update linking target to use stalib library instead, to mitigate error on -hidden symbol "__ctzdi2" being referenced by shared lib (SO) during intel-core2-32 build. - -Signed-off-by: Tan, Raymond ---- - quickassist/lookaside/access_layer/src/sample_code/performance/Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/quickassist/lookaside/access_layer/src/sample_code/performance/Makefile b/quickassist/lookaside/access_layer/src/sample_code/performance/Makefile -index 3a0fb37..5b7b3fa 100644 ---- a/quickassist/lookaside/access_layer/src/sample_code/performance/Makefile -+++ b/quickassist/lookaside/access_layer/src/sample_code/performance/Makefile -@@ -209,7 +209,7 @@ ifeq ($(WITH_CMDRV),1) - ifeq ($(WITH_ICP_TARGET),1) - ADDITIONAL_OBJECTS += $(ICP_BUILD_OUTPUT)/libqae_mem.a - else -- ADDITIONAL_OBJECTS += $(ICP_BUILD_OUTPUT)/libusdm_drv_s.so -+ ADDITIONAL_OBJECTS += $(ICP_BUILD_OUTPUT)/libusdm_drv.a - endif - endif - #endif --- -1.9.1 diff --git a/recipes-extended/qat/files/qat17_4.7.0-00006-Drop-pr_warning-definition.patch b/recipes-extended/qat/files/qat17_4.7.0-00006-Drop-pr_warning-definition.patch deleted file mode 100644 index 6b816df..0000000 --- a/recipes-extended/qat/files/qat17_4.7.0-00006-Drop-pr_warning-definition.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 058673d6798b835dce7f27fe172b7727bbaf30cf Mon Sep 17 00:00:00 2001 -From: Yongxin Liu -Date: Wed, 15 Jan 2020 15:25:15 +0000 -Subject: [PATCH] qat: Drop pr_warning definition - -In mainline kernel commit 61ff72f40168 ("printk: Drop pr_warning -definition"), pr_warning was dropped. - -Upstream-Status: Inappropriate [Code released in tarball form only] - -Signed-off-by: Yongxin Liu ---- - quickassist/utilities/libusdm_drv/linux/include/qae_mem_utils.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/quickassist/utilities/libusdm_drv/linux/include/qae_mem_utils.h b/quickassist/utilities/libusdm_drv/linux/include/qae_mem_utils.h -index f4a56dc..d88e762 100644 ---- a/quickassist/utilities/libusdm_drv/linux/include/qae_mem_utils.h -+++ b/quickassist/utilities/libusdm_drv/linux/include/qae_mem_utils.h -@@ -93,7 +93,7 @@ MALLOC_DECLARE(M_QAE_MEM); - - #define mm_info(...) pr_info(USDM_MOD __VA_ARGS__) - --#define mm_warning(...) pr_warning(USDM_MOD __VA_ARGS__) -+#define mm_warning(...) pr_warn(USDM_MOD __VA_ARGS__) - - /*define types which need to vary between 32 and 64 bit*/ - #define QAE_PAGE_SHIFT 12 --- -2.24.1 - diff --git a/recipes-extended/qat/files/qat17_4.7.0-00006-Link-driver-with-object-files.patch b/recipes-extended/qat/files/qat17_4.7.0-00006-Link-driver-with-object-files.patch deleted file mode 100644 index 0780426..0000000 --- a/recipes-extended/qat/files/qat17_4.7.0-00006-Link-driver-with-object-files.patch +++ /dev/null @@ -1,91 +0,0 @@ -From 555a4b3605e983e492f8c67e38a094933bc7efcd Mon Sep 17 00:00:00 2001 -From: Yongxin Liu -Date: Mon, 6 Jan 2020 09:26:39 +0800 -Subject: [PATCH] qat: Link driver with object files instead of archived files - -Due to mainline kernel commit 69ea912fda7 ("kbuild: remove unneeded -link_multi_deps"), modules cannot link *.a archives. So change .a to -.o files. - -Upstream-Status: Inappropriate [Temporary workaround for kernel later than -v4.19-rc3] - -Signed-off-by: Yongxin Liu - ---- - quickassist/Makefile | 2 ++ - .../lookaside/access_layer/src/Makefile | 21 +++++++++---------- - 2 files changed, 12 insertions(+), 11 deletions(-) - -diff --git a/quickassist/Makefile b/quickassist/Makefile -index 70a4353..5f6ee46 100644 ---- a/quickassist/Makefile -+++ b/quickassist/Makefile -@@ -154,6 +154,7 @@ libosal_kernel: clean output_dir lac_lib_dir - echo ; echo 'Copying OSAL library'; - cp $(OSAL_PATH)/src/linux/kernel_space/build/linux_2.6/kernel_space/libosal.a $(ICP_BUILD_OUTPUT)/libosal_kernel.a; - cp $(OSAL_PATH)/src/linux/kernel_space/build/linux_2.6/kernel_space/libosal.a $(LAC_LIB_DIR)/; -+ cp $(OSAL_PATH)/src/linux/kernel_space/build/linux_2.6/kernel_space/*.o $(LAC_LIB_DIR)/; - - - #build linux qat_direct layer -@@ -169,6 +170,7 @@ qat_kernel: clean output_dir lac_lib_dir libosal_kernel cmn_ko - echo ; echo 'Copying qat_kernel library'; - cp $(KERNEL_PATH)/src/build/linux_2.6/kernel_space/libadf_kernel.a $(ICP_BUILD_OUTPUT)/; - cp $(KERNEL_PATH)/src/build/linux_2.6/kernel_space/libadf_kernel.a $(LAC_LIB_DIR)/; -+ cp $(KERNEL_PATH)/src/build/linux_2.6/kernel_space/*.o $(LAC_LIB_DIR)/; - - - lac_user: clean output_dir qat_direct libosal_user cmn_user cmn_ko -diff --git a/quickassist/lookaside/access_layer/src/Makefile b/quickassist/lookaside/access_layer/src/Makefile -index cc8cf2f..b8ec93c 100644 ---- a/quickassist/lookaside/access_layer/src/Makefile -+++ b/quickassist/lookaside/access_layer/src/Makefile -@@ -112,13 +112,13 @@ LIB_STATIC=$(OUTPUT_NAME).a - LIB_SHARED=$(OUTPUT_NAME).so - - # add the path and list of source libraries, --ADDITIONAL_KERNEL_LIBS= common/utils/$(ICP_BUILD_OUTPUT_DIR)/utils.a \ -- common/ctrl/$(ICP_BUILD_OUTPUT_DIR)/init.a \ -- common/compression/$(ICP_BUILD_OUTPUT_DIR)/compression.a -+ADDITIONAL_KERNEL_LIBS= common/utils/$(ICP_BUILD_OUTPUT_DIR)/*.o \ -+ common/ctrl/$(ICP_BUILD_OUTPUT_DIR)/*.o \ -+ common/compression/$(ICP_BUILD_OUTPUT_DIR)/*.o - ifndef ICP_DC_ONLY --ADDITIONAL_KERNEL_LIBS += common/crypto/sym/$(ICP_BUILD_OUTPUT_DIR)/sym.a \ -- common/crypto/sym/qat/$(ICP_BUILD_OUTPUT_DIR)/sym_qat.a \ -- common/crypto/sym/key/$(ICP_BUILD_OUTPUT_DIR)/sym_key.a -+ADDITIONAL_KERNEL_LIBS += common/crypto/sym/$(ICP_BUILD_OUTPUT_DIR)/*.o \ -+ common/crypto/sym/qat/$(ICP_BUILD_OUTPUT_DIR)/*.o \ -+ common/crypto/sym/key/$(ICP_BUILD_OUTPUT_DIR)/*.o - ifeq ($(ICP_OS_LEVEL), user_space) - ADDITIONAL_KERNEL_LIBS += common/crypto/asym/pke_common/$(ICP_BUILD_OUTPUT_DIR)/pke_common.a \ - common/crypto/asym/diffie_hellman/$(ICP_BUILD_OUTPUT_DIR)/diffie_hellman.a \ -@@ -128,14 +128,14 @@ ADDITIONAL_KERNEL_LIBS += common/crypto/asym/pke_common/$(ICP_BUILD_OUTPUT_DIR)/ - common/crypto/asym/large_number/$(ICP_BUILD_OUTPUT_DIR)/ln.a \ - common/crypto/asym/ecc/$(ICP_BUILD_OUTPUT_DIR)/elliptic_curve.a - else --ADDITIONAL_KERNEL_LIBS += common/stubs/$(ICP_BUILD_OUTPUT_DIR)/lib_lac_stubs.a -+ADDITIONAL_KERNEL_LIBS += common/stubs/$(ICP_BUILD_OUTPUT_DIR)/*.o - endif - else - ifeq ($(ICP_OS_LEVEL), kernel_space) --ADDITIONAL_KERNEL_LIBS += common/stubs/$(ICP_BUILD_OUTPUT_DIR)/lib_lac_stubs.a -+ADDITIONAL_KERNEL_LIBS += common/stubs/$(ICP_BUILD_OUTPUT_DIR)/*.o - endif - endif --ADDITIONAL_KERNEL_LIBS += common/qat_comms/$(ICP_BUILD_OUTPUT_DIR)/qat_comms.a -+ADDITIONAL_KERNEL_LIBS += common/qat_comms/$(ICP_BUILD_OUTPUT_DIR)/*.o - - ifeq ($(ICP_OS_LEVEL), user_space) - ifdef KPT -@@ -145,8 +145,7 @@ endif - endif - - ifeq ($(ICP_OS_LEVEL), kernel_space) -- ADDITIONAL_OBJECTS = ../build/libs/libadf_kernel.a -- ADDITIONAL_OBJECTS += ../build/libs/libosal.a -+ ADDITIONAL_OBJECTS += ../build/libs/*.o - endif - - ifeq ($(ICP_OS_LEVEL), user_space) diff --git a/recipes-extended/qat/files/qat17_4.7.0-00006-Switch-to-skcipher-API.patch b/recipes-extended/qat/files/qat17_4.7.0-00006-Switch-to-skcipher-API.patch deleted file mode 100644 index aa2f890..0000000 --- a/recipes-extended/qat/files/qat17_4.7.0-00006-Switch-to-skcipher-API.patch +++ /dev/null @@ -1,1158 +0,0 @@ -From d12ae3d48d429e24ad4b0f219a16e09af8da3b1a Mon Sep 17 00:00:00 2001 -From: Yongxin Liu -Date: Thu, 28 Jan 2021 10:02:22 +0000 -Subject: [PATCH] qat: Switch to skcipher API - -The patch is derived from mainline kernel commit 7fe948a52287 -("crypto: qat - switch to skcipher API"). - -Upstream-Status: Inappropriate [Code released in tarball form only] - -Signed-off-by: Yongxin Liu ---- - .../drivers/crypto/qat/qat_common/qat_algs.c | 674 ++++++++++-------- - .../crypto/qat/qat_common/qat_crypto.h | 6 +- - 2 files changed, 394 insertions(+), 286 deletions(-) - -diff --git a/quickassist/qat/drivers/crypto/qat/qat_common/qat_algs.c b/quickassist/qat/drivers/crypto/qat/qat_common/qat_algs.c -index a7961a4..f600ad3 100644 ---- a/quickassist/qat/drivers/crypto/qat/qat_common/qat_algs.c -+++ b/quickassist/qat/drivers/crypto/qat/qat_common/qat_algs.c -@@ -49,6 +49,7 @@ - #include - #include - #include -+#include - #include - #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,11,0)) - #include -@@ -57,6 +58,7 @@ - #include - #endif - #include -+#include - #include - #include - #include -@@ -118,11 +120,16 @@ struct qat_alg_aead_ctx { - struct crypto_shash *hash_tfm; - enum icp_qat_hw_auth_algo qat_hash_alg; - struct qat_crypto_instance *inst; -- char ipad[SHA512_BLOCK_SIZE]; -+ union { -+ struct sha1_state sha1; -+ struct sha256_state sha256; -+ struct sha512_state sha512; -+ }; -+ char ipad[SHA512_BLOCK_SIZE]; /* sufficient for SHA-1/SHA-256 as well */ - char opad[SHA512_BLOCK_SIZE]; - }; - --struct qat_alg_ablkcipher_ctx { -+struct qat_alg_skcipher_ctx { - struct icp_qat_hw_cipher_algo_blk *enc_cd; - struct icp_qat_hw_cipher_algo_blk *dec_cd; - dma_addr_t enc_cd_paddr; -@@ -130,7 +137,7 @@ struct qat_alg_ablkcipher_ctx { - struct icp_qat_fw_la_bulk_req enc_fw_req; - struct icp_qat_fw_la_bulk_req dec_fw_req; - struct qat_crypto_instance *inst; -- struct crypto_tfm *tfm; -+ struct crypto_skcipher *tfm; - }; - - static int qat_get_inter_state_size(enum icp_qat_hw_auth_algo qat_hash_alg) -@@ -154,9 +161,6 @@ static int qat_alg_do_precomputes(struct icp_qat_hw_auth_algo_blk *hash, - unsigned int auth_keylen) - { - SHASH_DESC_ON_STACK(shash, ctx->hash_tfm); -- struct sha1_state sha1; -- struct sha256_state sha256; -- struct sha512_state sha512; - int block_size = crypto_shash_blocksize(ctx->hash_tfm); - int digest_size = crypto_shash_digestsize(ctx->hash_tfm); - __be32 *hash_state_out; -@@ -165,7 +169,6 @@ static int qat_alg_do_precomputes(struct icp_qat_hw_auth_algo_blk *hash, - - memset(ctx->ipad, 0, block_size); - memset(ctx->opad, 0, block_size); -- memset(shash, 0, sizeof(struct shash_desc)); - shash->tfm = ctx->hash_tfm; - - if (auth_keylen > block_size) { -@@ -183,8 +186,8 @@ static int qat_alg_do_precomputes(struct icp_qat_hw_auth_algo_blk *hash, - for (i = 0; i < block_size; i++) { - char *ipad_ptr = ctx->ipad + i; - char *opad_ptr = ctx->opad + i; -- *ipad_ptr ^= 0x36; -- *opad_ptr ^= 0x5C; -+ *ipad_ptr ^= HMAC_IPAD_VALUE; -+ *opad_ptr ^= HMAC_OPAD_VALUE; - } - - if (crypto_shash_init(shash)) -@@ -198,22 +201,22 @@ static int qat_alg_do_precomputes(struct icp_qat_hw_auth_algo_blk *hash, - - switch (ctx->qat_hash_alg) { - case ICP_QAT_HW_AUTH_ALGO_SHA1: -- if (crypto_shash_export(shash, &sha1)) -+ if (crypto_shash_export(shash, &ctx->sha1)) - return -EFAULT; - for (i = 0; i < digest_size >> 2; i++, hash_state_out++) -- *hash_state_out = cpu_to_be32(*(sha1.state + i)); -+ *hash_state_out = cpu_to_be32(ctx->sha1.state[i]); - break; - case ICP_QAT_HW_AUTH_ALGO_SHA256: -- if (crypto_shash_export(shash, &sha256)) -+ if (crypto_shash_export(shash, &ctx->sha256)) - return -EFAULT; - for (i = 0; i < digest_size >> 2; i++, hash_state_out++) -- *hash_state_out = cpu_to_be32(*(sha256.state + i)); -+ *hash_state_out = cpu_to_be32(ctx->sha256.state[i]); - break; - case ICP_QAT_HW_AUTH_ALGO_SHA512: -- if (crypto_shash_export(shash, &sha512)) -+ if (crypto_shash_export(shash, &ctx->sha512)) - return -EFAULT; - for (i = 0; i < digest_size >> 3; i++, hash512_state_out++) -- *hash512_state_out = cpu_to_be64(*(sha512.state + i)); -+ *hash512_state_out = cpu_to_be64(ctx->sha512.state[i]); - break; - default: - return -EFAULT; -@@ -234,22 +237,22 @@ static int qat_alg_do_precomputes(struct icp_qat_hw_auth_algo_blk *hash, - - switch (ctx->qat_hash_alg) { - case ICP_QAT_HW_AUTH_ALGO_SHA1: -- if (crypto_shash_export(shash, &sha1)) -+ if (crypto_shash_export(shash, &ctx->sha1)) - return -EFAULT; - for (i = 0; i < digest_size >> 2; i++, hash_state_out++) -- *hash_state_out = cpu_to_be32(*(sha1.state + i)); -+ *hash_state_out = cpu_to_be32(ctx->sha1.state[i]); - break; - case ICP_QAT_HW_AUTH_ALGO_SHA256: -- if (crypto_shash_export(shash, &sha256)) -+ if (crypto_shash_export(shash, &ctx->sha256)) - return -EFAULT; - for (i = 0; i < digest_size >> 2; i++, hash_state_out++) -- *hash_state_out = cpu_to_be32(*(sha256.state + i)); -+ *hash_state_out = cpu_to_be32(ctx->sha256.state[i]); - break; - case ICP_QAT_HW_AUTH_ALGO_SHA512: -- if (crypto_shash_export(shash, &sha512)) -+ if (crypto_shash_export(shash, &ctx->sha512)) - return -EFAULT; - for (i = 0; i < digest_size >> 3; i++, hash512_state_out++) -- *hash512_state_out = cpu_to_be64(*(sha512.state + i)); -+ *hash512_state_out = cpu_to_be64(ctx->sha512.state[i]); - break; - default: - return -EFAULT; -@@ -259,7 +262,24 @@ static int qat_alg_do_precomputes(struct icp_qat_hw_auth_algo_blk *hash, - return 0; - } - --static void qat_alg_init_common_hdr(struct icp_qat_fw_comn_req_hdr *header) -+static void qat_alg_init_hdr_iv_updt(struct icp_qat_fw_comn_req_hdr *header) -+{ -+ ICP_QAT_FW_LA_CIPH_IV_FLD_FLAG_SET(header->serv_specif_flags, -+ ICP_QAT_FW_CIPH_IV_64BIT_PTR); -+ ICP_QAT_FW_LA_UPDATE_STATE_SET(header->serv_specif_flags, -+ ICP_QAT_FW_LA_UPDATE_STATE); -+} -+ -+static void qat_alg_init_hdr_no_iv_updt(struct icp_qat_fw_comn_req_hdr *header) -+{ -+ ICP_QAT_FW_LA_CIPH_IV_FLD_FLAG_SET(header->serv_specif_flags, -+ ICP_QAT_FW_CIPH_IV_16BYTE_DATA); -+ ICP_QAT_FW_LA_UPDATE_STATE_SET(header->serv_specif_flags, -+ ICP_QAT_FW_LA_NO_UPDATE_STATE); -+} -+ -+static void qat_alg_init_common_hdr(struct icp_qat_fw_comn_req_hdr *header, -+ int aead) - { - header->hdr_flags = - ICP_QAT_FW_COMN_HDR_FLAGS_BUILD(ICP_QAT_FW_COMN_REQ_FLAG_SET); -@@ -269,12 +289,12 @@ static void qat_alg_init_common_hdr(struct icp_qat_fw_comn_req_hdr *header) - QAT_COMN_PTR_TYPE_SGL); - ICP_QAT_FW_LA_PARTIAL_SET(header->serv_specif_flags, - ICP_QAT_FW_LA_PARTIAL_NONE); -- ICP_QAT_FW_LA_CIPH_IV_FLD_FLAG_SET(header->serv_specif_flags, -- ICP_QAT_FW_CIPH_IV_16BYTE_DATA); -+ if (aead) -+ qat_alg_init_hdr_no_iv_updt(header); -+ else -+ qat_alg_init_hdr_iv_updt(header); - ICP_QAT_FW_LA_PROTO_SET(header->serv_specif_flags, - ICP_QAT_FW_LA_NO_PROTO); -- ICP_QAT_FW_LA_UPDATE_STATE_SET(header->serv_specif_flags, -- ICP_QAT_FW_LA_NO_UPDATE_STATE); - } - - static int qat_alg_aead_init_enc_session(struct crypto_aead *aead_tfm, -@@ -309,7 +329,7 @@ static int qat_alg_aead_init_enc_session(struct crypto_aead *aead_tfm, - return -EFAULT; - - /* Request setup */ -- qat_alg_init_common_hdr(header); -+ qat_alg_init_common_hdr(header, 1); - header->service_cmd_id = ICP_QAT_FW_LA_CMD_CIPHER_HASH; - ICP_QAT_FW_LA_DIGEST_IN_BUFFER_SET(header->serv_specif_flags, - ICP_QAT_FW_LA_DIGEST_IN_BUFFER); -@@ -396,7 +416,7 @@ static int qat_alg_aead_init_dec_session(struct crypto_aead *aead_tfm, - return -EFAULT; - - /* Request setup */ -- qat_alg_init_common_hdr(header); -+ qat_alg_init_common_hdr(header, 1); - header->service_cmd_id = ICP_QAT_FW_LA_CMD_HASH_CIPHER; - ICP_QAT_FW_LA_DIGEST_IN_BUFFER_SET(header->serv_specif_flags, - ICP_QAT_FW_LA_DIGEST_IN_BUFFER); -@@ -450,17 +470,17 @@ static int qat_alg_aead_init_dec_session(struct crypto_aead *aead_tfm, - return 0; - } - --static void qat_alg_ablkcipher_init_com(struct qat_alg_ablkcipher_ctx *ctx, -- struct icp_qat_fw_la_bulk_req *req, -- struct icp_qat_hw_cipher_algo_blk *cd, -- const uint8_t *key, unsigned int keylen) -+static void qat_alg_skcipher_init_com(struct qat_alg_skcipher_ctx *ctx, -+ struct icp_qat_fw_la_bulk_req *req, -+ struct icp_qat_hw_cipher_algo_blk *cd, -+ const uint8_t *key, unsigned int keylen) - { - struct icp_qat_fw_comn_req_hdr_cd_pars *cd_pars = &req->cd_pars; - struct icp_qat_fw_comn_req_hdr *header = &req->comn_hdr; - struct icp_qat_fw_cipher_cd_ctrl_hdr *cd_ctrl = (void *)&req->cd_ctrl; - - memcpy(cd->aes.key, key, keylen); -- qat_alg_init_common_hdr(header); -+ qat_alg_init_common_hdr(header, 0); - header->service_cmd_id = ICP_QAT_FW_LA_CMD_CIPHER; - cd_pars->u.s.content_desc_params_sz = - sizeof(struct icp_qat_hw_cipher_algo_blk) >> 3; -@@ -472,28 +492,28 @@ static void qat_alg_ablkcipher_init_com(struct qat_alg_ablkcipher_ctx *ctx, - ICP_QAT_FW_COMN_NEXT_ID_SET(cd_ctrl, ICP_QAT_FW_SLICE_DRAM_WR); - } - --static void qat_alg_ablkcipher_init_enc(struct qat_alg_ablkcipher_ctx *ctx, -- int alg, const uint8_t *key, -- unsigned int keylen, int mode) -+static void qat_alg_skcipher_init_enc(struct qat_alg_skcipher_ctx *ctx, -+ int alg, const uint8_t *key, -+ unsigned int keylen, int mode) - { - struct icp_qat_hw_cipher_algo_blk *enc_cd = ctx->enc_cd; - struct icp_qat_fw_la_bulk_req *req = &ctx->enc_fw_req; - struct icp_qat_fw_comn_req_hdr_cd_pars *cd_pars = &req->cd_pars; - -- qat_alg_ablkcipher_init_com(ctx, req, enc_cd, key, keylen); -+ qat_alg_skcipher_init_com(ctx, req, enc_cd, key, keylen); - cd_pars->u.s.content_desc_addr = ctx->enc_cd_paddr; - enc_cd->aes.cipher_config.val = QAT_AES_HW_CONFIG_ENC(alg, mode); - } - --static void qat_alg_ablkcipher_init_dec(struct qat_alg_ablkcipher_ctx *ctx, -- int alg, const uint8_t *key, -- unsigned int keylen, int mode) -+static void qat_alg_skcipher_init_dec(struct qat_alg_skcipher_ctx *ctx, -+ int alg, const uint8_t *key, -+ unsigned int keylen, int mode) - { - struct icp_qat_hw_cipher_algo_blk *dec_cd = ctx->dec_cd; - struct icp_qat_fw_la_bulk_req *req = &ctx->dec_fw_req; - struct icp_qat_fw_comn_req_hdr_cd_pars *cd_pars = &req->cd_pars; - -- qat_alg_ablkcipher_init_com(ctx, req, dec_cd, key, keylen); -+ qat_alg_skcipher_init_com(ctx, req, dec_cd, key, keylen); - cd_pars->u.s.content_desc_addr = ctx->dec_cd_paddr; - - if (mode != ICP_QAT_HW_CIPHER_CTR_MODE) -@@ -553,86 +573,110 @@ static int qat_alg_aead_init_sessions(struct crypto_aead *tfm, const u8 *key, - if (qat_alg_aead_init_dec_session(tfm, alg, &keys, mode)) - goto error; - -+ memzero_explicit(&keys, sizeof(keys)); - return 0; - bad_key: - crypto_aead_set_flags(tfm, CRYPTO_TFM_RES_BAD_KEY_LEN); -+ memzero_explicit(&keys, sizeof(keys)); - return -EINVAL; - error: -+ memzero_explicit(&keys, sizeof(keys)); - return -EFAULT; - } - --static int qat_alg_ablkcipher_init_sessions(struct qat_alg_ablkcipher_ctx *ctx, -- const uint8_t *key, -- unsigned int keylen, -- int mode) -+static int qat_alg_skcipher_init_sessions(struct qat_alg_skcipher_ctx *ctx, -+ const uint8_t *key, -+ unsigned int keylen, -+ int mode) - { - int alg; - - if (qat_alg_validate_key(keylen, &alg, mode)) - goto bad_key; - -- qat_alg_ablkcipher_init_enc(ctx, alg, key, keylen, mode); -- qat_alg_ablkcipher_init_dec(ctx, alg, key, keylen, mode); -+ qat_alg_skcipher_init_enc(ctx, alg, key, keylen, mode); -+ qat_alg_skcipher_init_dec(ctx, alg, key, keylen, mode); - return 0; - bad_key: -- crypto_tfm_set_flags(ctx->tfm, CRYPTO_TFM_RES_BAD_KEY_LEN); -+ crypto_skcipher_set_flags(ctx->tfm, CRYPTO_TFM_RES_BAD_KEY_LEN); - return -EINVAL; - } - --static int qat_alg_aead_setkey(struct crypto_aead *tfm, const uint8_t *key, -+static int qat_alg_aead_rekey(struct crypto_aead *tfm, const uint8_t *key, -+ unsigned int keylen) -+{ -+ struct qat_alg_aead_ctx *ctx = crypto_aead_ctx(tfm); -+ -+ memset(ctx->enc_cd, 0, sizeof(*ctx->enc_cd)); -+ memset(ctx->dec_cd, 0, sizeof(*ctx->dec_cd)); -+ memset(&ctx->enc_fw_req, 0, sizeof(ctx->enc_fw_req)); -+ memset(&ctx->dec_fw_req, 0, sizeof(ctx->dec_fw_req)); -+ -+ return qat_alg_aead_init_sessions(tfm, key, keylen, -+ ICP_QAT_HW_CIPHER_CBC_MODE); -+} -+ -+static int qat_alg_aead_newkey(struct crypto_aead *tfm, const uint8_t *key, - unsigned int keylen) - { - struct qat_alg_aead_ctx *ctx = crypto_aead_ctx(tfm); -+ struct qat_crypto_instance *inst = NULL; -+ int node = get_current_node(); - struct device *dev; -+ int ret; - -- if (ctx->enc_cd) { -- /* rekeying */ -- dev = &GET_DEV(ctx->inst->accel_dev); -- memset(ctx->enc_cd, 0, sizeof(*ctx->enc_cd)); -- memset(ctx->dec_cd, 0, sizeof(*ctx->dec_cd)); -- memset(&ctx->enc_fw_req, 0, sizeof(ctx->enc_fw_req)); -- memset(&ctx->dec_fw_req, 0, sizeof(ctx->dec_fw_req)); -- } else { -- /* new key */ -- int node = get_current_node(); -- struct qat_crypto_instance *inst = -- qat_crypto_get_instance_node(node); -- if (!inst) { -- return -EINVAL; -- } -- -- dev = &GET_DEV(inst->accel_dev); -- ctx->inst = inst; -- ctx->enc_cd = dma_alloc_coherent(dev, sizeof(*ctx->enc_cd), -- &ctx->enc_cd_paddr, -- GFP_ATOMIC); -- if (!ctx->enc_cd) { -- return -ENOMEM; -- } -- ctx->dec_cd = dma_alloc_coherent(dev, sizeof(*ctx->dec_cd), -- &ctx->dec_cd_paddr, -- GFP_ATOMIC); -- if (!ctx->dec_cd) { -- goto out_free_enc; -- } -+ inst = qat_crypto_get_instance_node(node); -+ if (!inst) -+ return -EINVAL; -+ dev = &GET_DEV(inst->accel_dev); -+ ctx->inst = inst; -+ ctx->enc_cd = dma_alloc_coherent(dev, sizeof(*ctx->enc_cd), -+ &ctx->enc_cd_paddr, -+ GFP_ATOMIC); -+ if (!ctx->enc_cd) { -+ ret = -ENOMEM; -+ goto out_free_inst; - } -- if (qat_alg_aead_init_sessions(tfm, key, keylen, -- ICP_QAT_HW_CIPHER_CBC_MODE)) -+ ctx->dec_cd = dma_alloc_coherent(dev, sizeof(*ctx->dec_cd), -+ &ctx->dec_cd_paddr, -+ GFP_ATOMIC); -+ if (!ctx->dec_cd) { -+ ret = -ENOMEM; -+ goto out_free_enc; -+ } -+ -+ ret = qat_alg_aead_init_sessions(tfm, key, keylen, -+ ICP_QAT_HW_CIPHER_CBC_MODE); -+ if (ret) - goto out_free_all; - - return 0; - - out_free_all: -- memzero_explicit(ctx->dec_cd, sizeof(struct qat_alg_cd)); -+ memset(ctx->dec_cd, 0, sizeof(struct qat_alg_cd)); - dma_free_coherent(dev, sizeof(struct qat_alg_cd), - ctx->dec_cd, ctx->dec_cd_paddr); - ctx->dec_cd = NULL; - out_free_enc: -- memzero_explicit(ctx->enc_cd, sizeof(struct qat_alg_cd)); -+ memset(ctx->enc_cd, 0, sizeof(struct qat_alg_cd)); - dma_free_coherent(dev, sizeof(struct qat_alg_cd), - ctx->enc_cd, ctx->enc_cd_paddr); - ctx->enc_cd = NULL; -- return -ENOMEM; -+out_free_inst: -+ ctx->inst = NULL; -+ qat_crypto_put_instance(inst); -+ return ret; -+} -+ -+static int qat_alg_aead_setkey(struct crypto_aead *tfm, const uint8_t *key, -+ unsigned int keylen) -+{ -+ struct qat_alg_aead_ctx *ctx = crypto_aead_ctx(tfm); -+ -+ if (ctx->enc_cd) -+ return qat_alg_aead_rekey(tfm, key, keylen); -+ else -+ return qat_alg_aead_newkey(tfm, key, keylen); - } - - static void qat_alg_free_bufl(struct qat_crypto_instance *inst, -@@ -680,8 +724,7 @@ static int qat_alg_sgl_to_bufl(struct qat_crypto_instance *inst, - dma_addr_t blp; - dma_addr_t bloutp = 0; - struct scatterlist *sg; -- size_t sz_out, sz = sizeof(struct qat_alg_buf_list) + -- ((1 + n) * sizeof(struct qat_alg_buf)); -+ size_t sz_out, sz = struct_size(bufl, bufers, n + 1); - - if (unlikely(!n)) - return -EINVAL; -@@ -693,7 +736,7 @@ static int qat_alg_sgl_to_bufl(struct qat_crypto_instance *inst, - - blp = dma_map_single(dev, bufl, sz, DMA_TO_DEVICE); - if (unlikely(dma_mapping_error(dev, blp))) -- goto err; -+ goto err_in; - - for_each_sg(sgl, sg, n, i) { - int y = sg_nctr; -@@ -706,7 +749,7 @@ static int qat_alg_sgl_to_bufl(struct qat_crypto_instance *inst, - DMA_BIDIRECTIONAL); - bufl->bufers[y].len = sg->length; - if (unlikely(dma_mapping_error(dev, bufl->bufers[y].addr))) -- goto err; -+ goto err_in; - sg_nctr++; - } - bufl->num_bufs = sg_nctr; -@@ -718,16 +761,15 @@ static int qat_alg_sgl_to_bufl(struct qat_crypto_instance *inst, - struct qat_alg_buf *bufers; - - n = sg_nents(sglout); -- sz_out = sizeof(struct qat_alg_buf_list) + -- ((1 + n) * sizeof(struct qat_alg_buf)); -+ sz_out = struct_size(buflout, bufers, n + 1); - sg_nctr = 0; - buflout = kzalloc_node(sz_out, GFP_ATOMIC, - dev_to_node(&GET_DEV(inst->accel_dev))); - if (unlikely(!buflout)) -- goto err; -+ goto err_in; - bloutp = dma_map_single(dev, buflout, sz_out, DMA_TO_DEVICE); - if (unlikely(dma_mapping_error(dev, bloutp))) -- goto err; -+ goto err_out; - bufers = buflout->bufers; - for_each_sg(sglout, sg, n, i) { - int y = sg_nctr; -@@ -739,7 +781,7 @@ static int qat_alg_sgl_to_bufl(struct qat_crypto_instance *inst, - sg->length, - DMA_BIDIRECTIONAL); - if (unlikely(dma_mapping_error(dev, bufers[y].addr))) -- goto err; -+ goto err_out; - bufers[y].len = sg->length; - sg_nctr++; - } -@@ -754,8 +796,20 @@ static int qat_alg_sgl_to_bufl(struct qat_crypto_instance *inst, - qat_req->buf.sz_out = 0; - } - return 0; --err: -- dev_err(dev, "Failed to map buf for dma\n"); -+ -+err_out: -+ n = sg_nents(sglout); -+ for (i = 0; i < n; i++) -+ if (!dma_mapping_error(dev, buflout->bufers[i].addr)) -+ dma_unmap_single(dev, buflout->bufers[i].addr, -+ buflout->bufers[i].len, -+ DMA_BIDIRECTIONAL); -+ if (!dma_mapping_error(dev, bloutp)) -+ dma_unmap_single(dev, bloutp, sz_out, DMA_TO_DEVICE); -+ kfree(buflout); -+ -+err_in: -+ n = sg_nents(sgl); - for (i = 0; i < n; i++) - if (!dma_mapping_error(dev, bufl->bufers[i].addr)) - dma_unmap_single(dev, bufl->bufers[i].addr, -@@ -765,17 +819,8 @@ err: - if (!dma_mapping_error(dev, blp)) - dma_unmap_single(dev, blp, sz, DMA_TO_DEVICE); - kfree(bufl); -- if (sgl != sglout && buflout) { -- n = sg_nents(sglout); -- for (i = 0; i < n; i++) -- if (!dma_mapping_error(dev, buflout->bufers[i].addr)) -- dma_unmap_single(dev, buflout->bufers[i].addr, -- buflout->bufers[i].len, -- DMA_BIDIRECTIONAL); -- if (!dma_mapping_error(dev, bloutp)) -- dma_unmap_single(dev, bloutp, sz_out, DMA_TO_DEVICE); -- kfree(buflout); -- } -+ -+ dev_err(dev, "Failed to map buf for dma\n"); - return -ENOMEM; - } - -@@ -794,19 +839,25 @@ static void qat_aead_alg_callback(struct icp_qat_fw_la_resp *qat_resp, - areq->base.complete(&areq->base, res); - } - --static void qat_ablkcipher_alg_callback(struct icp_qat_fw_la_resp *qat_resp, -- struct qat_crypto_request *qat_req) -+static void qat_skcipher_alg_callback(struct icp_qat_fw_la_resp *qat_resp, -+ struct qat_crypto_request *qat_req) - { -- struct qat_alg_ablkcipher_ctx *ctx = qat_req->ablkcipher_ctx; -+ struct qat_alg_skcipher_ctx *ctx = qat_req->skcipher_ctx; - struct qat_crypto_instance *inst = ctx->inst; -- struct ablkcipher_request *areq = qat_req->ablkcipher_req; -+ struct skcipher_request *sreq = qat_req->skcipher_req; - uint8_t stat_filed = qat_resp->comn_resp.comn_status; -+ struct device *dev = &GET_DEV(ctx->inst->accel_dev); - int res = 0, qat_res = ICP_QAT_FW_COMN_RESP_CRYPTO_STAT_GET(stat_filed); - - qat_alg_free_bufl(inst, qat_req); - if (unlikely(qat_res != ICP_QAT_FW_COMN_STATUS_FLAG_OK)) - res = -EINVAL; -- areq->base.complete(&areq->base, res); -+ -+ memcpy(sreq->iv, qat_req->iv, AES_BLOCK_SIZE); -+ dma_free_coherent(dev, AES_BLOCK_SIZE, qat_req->iv, -+ qat_req->iv_paddr); -+ -+ sreq->base.complete(&sreq->base, res); - } - - void qat_alg_callback(void *resp) -@@ -828,7 +879,7 @@ static int qat_alg_aead_dec(struct aead_request *areq) - struct icp_qat_fw_la_auth_req_params *auth_param; - struct icp_qat_fw_la_bulk_req *msg; - int digst_size = crypto_aead_authsize(aead_tfm); -- int ret; -+ int ret, ctr = 0; - - ret = qat_alg_sgl_to_bufl(ctx->inst, areq->src, areq->dst, qat_req); - if (unlikely(ret)) -@@ -849,13 +900,14 @@ static int qat_alg_aead_dec(struct aead_request *areq) - auth_param = (void *)((uint8_t *)cipher_param + sizeof(*cipher_param)); - auth_param->auth_off = 0; - auth_param->auth_len = areq->assoclen + cipher_param->cipher_length; -- - do { - ret = adf_send_message(ctx->inst->sym_tx, (uint32_t *)msg); -- if (ret) -- cond_resched(); -- } while (ret == -EAGAIN); -+ } while (ret == -EAGAIN && ctr++ < 10); - -+ if (ret == -EAGAIN) { -+ qat_alg_free_bufl(ctx->inst, qat_req); -+ return -EBUSY; -+ } - return -EINPROGRESS; - } - -@@ -869,7 +921,7 @@ static int qat_alg_aead_enc(struct aead_request *areq) - struct icp_qat_fw_la_auth_req_params *auth_param; - struct icp_qat_fw_la_bulk_req *msg; - uint8_t *iv = areq->iv; -- int ret; -+ int ret, ctr = 0; - - ret = qat_alg_sgl_to_bufl(ctx->inst, areq->src, areq->dst, qat_req); - if (unlikely(ret)) -@@ -895,159 +947,230 @@ static int qat_alg_aead_enc(struct aead_request *areq) - - do { - ret = adf_send_message(ctx->inst->sym_tx, (uint32_t *)msg); -- if (ret) -- cond_resched(); -- } while (ret == -EAGAIN); -+ } while (ret == -EAGAIN && ctr++ < 10); - -+ if (ret == -EAGAIN) { -+ qat_alg_free_bufl(ctx->inst, qat_req); -+ return -EBUSY; -+ } - return -EINPROGRESS; - } - --static int qat_alg_ablkcipher_setkey(struct crypto_ablkcipher *tfm, -- const u8 *key, unsigned int keylen, -- int mode) -+static int qat_alg_skcipher_rekey(struct qat_alg_skcipher_ctx *ctx, -+ const u8 *key, unsigned int keylen, -+ int mode) - { -- struct qat_alg_ablkcipher_ctx *ctx = crypto_ablkcipher_ctx(tfm); -- struct device *dev; -+ memset(ctx->enc_cd, 0, sizeof(*ctx->enc_cd)); -+ memset(ctx->dec_cd, 0, sizeof(*ctx->dec_cd)); -+ memset(&ctx->enc_fw_req, 0, sizeof(ctx->enc_fw_req)); -+ memset(&ctx->dec_fw_req, 0, sizeof(ctx->dec_fw_req)); - -- if (ctx->enc_cd) { -- /* rekeying */ -- dev = &GET_DEV(ctx->inst->accel_dev); -- memset(ctx->enc_cd, 0, sizeof(*ctx->enc_cd)); -- memset(ctx->dec_cd, 0, sizeof(*ctx->dec_cd)); -- memset(&ctx->enc_fw_req, 0, sizeof(ctx->enc_fw_req)); -- memset(&ctx->dec_fw_req, 0, sizeof(ctx->dec_fw_req)); -- } else { -- /* new key */ -- int node = get_current_node(); -- struct qat_crypto_instance *inst = -- qat_crypto_get_instance_node(node); -- if (!inst) -- return -EINVAL; -+ return qat_alg_skcipher_init_sessions(ctx, key, keylen, mode); -+} -+ -+static int qat_alg_skcipher_newkey(struct qat_alg_skcipher_ctx *ctx, -+ const u8 *key, unsigned int keylen, -+ int mode) -+{ -+ struct qat_crypto_instance *inst = NULL; -+ struct device *dev; -+ int node = get_current_node(); -+ int ret; - -- dev = &GET_DEV(inst->accel_dev); -- ctx->inst = inst; -- ctx->enc_cd = dma_alloc_coherent(dev, sizeof(*ctx->enc_cd), -- &ctx->enc_cd_paddr, -- GFP_ATOMIC); -- if (!ctx->enc_cd) -- return -ENOMEM; -- ctx->dec_cd = dma_alloc_coherent(dev, sizeof(*ctx->dec_cd), -- &ctx->dec_cd_paddr, -- GFP_ATOMIC); -- if (!ctx->dec_cd) -- goto out_free_enc; -+ inst = qat_crypto_get_instance_node(node); -+ if (!inst) -+ return -EINVAL; -+ dev = &GET_DEV(inst->accel_dev); -+ ctx->inst = inst; -+ ctx->enc_cd = dma_alloc_coherent(dev, sizeof(*ctx->enc_cd), -+ &ctx->enc_cd_paddr, -+ GFP_ATOMIC); -+ if (!ctx->enc_cd) { -+ ret = -ENOMEM; -+ goto out_free_instance; -+ } -+ ctx->dec_cd = dma_alloc_coherent(dev, sizeof(*ctx->dec_cd), -+ &ctx->dec_cd_paddr, -+ GFP_ATOMIC); -+ if (!ctx->dec_cd) { -+ ret = -ENOMEM; -+ goto out_free_enc; - } -- if (qat_alg_ablkcipher_init_sessions(ctx, key, keylen, mode)) -+ -+ ret = qat_alg_skcipher_init_sessions(ctx, key, keylen, mode); -+ if (ret) - goto out_free_all; - - return 0; - - out_free_all: -- memzero_explicit(ctx->dec_cd, sizeof(*ctx->dec_cd)); -+ memset(ctx->dec_cd, 0, sizeof(*ctx->dec_cd)); - dma_free_coherent(dev, sizeof(*ctx->dec_cd), - ctx->dec_cd, ctx->dec_cd_paddr); - ctx->dec_cd = NULL; - out_free_enc: -- memzero_explicit(ctx->enc_cd, sizeof(*ctx->enc_cd)); -+ memset(ctx->enc_cd, 0, sizeof(*ctx->enc_cd)); - dma_free_coherent(dev, sizeof(*ctx->enc_cd), - ctx->enc_cd, ctx->enc_cd_paddr); - ctx->enc_cd = NULL; -- return -ENOMEM; -+out_free_instance: -+ ctx->inst = NULL; -+ qat_crypto_put_instance(inst); -+ return ret; - } - --static int qat_alg_ablkcipher_cbc_setkey(struct crypto_ablkcipher *tfm, -- const u8 *key, unsigned int keylen) -+static int qat_alg_skcipher_setkey(struct crypto_skcipher *tfm, -+ const u8 *key, unsigned int keylen, -+ int mode) - { -- return qat_alg_ablkcipher_setkey(tfm, key, keylen, -- ICP_QAT_HW_CIPHER_CBC_MODE); -+ struct qat_alg_skcipher_ctx *ctx = crypto_skcipher_ctx(tfm); -+ -+ if (ctx->enc_cd) -+ return qat_alg_skcipher_rekey(ctx, key, keylen, mode); -+ else -+ return qat_alg_skcipher_newkey(ctx, key, keylen, mode); -+} -+ -+static int qat_alg_skcipher_cbc_setkey(struct crypto_skcipher *tfm, -+ const u8 *key, unsigned int keylen) -+{ -+ return qat_alg_skcipher_setkey(tfm, key, keylen, -+ ICP_QAT_HW_CIPHER_CBC_MODE); - } - --static int qat_alg_ablkcipher_ctr_setkey(struct crypto_ablkcipher *tfm, -- const u8 *key, unsigned int keylen) -+static int qat_alg_skcipher_ctr_setkey(struct crypto_skcipher *tfm, -+ const u8 *key, unsigned int keylen) - { -- return qat_alg_ablkcipher_setkey(tfm, key, keylen, -- ICP_QAT_HW_CIPHER_CTR_MODE); -+ return qat_alg_skcipher_setkey(tfm, key, keylen, -+ ICP_QAT_HW_CIPHER_CTR_MODE); - } - --static int qat_alg_ablkcipher_xts_setkey(struct crypto_ablkcipher *tfm, -- const u8 *key, unsigned int keylen) -+static int qat_alg_skcipher_xts_setkey(struct crypto_skcipher *tfm, -+ const u8 *key, unsigned int keylen) - { -- return qat_alg_ablkcipher_setkey(tfm, key, keylen, -- ICP_QAT_HW_CIPHER_XTS_MODE); -+ return qat_alg_skcipher_setkey(tfm, key, keylen, -+ ICP_QAT_HW_CIPHER_XTS_MODE); - } - --static int qat_alg_ablkcipher_encrypt(struct ablkcipher_request *req) -+static int qat_alg_skcipher_encrypt(struct skcipher_request *req) - { -- struct crypto_ablkcipher *atfm = crypto_ablkcipher_reqtfm(req); -- struct crypto_tfm *tfm = crypto_ablkcipher_tfm(atfm); -- struct qat_alg_ablkcipher_ctx *ctx = crypto_tfm_ctx(tfm); -- struct qat_crypto_request *qat_req = ablkcipher_request_ctx(req); -+ struct crypto_skcipher *stfm = crypto_skcipher_reqtfm(req); -+ struct crypto_tfm *tfm = crypto_skcipher_tfm(stfm); -+ struct qat_alg_skcipher_ctx *ctx = crypto_tfm_ctx(tfm); -+ struct qat_crypto_request *qat_req = skcipher_request_ctx(req); - struct icp_qat_fw_la_cipher_req_params *cipher_param; - struct icp_qat_fw_la_bulk_req *msg; -- int ret; -+ struct device *dev = &GET_DEV(ctx->inst->accel_dev); -+ int ret, ctr = 0; -+ -+ if (req->cryptlen == 0) -+ return 0; -+ -+ qat_req->iv = dma_alloc_coherent(dev, AES_BLOCK_SIZE, -+ &qat_req->iv_paddr, GFP_ATOMIC); -+ if (!qat_req->iv) -+ return -ENOMEM; - - ret = qat_alg_sgl_to_bufl(ctx->inst, req->src, req->dst, qat_req); -- if (unlikely(ret)) -+ if (unlikely(ret)) { -+ dma_free_coherent(dev, AES_BLOCK_SIZE, qat_req->iv, -+ qat_req->iv_paddr); - return ret; -+ } - - msg = &qat_req->req; - *msg = ctx->enc_fw_req; -- qat_req->ablkcipher_ctx = ctx; -- qat_req->ablkcipher_req = req; -- qat_req->cb = qat_ablkcipher_alg_callback; -+ qat_req->skcipher_ctx = ctx; -+ qat_req->skcipher_req = req; -+ qat_req->cb = qat_skcipher_alg_callback; - qat_req->req.comn_mid.opaque_data = (uint64_t)(__force long)qat_req; - qat_req->req.comn_mid.src_data_addr = qat_req->buf.blp; - qat_req->req.comn_mid.dest_data_addr = qat_req->buf.bloutp; - cipher_param = (void *)&qat_req->req.serv_specif_rqpars; -- cipher_param->cipher_length = req->nbytes; -+ cipher_param->cipher_length = req->cryptlen; - cipher_param->cipher_offset = 0; -- memcpy(cipher_param->u.cipher_IV_array, req->info, AES_BLOCK_SIZE); -- -+ cipher_param->u.s.cipher_IV_ptr = qat_req->iv_paddr; -+ memcpy(qat_req->iv, req->iv, AES_BLOCK_SIZE); - do { - ret = adf_send_message(ctx->inst->sym_tx, (uint32_t *)msg); -- if (ret) -- cond_resched(); -- } while (ret == -EAGAIN); -+ } while (ret == -EAGAIN && ctr++ < 10); - -+ if (ret == -EAGAIN) { -+ qat_alg_free_bufl(ctx->inst, qat_req); -+ dma_free_coherent(dev, AES_BLOCK_SIZE, qat_req->iv, -+ qat_req->iv_paddr); -+ return -EBUSY; -+ } - return -EINPROGRESS; - } - --static int qat_alg_ablkcipher_decrypt(struct ablkcipher_request *req) -+static int qat_alg_skcipher_blk_encrypt(struct skcipher_request *req) -+{ -+ if (req->cryptlen % AES_BLOCK_SIZE != 0) -+ return -EINVAL; -+ -+ return qat_alg_skcipher_encrypt(req); -+} -+ -+static int qat_alg_skcipher_decrypt(struct skcipher_request *req) - { -- struct crypto_ablkcipher *atfm = crypto_ablkcipher_reqtfm(req); -- struct crypto_tfm *tfm = crypto_ablkcipher_tfm(atfm); -- struct qat_alg_ablkcipher_ctx *ctx = crypto_tfm_ctx(tfm); -- struct qat_crypto_request *qat_req = ablkcipher_request_ctx(req); -+ struct crypto_skcipher *stfm = crypto_skcipher_reqtfm(req); -+ struct crypto_tfm *tfm = crypto_skcipher_tfm(stfm); -+ struct qat_alg_skcipher_ctx *ctx = crypto_tfm_ctx(tfm); -+ struct qat_crypto_request *qat_req = skcipher_request_ctx(req); - struct icp_qat_fw_la_cipher_req_params *cipher_param; - struct icp_qat_fw_la_bulk_req *msg; -- int ret; -+ struct device *dev = &GET_DEV(ctx->inst->accel_dev); -+ int ret, ctr = 0; -+ -+ if (req->cryptlen == 0) -+ return 0; -+ -+ qat_req->iv = dma_alloc_coherent(dev, AES_BLOCK_SIZE, -+ &qat_req->iv_paddr, GFP_ATOMIC); -+ if (!qat_req->iv) -+ return -ENOMEM; - - ret = qat_alg_sgl_to_bufl(ctx->inst, req->src, req->dst, qat_req); -- if (unlikely(ret)) -+ if (unlikely(ret)) { -+ dma_free_coherent(dev, AES_BLOCK_SIZE, qat_req->iv, -+ qat_req->iv_paddr); - return ret; -+ } - - msg = &qat_req->req; - *msg = ctx->dec_fw_req; -- qat_req->ablkcipher_ctx = ctx; -- qat_req->ablkcipher_req = req; -- qat_req->cb = qat_ablkcipher_alg_callback; -+ qat_req->skcipher_ctx = ctx; -+ qat_req->skcipher_req = req; -+ qat_req->cb = qat_skcipher_alg_callback; - qat_req->req.comn_mid.opaque_data = (uint64_t)(__force long)qat_req; - qat_req->req.comn_mid.src_data_addr = qat_req->buf.blp; - qat_req->req.comn_mid.dest_data_addr = qat_req->buf.bloutp; - cipher_param = (void *)&qat_req->req.serv_specif_rqpars; -- cipher_param->cipher_length = req->nbytes; -+ cipher_param->cipher_length = req->cryptlen; - cipher_param->cipher_offset = 0; -- memcpy(cipher_param->u.cipher_IV_array, req->info, AES_BLOCK_SIZE); -- -+ cipher_param->u.s.cipher_IV_ptr = qat_req->iv_paddr; -+ memcpy(qat_req->iv, req->iv, AES_BLOCK_SIZE); - do { - ret = adf_send_message(ctx->inst->sym_tx, (uint32_t *)msg); -- if (ret) -- cond_resched(); -- } while (ret == -EAGAIN); -+ } while (ret == -EAGAIN && ctr++ < 10); - -+ if (ret == -EAGAIN) { -+ qat_alg_free_bufl(ctx->inst, qat_req); -+ dma_free_coherent(dev, AES_BLOCK_SIZE, qat_req->iv, -+ qat_req->iv_paddr); -+ return -EBUSY; -+ } - return -EINPROGRESS; - } - -+static int qat_alg_skcipher_blk_decrypt(struct skcipher_request *req) -+{ -+ if (req->cryptlen % AES_BLOCK_SIZE != 0) -+ return -EINVAL; -+ -+ return qat_alg_skcipher_decrypt(req); -+} - static int qat_alg_aead_init(struct crypto_aead *tfm, - enum icp_qat_hw_auth_algo hash, - const char *hash_name) -@@ -1090,30 +1213,30 @@ static void qat_alg_aead_exit(struct crypto_aead *tfm) - - dev = &GET_DEV(inst->accel_dev); - if (ctx->enc_cd) { -- memzero_explicit(ctx->enc_cd, sizeof(struct qat_alg_cd)); -+ memset(ctx->enc_cd, 0, sizeof(struct qat_alg_cd)); - dma_free_coherent(dev, sizeof(struct qat_alg_cd), - ctx->enc_cd, ctx->enc_cd_paddr); - } - if (ctx->dec_cd) { -- memzero_explicit(ctx->dec_cd, sizeof(struct qat_alg_cd)); -+ memset(ctx->dec_cd, 0, sizeof(struct qat_alg_cd)); - dma_free_coherent(dev, sizeof(struct qat_alg_cd), - ctx->dec_cd, ctx->dec_cd_paddr); - } - qat_crypto_put_instance(inst); - } - --static int qat_alg_ablkcipher_init(struct crypto_tfm *tfm) -+static int qat_alg_skcipher_init_tfm(struct crypto_skcipher *tfm) - { -- struct qat_alg_ablkcipher_ctx *ctx = crypto_tfm_ctx(tfm); -+ struct qat_alg_skcipher_ctx *ctx = crypto_skcipher_ctx(tfm); - -- tfm->crt_ablkcipher.reqsize = sizeof(struct qat_crypto_request); -+ crypto_skcipher_set_reqsize(tfm, sizeof(struct qat_crypto_request)); - ctx->tfm = tfm; - return 0; - } - --static void qat_alg_ablkcipher_exit(struct crypto_tfm *tfm) -+static void qat_alg_skcipher_exit_tfm(struct crypto_skcipher *tfm) - { -- struct qat_alg_ablkcipher_ctx *ctx = crypto_tfm_ctx(tfm); -+ struct qat_alg_skcipher_ctx *ctx = crypto_skcipher_ctx(tfm); - struct qat_crypto_instance *inst = ctx->inst; - struct device *dev; - -@@ -1122,15 +1245,15 @@ static void qat_alg_ablkcipher_exit(struct crypto_tfm *tfm) - - dev = &GET_DEV(inst->accel_dev); - if (ctx->enc_cd) { -- memzero_explicit(ctx->enc_cd, -- sizeof(struct icp_qat_hw_cipher_algo_blk)); -+ memset(ctx->enc_cd, 0, -+ sizeof(struct icp_qat_hw_cipher_algo_blk)); - dma_free_coherent(dev, - sizeof(struct icp_qat_hw_cipher_algo_blk), - ctx->enc_cd, ctx->enc_cd_paddr); - } - if (ctx->dec_cd) { -- memzero_explicit(ctx->dec_cd, -- sizeof(struct icp_qat_hw_cipher_algo_blk)); -+ memset(ctx->dec_cd, 0, -+ sizeof(struct icp_qat_hw_cipher_algo_blk)); - dma_free_coherent(dev, - sizeof(struct icp_qat_hw_cipher_algo_blk), - ctx->dec_cd, ctx->dec_cd_paddr); -@@ -1192,92 +1315,75 @@ static struct aead_alg qat_aeads[] = { { - .maxauthsize = SHA512_DIGEST_SIZE, - } }; - --static struct crypto_alg qat_algs[] = { { -- .cra_name = "cbc(aes)", -- .cra_driver_name = "qat_aes_cbc", -- .cra_priority = 4001, -- .cra_flags = CRYPTO_ALG_TYPE_ABLKCIPHER | CRYPTO_ALG_ASYNC, -- .cra_blocksize = AES_BLOCK_SIZE, -- .cra_ctxsize = sizeof(struct qat_alg_ablkcipher_ctx), -- .cra_alignmask = 0, -- .cra_type = &crypto_ablkcipher_type, -- .cra_module = THIS_MODULE, -- .cra_init = qat_alg_ablkcipher_init, -- .cra_exit = qat_alg_ablkcipher_exit, -- .cra_u = { -- .ablkcipher = { -- .setkey = qat_alg_ablkcipher_cbc_setkey, -- .decrypt = qat_alg_ablkcipher_decrypt, -- .encrypt = qat_alg_ablkcipher_encrypt, -- .min_keysize = AES_MIN_KEY_SIZE, -- .max_keysize = AES_MAX_KEY_SIZE, -- .ivsize = AES_BLOCK_SIZE, -- }, -- }, -+static struct skcipher_alg qat_skciphers[] = { { -+ .base.cra_name = "cbc(aes)", -+ .base.cra_driver_name = "qat_aes_cbc", -+ .base.cra_priority = 4001, -+ .base.cra_flags = CRYPTO_ALG_ASYNC, -+ .base.cra_blocksize = AES_BLOCK_SIZE, -+ .base.cra_ctxsize = sizeof(struct qat_alg_skcipher_ctx), -+ .base.cra_alignmask = 0, -+ .base.cra_module = THIS_MODULE, -+ -+ .init = qat_alg_skcipher_init_tfm, -+ .exit = qat_alg_skcipher_exit_tfm, -+ .setkey = qat_alg_skcipher_cbc_setkey, -+ .decrypt = qat_alg_skcipher_blk_decrypt, -+ .encrypt = qat_alg_skcipher_blk_encrypt, -+ .min_keysize = AES_MIN_KEY_SIZE, -+ .max_keysize = AES_MAX_KEY_SIZE, -+ .ivsize = AES_BLOCK_SIZE, - }, { -- .cra_name = "ctr(aes)", -- .cra_driver_name = "qat_aes_ctr", -- .cra_priority = 4001, -- .cra_flags = CRYPTO_ALG_TYPE_ABLKCIPHER | CRYPTO_ALG_ASYNC, -- .cra_blocksize = AES_BLOCK_SIZE, -- .cra_ctxsize = sizeof(struct qat_alg_ablkcipher_ctx), -- .cra_alignmask = 0, -- .cra_type = &crypto_ablkcipher_type, -- .cra_module = THIS_MODULE, -- .cra_init = qat_alg_ablkcipher_init, -- .cra_exit = qat_alg_ablkcipher_exit, -- .cra_u = { -- .ablkcipher = { -- .setkey = qat_alg_ablkcipher_ctr_setkey, -- .decrypt = qat_alg_ablkcipher_decrypt, -- .encrypt = qat_alg_ablkcipher_encrypt, -- .min_keysize = AES_MIN_KEY_SIZE, -- .max_keysize = AES_MAX_KEY_SIZE, -- .ivsize = AES_BLOCK_SIZE, -- }, -- }, -+ .base.cra_name = "ctr(aes)", -+ .base.cra_driver_name = "qat_aes_ctr", -+ .base.cra_priority = 4001, -+ .base.cra_flags = CRYPTO_ALG_ASYNC, -+ .base.cra_blocksize = 1, -+ .base.cra_ctxsize = sizeof(struct qat_alg_skcipher_ctx), -+ .base.cra_alignmask = 0, -+ .base.cra_module = THIS_MODULE, -+ -+ .init = qat_alg_skcipher_init_tfm, -+ .exit = qat_alg_skcipher_exit_tfm, -+ .setkey = qat_alg_skcipher_ctr_setkey, -+ .decrypt = qat_alg_skcipher_decrypt, -+ .encrypt = qat_alg_skcipher_encrypt, -+ .min_keysize = AES_MIN_KEY_SIZE, -+ .max_keysize = AES_MAX_KEY_SIZE, -+ .ivsize = AES_BLOCK_SIZE, - }, { -- .cra_name = "xts(aes)", -- .cra_driver_name = "qat_aes_xts", -- .cra_priority = 4001, -- .cra_flags = CRYPTO_ALG_TYPE_ABLKCIPHER | CRYPTO_ALG_ASYNC, -- .cra_blocksize = AES_BLOCK_SIZE, -- .cra_ctxsize = sizeof(struct qat_alg_ablkcipher_ctx), -- .cra_alignmask = 0, -- .cra_type = &crypto_ablkcipher_type, -- .cra_module = THIS_MODULE, -- .cra_init = qat_alg_ablkcipher_init, -- .cra_exit = qat_alg_ablkcipher_exit, -- .cra_u = { -- .ablkcipher = { -- .setkey = qat_alg_ablkcipher_xts_setkey, -- .decrypt = qat_alg_ablkcipher_decrypt, -- .encrypt = qat_alg_ablkcipher_encrypt, -- .min_keysize = 2 * AES_MIN_KEY_SIZE, -- .max_keysize = 2 * AES_MAX_KEY_SIZE, -- .ivsize = AES_BLOCK_SIZE, -- }, -- }, -+ .base.cra_name = "xts(aes)", -+ .base.cra_driver_name = "qat_aes_xts", -+ .base.cra_priority = 4001, -+ .base.cra_flags = CRYPTO_ALG_ASYNC, -+ .base.cra_blocksize = AES_BLOCK_SIZE, -+ .base.cra_ctxsize = sizeof(struct qat_alg_skcipher_ctx), -+ .base.cra_alignmask = 0, -+ .base.cra_module = THIS_MODULE, -+ -+ .init = qat_alg_skcipher_init_tfm, -+ .exit = qat_alg_skcipher_exit_tfm, -+ .setkey = qat_alg_skcipher_xts_setkey, -+ .decrypt = qat_alg_skcipher_blk_decrypt, -+ .encrypt = qat_alg_skcipher_blk_encrypt, -+ .min_keysize = 2 * AES_MIN_KEY_SIZE, -+ .max_keysize = 2 * AES_MAX_KEY_SIZE, -+ .ivsize = AES_BLOCK_SIZE, - } }; - - int qat_algs_register(void) - { -- int ret = 0, i; -+ int ret = 0; - - mutex_lock(&algs_lock); - if (++active_devs != 1) - goto unlock; - -- for (i = 0; i < ARRAY_SIZE(qat_algs); i++) -- qat_algs[i].cra_flags = CRYPTO_ALG_TYPE_ABLKCIPHER | CRYPTO_ALG_ASYNC; -- -- ret = crypto_register_algs(qat_algs, ARRAY_SIZE(qat_algs)); -+ ret = crypto_register_skciphers(qat_skciphers, -+ ARRAY_SIZE(qat_skciphers)); - if (ret) - goto unlock; - -- for (i = 0; i < ARRAY_SIZE(qat_aeads); i++) -- qat_aeads[i].base.cra_flags = CRYPTO_ALG_ASYNC; -- - ret = crypto_register_aeads(qat_aeads, ARRAY_SIZE(qat_aeads)); - if (ret) - goto unreg_algs; -@@ -1287,7 +1393,7 @@ unlock: - return ret; - - unreg_algs: -- crypto_unregister_algs(qat_algs, ARRAY_SIZE(qat_algs)); -+ crypto_unregister_skciphers(qat_skciphers, ARRAY_SIZE(qat_skciphers)); - goto unlock; - } - -@@ -1298,7 +1404,7 @@ void qat_algs_unregister(void) - goto unlock; - - crypto_unregister_aeads(qat_aeads, ARRAY_SIZE(qat_aeads)); -- crypto_unregister_algs(qat_algs, ARRAY_SIZE(qat_algs)); -+ crypto_unregister_skciphers(qat_skciphers, ARRAY_SIZE(qat_skciphers)); - - unlock: - mutex_unlock(&algs_lock); -diff --git a/quickassist/qat/drivers/crypto/qat/qat_common/qat_crypto.h b/quickassist/qat/drivers/crypto/qat/qat_common/qat_crypto.h -index dc0273f..300bb91 100644 ---- a/quickassist/qat/drivers/crypto/qat/qat_common/qat_crypto.h -+++ b/quickassist/qat/drivers/crypto/qat/qat_common/qat_crypto.h -@@ -79,15 +79,17 @@ struct qat_crypto_request { - struct icp_qat_fw_la_bulk_req req; - union { - struct qat_alg_aead_ctx *aead_ctx; -- struct qat_alg_ablkcipher_ctx *ablkcipher_ctx; -+ struct qat_alg_skcipher_ctx *skcipher_ctx; - }; - union { - struct aead_request *aead_req; -- struct ablkcipher_request *ablkcipher_req; -+ struct skcipher_request *skcipher_req; - }; - struct qat_crypto_request_buffs buf; - void (*cb)(struct icp_qat_fw_la_resp *resp, - struct qat_crypto_request *req); -+ void *iv; -+ dma_addr_t iv_paddr; - }; - - #endif --- -2.29.2 - diff --git a/recipes-extended/qat/files/qat17_4.7.0-00006-crypto-qat-Silence-smp_processor_id-warning.patch b/recipes-extended/qat/files/qat17_4.7.0-00006-crypto-qat-Silence-smp_processor_id-warning.patch deleted file mode 100644 index 262651f..0000000 --- a/recipes-extended/qat/files/qat17_4.7.0-00006-crypto-qat-Silence-smp_processor_id-warning.patch +++ /dev/null @@ -1,72 +0,0 @@ -From 21b67ec634271aafd73cffb3e73c0ba494dce3cd Mon Sep 17 00:00:00 2001 -From: Alexander Sverdlin -Date: Tue, 23 Jul 2019 07:24:01 +0000 -Subject: [PATCH] crypto: qat - Silence smp_processor_id() warning - -It seems that smp_processor_id() is only used for a best-effort -load-balancing, refer to qat_crypto_get_instance_node(). It's not feasible -to disable preemption for the duration of the crypto requests. Therefore, -just silence the warning. This commit is similar to e7a9b05ca4 -("crypto: cavium - Fix smp_processor_id() warnings"). - -Silences the following splat: -BUG: using smp_processor_id() in preemptible [00000000] code: cryptomgr_test/2904 -caller is qat_alg_ablkcipher_setkey+0x300/0x4a0 [intel_qat] -CPU: 1 PID: 2904 Comm: cryptomgr_test Tainted: P O 4.14.69 #1 -... -Call Trace: - dump_stack+0x5f/0x86 - check_preemption_disabled+0xd3/0xe0 - qat_alg_ablkcipher_setkey+0x300/0x4a0 [intel_qat] - skcipher_setkey_ablkcipher+0x2b/0x40 - __test_skcipher+0x1f3/0xb20 - ? cpumask_next_and+0x26/0x40 - ? find_busiest_group+0x10e/0x9d0 - ? preempt_count_add+0x49/0xa0 - ? try_module_get+0x61/0xf0 - ? crypto_mod_get+0x15/0x30 - ? __kmalloc+0x1df/0x1f0 - ? __crypto_alloc_tfm+0x116/0x180 - ? crypto_skcipher_init_tfm+0xa6/0x180 - ? crypto_create_tfm+0x4b/0xf0 - test_skcipher+0x21/0xa0 - alg_test_skcipher+0x3f/0xa0 - alg_test.part.6+0x126/0x2a0 - ? finish_task_switch+0x21b/0x260 - ? __schedule+0x1e9/0x800 - ? __wake_up_common+0x8d/0x140 - cryptomgr_test+0x40/0x50 - kthread+0xff/0x130 - ? cryptomgr_notify+0x540/0x540 - ? kthread_create_on_node+0x70/0x70 - ret_from_fork+0x24/0x50 - -Fixes: ed8ccaef52 ("crypto: qat - Add support for SRIOV") -Cc: stable@vger.kernel.org -Signed-off-by: Alexander Sverdlin -Signed-off-by: Herbert Xu - -Upstream-Status: Backport -[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1b82feb6c5e1996513d0fb0bbb475417088b4954] - -Signed-off-by: Yongxin Liu ---- - quickassist/qat/drivers/crypto/qat/qat_common/adf_common_drv.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/quickassist/qat/drivers/crypto/qat/qat_common/adf_common_drv.h b/quickassist/qat/drivers/crypto/qat/qat_common/adf_common_drv.h -index 08e3519..87dd5f1 100644 ---- a/quickassist/qat/drivers/crypto/qat/qat_common/adf_common_drv.h -+++ b/quickassist/qat/drivers/crypto/qat/qat_common/adf_common_drv.h -@@ -100,7 +100,7 @@ struct service_hndl { - - static inline int get_current_node(void) - { -- return topology_physical_package_id(smp_processor_id()); -+ return topology_physical_package_id(raw_smp_processor_id()); - } - - int adf_service_register(struct service_hndl *service); --- -2.14.4 - diff --git a/recipes-extended/qat/files/qat17_4.7.0-00006-crypto-qat-adf_aer-Remove-pci_cleanup_aer_uncorrect_.patch b/recipes-extended/qat/files/qat17_4.7.0-00006-crypto-qat-adf_aer-Remove-pci_cleanup_aer_uncorrect_.patch deleted file mode 100644 index dc8a53d..0000000 --- a/recipes-extended/qat/files/qat17_4.7.0-00006-crypto-qat-adf_aer-Remove-pci_cleanup_aer_uncorrect_.patch +++ /dev/null @@ -1,32 +0,0 @@ -From db44bce60b322754e6a8b96d93218135db00b46a Mon Sep 17 00:00:00 2001 -From: Yongxin Liu -Date: Sun, 31 May 2020 10:56:27 +0800 -Subject: [PATCH] crypto: qat/adf_aer - Remove - pci_cleanup_aer_uncorrect_error_status() - -In kernel upstream commit 62b36c3ea664 ("PCI/AER: Remove -pci_cleanup_aer_uncorrect_error_status() calls"), AER interfaces -to clear error status registers were removed from device dirver. - -Upstream-Status: Inappropriate [Code released in tarball form only] - -Signed-off-by: Yongxin Liu ---- - quickassist/qat/drivers/crypto/qat/qat_common/adf_aer.c | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/quickassist/qat/drivers/crypto/qat/qat_common/adf_aer.c b/quickassist/qat/drivers/crypto/qat/qat_common/adf_aer.c -index 5e98b70..3935d77 100644 ---- a/quickassist/qat/drivers/crypto/qat/qat_common/adf_aer.c -+++ b/quickassist/qat/drivers/crypto/qat/qat_common/adf_aer.c -@@ -281,7 +281,6 @@ static pci_ers_result_t adf_slot_reset(struct pci_dev *pdev) - pr_err("QAT: Can't find acceleration device\n"); - return PCI_ERS_RESULT_DISCONNECT; - } -- pci_cleanup_aer_uncorrect_error_status(pdev); - if (adf_dev_aer_schedule_reset(accel_dev, ADF_DEV_RESET_SYNC)) - return PCI_ERS_RESULT_DISCONNECT; - --- -2.14.4 - diff --git a/recipes-extended/qat/files/qat17_4.7.0-00006-make-it-compatible-with-kernel-5.6.patch b/recipes-extended/qat/files/qat17_4.7.0-00006-make-it-compatible-with-kernel-5.6.patch deleted file mode 100644 index 0851724..0000000 --- a/recipes-extended/qat/files/qat17_4.7.0-00006-make-it-compatible-with-kernel-5.6.patch +++ /dev/null @@ -1,96 +0,0 @@ -From 75fe2382f42ac42333a28445bb54132afd9a27a1 Mon Sep 17 00:00:00 2001 -From: Yongxin Liu -Date: Tue, 31 Mar 2020 19:44:25 +0000 -Subject: [PATCH] qat17: make it compatible with kernel 5.6 - -1) In kernel commit c766d1472c70 ("y2038: hide timeval/timespec/itimerval -/itimerspec types"), timespec was hiden, so change timespec to timespec64. - -2) CRYPTO_TFM_RES_BAD_KEY_LEN was removed in kernel commit 674f368a952c -("crypto: remove CRYPTO_TFM_RES_BAD_KEY_LEN"). Add it back, since qat driver -needs it. - -Upstream-Status: Inappropriate [Code released in tarball form only] - -Signed-off-by: Yongxin Liu ---- - .../drivers/crypto/qat/qat_common/adf_clock.c | 18 +++++++++--------- - .../drivers/crypto/qat/qat_common/qat_algs.c | 2 ++ - 2 files changed, 11 insertions(+), 9 deletions(-) - -diff --git a/quickassist/qat/drivers/crypto/qat/qat_common/adf_clock.c b/quickassist/qat/drivers/crypto/qat/qat_common/adf_clock.c -index 8785f67..be3d9b8 100644 ---- a/quickassist/qat/drivers/crypto/qat/qat_common/adf_clock.c -+++ b/quickassist/qat/drivers/crypto/qat/qat_common/adf_clock.c -@@ -113,7 +113,7 @@ int adf_clock_debugfs_add(struct adf_accel_dev *accel_dev) - #endif - EXPORT_SYMBOL_GPL(adf_clock_debugfs_add); - --static inline s64 timespec_to_us(const struct timespec *ts) -+static inline s64 timespec_to_us(const struct timespec64 *ts) - { - return ((s64)ts->tv_sec * USEC_PER_SEC + - (ts->tv_nsec + NSEC_PER_USEC / 2) / NSEC_PER_USEC); -@@ -129,10 +129,10 @@ static inline s64 timespec_to_us(const struct timespec *ts) - static int measure_clock(struct adf_accel_dev *accel_dev, - u32 *frequency) - { -- struct timespec ts1; -- struct timespec ts2; -- struct timespec ts3; -- struct timespec ts4; -+ struct timespec64 ts1; -+ struct timespec64 ts2; -+ struct timespec64 ts3; -+ struct timespec64 ts4; - u64 delta_us = 0; - u64 timestamp1 = 0; - u64 timestamp2 = 0; -@@ -143,13 +143,13 @@ static int measure_clock(struct adf_accel_dev *accel_dev, - return -EIO; - - do { -- getnstimeofday(&ts1); -+ ktime_get_real_ts64(&ts1); - if (adf_get_fw_timestamp(accel_dev, ×tamp1)) { - dev_err(&GET_DEV(accel_dev), - "Failed to get fw timestamp\n"); - return -EIO; - } -- getnstimeofday(&ts2); -+ ktime_get_real_ts64(&ts2); - delta_us = timespec_to_us(&ts2) - timespec_to_us(&ts1); - } while (delta_us > MEASURE_CLOCK_DELTA_THRESHOLD && - ++tries < MEASURE_CLOCK_RETRIES); -@@ -162,13 +162,13 @@ static int measure_clock(struct adf_accel_dev *accel_dev, - - tries = 0; - do { -- getnstimeofday(&ts3); -+ ktime_get_real_ts64(&ts3); - if (adf_get_fw_timestamp(accel_dev, ×tamp2)) { - dev_err(&GET_DEV(accel_dev), - "Failed to get fw timestamp\n"); - return -EIO; - } -- getnstimeofday(&ts4); -+ ktime_get_real_ts64(&ts4); - delta_us = timespec_to_us(&ts4) - timespec_to_us(&ts3); - } while (delta_us > MEASURE_CLOCK_DELTA_THRESHOLD && - ++tries < MEASURE_CLOCK_RETRIES); -diff --git a/quickassist/qat/drivers/crypto/qat/qat_common/qat_algs.c b/quickassist/qat/drivers/crypto/qat/qat_common/qat_algs.c -index c4edb3c..b509dca 100644 ---- a/quickassist/qat/drivers/crypto/qat/qat_common/qat_algs.c -+++ b/quickassist/qat/drivers/crypto/qat/qat_common/qat_algs.c -@@ -73,6 +73,8 @@ - ICP_QAT_HW_CIPHER_KEY_CONVERT, \ - ICP_QAT_HW_CIPHER_DECRYPT) - -+#define CRYPTO_TFM_RES_BAD_KEY_LEN 0x00200000 -+ - static DEFINE_MUTEX(algs_lock); - static unsigned int active_devs; - --- -2.24.1 - diff --git a/recipes-extended/qat/files/qat17_4.7.0-00006-overwrite-KBUILD_BUILTIN-in-kernel-s-Makefile.patch b/recipes-extended/qat/files/qat17_4.7.0-00006-overwrite-KBUILD_BUILTIN-in-kernel-s-Makefile.patch deleted file mode 100644 index 6af5a6a..0000000 --- a/recipes-extended/qat/files/qat17_4.7.0-00006-overwrite-KBUILD_BUILTIN-in-kernel-s-Makefile.patch +++ /dev/null @@ -1,33 +0,0 @@ -From bf4053e4685bbbf84e6f91d18809dbf4487d03d9 Mon Sep 17 00:00:00 2001 -From: Yongxin Liu -Date: Wed, 25 Nov 2020 07:58:07 +0800 -Subject: [PATCH] qat: overwrite KBUILD_BUILTIN in kernel's Makefile - -Since kernel v5.10-rc1, commit 6212804f2d78 ("kbuild: do not create -built-in objects for external module builds"), QAT static libraries -cannot be created. So add KBUILD_BUILTIN=1 in command line to overwrite -it in kernel Makefile. - -Upstream-Status: Inappropriate [Code released in tarball form only] - -Signed-off-by: Yongxin Liu ---- - quickassist/build_system/build_files/OS/linux_2.6_kernel_space_rules.mk | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/quickassist/build_system/build_files/OS/linux_2.6_kernel_space_rules.mk b/quickassist/build_system/build_files/OS/linux_2.6_kernel_space_rules.mk -index a692b37..302ae19 100644 ---- a/quickassist/build_system/build_files/OS/linux_2.6_kernel_space_rules.mk -+++ b/quickassist/build_system/build_files/OS/linux_2.6_kernel_space_rules.mk -@@ -72,7 +72,7 @@ endif - - $(LIB_STATIC): dirs - @echo 'Creating static library ${LIB_STATIC}'; \ -- $(MAKE) -C $(KERNEL_SOURCE_ROOT)/ M=$(PWD) obj-m=""; \ -+ $(MAKE) -C $(KERNEL_SOURCE_ROOT)/ M=$(PWD) obj-m="" KBUILD_BUILTIN=1; \ - echo 'Copying outputs';\ - test -f lib.a && (ar -t lib.a | xargs ar -rcsD $(LIB_STATIC)); \ - test -f $(LIB_STATIC) && mv -f $(LIB_STATIC) $($(PROG_ACY)_FINAL_OUTPUT_DIR)/$(LIB_STATIC); \ --- -2.14.4 - diff --git a/recipes-extended/qat/files/qat17_4.7.0-00006-qat-include-sha1.h-and-sha2.h-instead-of-sha.h-in-ke.patch b/recipes-extended/qat/files/qat17_4.7.0-00006-qat-include-sha1.h-and-sha2.h-instead-of-sha.h-in-ke.patch deleted file mode 100644 index cf22fa1..0000000 --- a/recipes-extended/qat/files/qat17_4.7.0-00006-qat-include-sha1.h-and-sha2.h-instead-of-sha.h-in-ke.patch +++ /dev/null @@ -1,62 +0,0 @@ -From f27fe17a282206b6d4e8c3ad8d5aac8757f38ab5 Mon Sep 17 00:00:00 2001 -From: Yongxin Liu -Date: Thu, 28 Jan 2021 13:07:59 +0800 -Subject: [PATCH] qat: include sha1.h and sha2.h instead of sha.h in kernel - v5.11 - -In kernel commit a24d22b225ce ("crypto: sha - split sha.h into sha1.h and sha2.h"), - was split into two headers and . - -Upstream-Status: Inappropriate [Code released in tarball form only] - -Signed-off-by: Yongxin Liu ---- - quickassist/qat/drivers/crypto/qat/qat_common/qat_algs.c | 5 +++++ - .../utilities/osal/src/linux/kernel_space/OsalCryptoInterface.c | 7 +++++-- - 2 files changed, 10 insertions(+), 2 deletions(-) - -diff --git a/quickassist/qat/drivers/crypto/qat/qat_common/qat_algs.c b/quickassist/qat/drivers/crypto/qat/qat_common/qat_algs.c -index c4edb3c..a7961a4 100644 ---- a/quickassist/qat/drivers/crypto/qat/qat_common/qat_algs.c -+++ b/quickassist/qat/drivers/crypto/qat/qat_common/qat_algs.c -@@ -50,7 +50,12 @@ - #include - #include - #include -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,11,0)) -+#include -+#include -+#else - #include -+#endif - #include - #include - #include -diff --git a/quickassist/utilities/osal/src/linux/kernel_space/OsalCryptoInterface.c b/quickassist/utilities/osal/src/linux/kernel_space/OsalCryptoInterface.c -index 92ee35b..483aef2 100644 ---- a/quickassist/utilities/osal/src/linux/kernel_space/OsalCryptoInterface.c -+++ b/quickassist/utilities/osal/src/linux/kernel_space/OsalCryptoInterface.c -@@ -66,15 +66,18 @@ - - #include "Osal.h" - #include --#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,8,0)) -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,11,0)) -+#include -+#include -+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5,8,0)) - #include - #else - #include -+#include - #endif - #include - #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29)) - #include --#include - - #define OSAL_MAX_SHASH_DECSIZE 512 - --- -2.14.5 - diff --git a/recipes-extended/qat/files/qat17_4.7.0-00006-qat-replace-linux-cryptohash.h-with-crypto-sha.h-for.patch b/recipes-extended/qat/files/qat17_4.7.0-00006-qat-replace-linux-cryptohash.h-with-crypto-sha.h-for.patch deleted file mode 100644 index 27055ed..0000000 --- a/recipes-extended/qat/files/qat17_4.7.0-00006-qat-replace-linux-cryptohash.h-with-crypto-sha.h-for.patch +++ /dev/null @@ -1,35 +0,0 @@ -From fcc9a80e47f1a9945987e398626074bddfc705c0 Mon Sep 17 00:00:00 2001 -From: Yongxin Liu -Date: Fri, 24 Jul 2020 09:27:48 +0800 -Subject: [PATCH] qat: replace linux/cryptohash.h with crypto/sha.h for kernel - v5.8 - -This is to accommodate kernel commit 228c4f265c6e ("crypto: -lib/sha1 - fold linux/cryptohash.h into crypto/sha.h"). - -Upstream-Status: Inappropriate [Code released in tarball form only] - -Signed-off-by: Yongxin Liu ---- - .../utilities/osal/src/linux/kernel_space/OsalCryptoInterface.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/quickassist/utilities/osal/src/linux/kernel_space/OsalCryptoInterface.c b/quickassist/utilities/osal/src/linux/kernel_space/OsalCryptoInterface.c -index 2d5b233..92ee35b 100644 ---- a/quickassist/utilities/osal/src/linux/kernel_space/OsalCryptoInterface.c -+++ b/quickassist/utilities/osal/src/linux/kernel_space/OsalCryptoInterface.c -@@ -66,7 +66,11 @@ - - #include "Osal.h" - #include -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,8,0)) -+#include -+#else - #include -+#endif - #include - #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29)) - #include --- -2.14.4 - diff --git a/recipes-extended/qat/files/qat17_4.7.0-00006-qat17-use-namespace-CRYPTO_INTERNAL.patch b/recipes-extended/qat/files/qat17_4.7.0-00006-qat17-use-namespace-CRYPTO_INTERNAL.patch deleted file mode 100644 index a4fad3c..0000000 --- a/recipes-extended/qat/files/qat17_4.7.0-00006-qat17-use-namespace-CRYPTO_INTERNAL.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 3b45583612822851a0841cff8381d8795c831a23 Mon Sep 17 00:00:00 2001 -From: Yongxin Liu -Date: Tue, 23 Mar 2021 09:31:25 +0000 -Subject: [PATCH] qat17: use namespace CRYPTO_INTERNAL - -Due to kernel commit 0eb76ba29d16 ("crypto: remove cipher routines from -public crypto API") in v5.12-rc1, some crypto APIs are exported into a new -namespace CRYPTO_INTERNAL. - -Upstream-Status: Inappropriate [Code released in tarball form only] - -Signed-off-by: Yongxin Liu ---- - quickassist/lookaside/access_layer/src/linux/icp_qa_module.c | 3 +++ - .../osal/src/linux/kernel_space/OsalCryptoInterface.c | 5 +++++ - 2 files changed, 8 insertions(+) - -diff --git a/quickassist/lookaside/access_layer/src/linux/icp_qa_module.c b/quickassist/lookaside/access_layer/src/linux/icp_qa_module.c -index c9c6946..a9dd704 100644 ---- a/quickassist/lookaside/access_layer/src/linux/icp_qa_module.c -+++ b/quickassist/lookaside/access_layer/src/linux/icp_qa_module.c -@@ -120,3 +120,6 @@ module_exit(kapi_mod_exit); - MODULE_DESCRIPTION("Intel(R) Quickassist Technology Acceleration Driver"); - MODULE_AUTHOR("Intel"); - MODULE_LICENSE("Dual BSD/GPL"); -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,12,0)) -+MODULE_IMPORT_NS(CRYPTO_INTERNAL); -+#endif -diff --git a/quickassist/utilities/osal/src/linux/kernel_space/OsalCryptoInterface.c b/quickassist/utilities/osal/src/linux/kernel_space/OsalCryptoInterface.c -index 483aef2..a150a86 100644 ---- a/quickassist/utilities/osal/src/linux/kernel_space/OsalCryptoInterface.c -+++ b/quickassist/utilities/osal/src/linux/kernel_space/OsalCryptoInterface.c -@@ -66,6 +66,11 @@ - - #include "Osal.h" - #include -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,12,0)) -+#include -+#include -+MODULE_IMPORT_NS(CRYPTO_INTERNAL); -+#endif - #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,11,0)) - #include - #include --- -2.29.2 - diff --git a/recipes-extended/qat/files/use-CC-for-LD.patch b/recipes-extended/qat/files/use-CC-for-LD.patch deleted file mode 100644 index 36ceedf..0000000 --- a/recipes-extended/qat/files/use-CC-for-LD.patch +++ /dev/null @@ -1,17 +0,0 @@ -Use CC to do the linking, helps in linking with gold or bfd linker - -Upstream-Status: Inappropriate [OE-Specific] -Signed-off-by: Khem Raj -Index: QAT1.6/quickassist/build_system/build_files/OS/linux_2.6.mk -=================================================================== ---- QAT1.6.orig/quickassist/build_system/build_files/OS/linux_2.6.mk -+++ QAT1.6/quickassist/build_system/build_files/OS/linux_2.6.mk -@@ -89,7 +89,7 @@ EXTRA_CFLAGS+= -Wno-div-by-zero -Wfloat- - endif - - --LIB_SHARED_FLAGS+=-shared -soname $(LIB_SHARED) -+LIB_SHARED_FLAGS+=-shared -Wl,-soname,$(LIB_SHARED) - LIB_STATIC_FLAGS= - EXE_FLAGS?= - diff --git a/recipes-extended/qat/qat17_4.12.0-00011.bb b/recipes-extended/qat/qat17_4.12.0-00011.bb new file mode 100644 index 0000000..28bcad7 --- /dev/null +++ b/recipes-extended/qat/qat17_4.12.0-00011.bb @@ -0,0 +1,171 @@ +DESCRIPTION = "Intel(r) QuickAssist Technology API" +HOMEPAGE = "https://01.org/packet-processing/intel%C2%AE-quickassist-technology-drivers-and-patches" + +#Dual BSD and GPLv2 License +LICENSE = "BSD & GPLv2" +LIC_FILES_CHKSUM = "\ + file://${COMMON_LICENSE_DIR}/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6 \ + file://${COMMON_LICENSE_DIR}/BSD;md5=3775480a712fc46a69647678acb234cb \ + " +DEPENDS += "boost udev zlib openssl" +PROVIDES += "virtual/qat" + +TARGET_CC_ARCH += "${LDFLAGS}" + +SRC_URI = "https://01.org/sites/default/files/downloads//qat1.7.l.4.12.0-00011.tar.gz;subdir=qat17 \ + file://0001-qat-fix-for-cross-compilation-issue.patch \ + file://0002-qat-remove-local-path-from-makefile.patch \ + file://0003-qat-override-CC-LD-AR-only-when-it-is-not-define.patch \ + file://0004-update-KDIR-for-cross-compilation.patch \ + file://0005-Added-include-dir-path.patch \ + file://0006-qat-add-install-target-and-add-folder.patch \ + file://0007-qat-use-static-lib-for-linking-under-cpa-sample-code.patch \ + file://0008-qat-overwrite-KBUILD_BUILTIN-in-kernel-s-Makefile.patch \ + file://0009-crypto-qat-Silence-smp_processor_id-warning.patch \ + file://0010-qat-include-sha1.h-and-sha2.h-instead-of-sha.h-in-ke.patch \ + file://0011-qat17-use-namespace-CRYPTO_INTERNAL.patch \ + " + +do_configure[depends] += "virtual/kernel:do_shared_workdir" + +SRC_URI[md5sum] = "23d962944ae22ef14ff880fdbff4223b" +SRC_URI[sha256sum] = "6b8d643780b2640d084f5bd50546c8dae4ae9ec50cf167660a0ebdc55619eb2e" + +COMPATIBLE_MACHINE = "null" +COMPATIBLE_HOST_x86-x32 = 'null' +COMPATIBLE_HOST_libc-musl_class-target = 'null' + +S = "${WORKDIR}/qat17" +ICP_TOOLS = "accelcomp" +SAMPLE_CODE_DIR = "${S}/quickassist/lookaside/access_layer/src/sample_code" +export INSTALL_MOD_PATH = "${D}" +export ICP_ROOT = "${S}" +export ICP_ENV_DIR = "${S}/quickassist/build_system/build_files/env_files" +export ICP_BUILDSYSTEM_PATH = "${S}/quickassist/build_system" +export ICP_TOOLS_TARGET = "${ICP_TOOLS}" +export FUNC_PATH = "${ICP_ROOT}/quickassist/lookaside/access_layer/src/sample_code/functional" +export INSTALL_FW_PATH = "${D}${base_libdir}/firmware" +export KERNEL_SOURCE_ROOT = "${STAGING_KERNEL_DIR}" +export ICP_BUILD_OUTPUT = "${D}" +export DEST_LIBDIR = "${libdir}" +export DEST_BINDIR = "${bindir}" +export QAT_KERNEL_VER = "${KERNEL_VERSION}" +export SAMPLE_BUILD_OUTPUT = "${D}" +export INSTALL_MOD_DIR = "${D}${base_libdir}/modules/${KERNEL_VERSION}" +export KERNEL_BUILDDIR = "${STAGING_KERNEL_BUILDDIR}" +export SC_EPOLL_DISABLED = "1" +export WITH_UPSTREAM = "1" +export WITH_CMDRV = "1" +export KERNEL_SOURCE_DIR = "${ICP_ROOT}/quickassist/qat/" +export ICP_NO_CLEAN = "1" +export ICP_QDM_IOMMU = "1" + +inherit module +inherit update-rc.d +INITSCRIPT_NAME = "qat_service" + +PARALLEL_MAKE = "" + +EXTRA_OEMAKE_append = " CFLAGS+='-fgnu89-inline -fPIC'" +EXTRA_OEMAKE = "-e MAKEFLAGS=" + +do_compile () { + export LD="${LD} --hash-style=gnu" + export MACHINE="${TARGET_ARCH}" + + cd ${S}/quickassist/qat + oe_runmake + oe_runmake 'modules_install' + + cd ${S}/quickassist + oe_runmake + + cd ${S}/quickassist/utilities/adf_ctl + oe_runmake + + cd ${S}/quickassist/utilities/libusdm_drv + oe_runmake + + cd ${S}/quickassist/lookaside/access_layer/src/qat_direct/src/ + oe_runmake + + #build the whole sample code: per_user only + cd ${SAMPLE_CODE_DIR} + oe_runmake 'perf_user' +} + +do_install() { + export MACHINE="${TARGET_ARCH}" + + cd ${S}/quickassist + oe_runmake install + + cd ${S}/quickassist/qat + oe_runmake modules_install + + install -d ${D}${sysconfdir}/udev/rules.d + install -d ${D}${sbindir} + install -d ${D}${sysconfdir}/conf_files + install -d ${D}${prefix}/src/qat + install -d ${D}${includedir} + install -d ${D}${includedir}/dc + install -d ${D}${includedir}/lac + + echo 'KERNEL=="qat_adf_ctl" MODE="0660" GROUP="qat"' > ${D}/etc/udev/rules.d/00-qat.rules + echo 'KERNEL=="qat_dev_processes" MODE="0660" GROUP="qat"' >> ${D}/etc/udev/rules.d/00-qat.rules + echo 'KERNEL=="usdm_drv" MODE="0660" GROUP="qat"' >> ${D}/etc/udev/rules.d/00-qat.rules + echo 'KERNEL=="uio*" MODE="0660" GROUP="qat"' >> ${D}/etc/udev/rules.d/00-qat.rules + echo 'KERNEL=="hugepages" MODE="0660" GROUP="qat"' >> ${D}/etc/udev/rules.d/00-qat.rules + + mkdir -p ${D}${base_libdir} + + install -D -m 0755 ${S}/quickassist/lookaside/access_layer/src/build/linux_2.6/user_space/libqat_s.so ${D}${base_libdir} + install -D -m 0755 ${S}/quickassist/lookaside/access_layer/src/build/linux_2.6/user_space/libqat.a ${D}${base_libdir} + install -D -m 0755 ${S}/quickassist/utilities/osal/src/build/linux_2.6/user_space/libosal_s.so ${D}${base_libdir} + install -D -m 0755 ${S}/quickassist/utilities/osal/src/build/linux_2.6/user_space/libosal.a ${D}${base_libdir} + install -D -m 0755 ${S}/quickassist/lookaside/access_layer/src/qat_direct/src/build/linux_2.6/user_space/libadf_user.a ${D}${base_libdir}/libadf.a + install -D -m 0755 ${S}/quickassist/utilities/libusdm_drv/libusdm_drv_s.so ${D}${base_libdir} + install -D -m 0755 ${S}/quickassist/utilities/libusdm_drv/libusdm_drv.a ${D}${base_libdir} + install -D -m 0750 ${S}/quickassist/utilities/adf_ctl/adf_ctl ${D}${sbindir} + + install -D -m 640 ${S}/quickassist/utilities/adf_ctl/conf_files/*.conf ${D}${sysconfdir}/conf_files + install -D -m 640 ${S}/quickassist/utilities/adf_ctl/conf_files/*.conf.vm ${D}${sysconfdir}/conf_files + + install -m 0755 ${S}/quickassist/qat/fw/qat_d15xx.bin ${D}${nonarch_base_libdir}/firmware + install -m 0755 ${S}/quickassist/qat/fw/qat_d15xx_mmp.bin ${D}${nonarch_base_libdir}/firmware + + install -m 640 ${S}/quickassist/include/*.h ${D}${includedir} + install -m 640 ${S}/quickassist/include/dc/*.h ${D}${includedir}/dc/ + install -m 640 ${S}/quickassist/include/lac/*.h ${D}${includedir}/lac/ + install -m 640 ${S}/quickassist/lookaside/access_layer/include/*.h ${D}${includedir} + install -m 640 ${S}/quickassist/utilities/libusdm_drv/*.h ${D}${includedir} + + install -m 0755 ${S}/quickassist/lookaside/access_layer/src/sample_code/performance/compression/calgary ${D}${nonarch_base_libdir}/firmware + install -m 0755 ${S}/quickassist/lookaside/access_layer/src/sample_code/performance/compression/calgary32 ${D}${nonarch_base_libdir}/firmware + install -m 0755 ${S}/quickassist/lookaside/access_layer/src/sample_code/performance/compression/canterbury ${D}${nonarch_base_libdir}/firmware + + #install qat source + cp ${DL_DIR}/qat1.7.l.${PV}.tar.gz ${D}${prefix}/src/qat/ +} + +PACKAGES += "${PN}-app" + +FILES_${PN}-dev = "${includedir}/ \ + ${nonarch_base_libdir}/*.a \ + " + +FILES_${PN} += "\ + ${libdir}/ \ + ${nonarch_base_libdir}/firmware \ + ${sysconfdir}/ \ + ${sbindir}/ \ + ${base_libdir}/*.so \ + ${prefix}/src/qat \ + " + +FILES_${PN}-dbg += "${sysconfdir}/init.d/.debug/ \ + " + +FILES_${PN}-app += "${bindir}/* \ + ${prefix}/qat \ + " diff --git a/recipes-extended/qat/qat17_4.7.0-00006.bb b/recipes-extended/qat/qat17_4.7.0-00006.bb deleted file mode 100644 index e9fb85d..0000000 --- a/recipes-extended/qat/qat17_4.7.0-00006.bb +++ /dev/null @@ -1,202 +0,0 @@ -DESCRIPTION = "Intel(r) QuickAssist Technology API" -HOMEPAGE = "https://01.org/packet-processing/intel%C2%AE-quickassist-technology-drivers-and-patches" - -#Dual BSD and GPLv2 License -LICENSE = "BSD & GPLv2" -LIC_FILES_CHKSUM = "\ - file://${COMMON_LICENSE_DIR}/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6 \ - file://${COMMON_LICENSE_DIR}/BSD;md5=3775480a712fc46a69647678acb234cb \ - " -DEPENDS += "boost udev zlib openssl" -PROVIDES += "virtual/qat" - -TARGET_CC_ARCH += "${LDFLAGS}" - -SRC_URI = "https://01.org/sites/default/files/downloads/qat1.7.l.4.7.0-00006.tar.gz;subdir=qat17 \ - file://qat16_2.3.0-34-qat-remove-local-path-from-makefile.patch \ - file://qat16_2.6.0-65-qat-override-CC-LD-AR-only-when-it-is-not-define.patch \ - file://qat17_0.6.0-1-qat-update-KDIR-for-cross-compilation.patch \ - file://qat17_0.8.0-37-qat-added-include-dir-path.patch \ - file://qat17_0.9.0-4-qat-add-install-target-and-add-folder.patch \ - file://qat17_4.1.0-00022-qat-use-static-lib-for-linking.patch \ - file://qat17_4.7.0-00006-Link-driver-with-object-files.patch \ - file://qat17_4.7.0-00006-Drop-pr_warning-definition.patch \ - file://qat17_4.7.0-00006-Switch-to-skcipher-API.patch;apply=0 \ - file://qat17_4.7.0-00006-make-it-compatible-with-kernel-5.6.patch;apply=0 \ - file://qat17_4.7.0-00006-crypto-qat-adf_aer-Remove-pci_cleanup_aer_uncorrect_.patch \ - file://qat17_4.7.0-00006-qat-replace-linux-cryptohash.h-with-crypto-sha.h-for.patch \ - file://qat17_4.7.0-00006-overwrite-KBUILD_BUILTIN-in-kernel-s-Makefile.patch \ - file://qat17_4.7.0-00006-crypto-qat-Silence-smp_processor_id-warning.patch \ - file://qat17_4.7.0-00006-qat-include-sha1.h-and-sha2.h-instead-of-sha.h-in-ke.patch \ - file://qat17_4.7.0-00006-qat17-use-namespace-CRYPTO_INTERNAL.patch \ - " - -do_patch[depends] += "virtual/kernel:do_shared_workdir" - -do_patch_append () { - kernel_version = int(d.getVar("KERNEL_VERSION").split(".")[0]) - kernel_patchlevel = int(d.getVar("KERNEL_VERSION").split(".")[1]) - - if kernel_version >= 5 and kernel_patchlevel >= 5: - bb.build.exec_func('do_switch_to_skcipher_api', d) - if kernel_version >= 5 and kernel_patchlevel >= 6: - bb.build.exec_func('do_patch_for_kernel_5_6', d) -} - -do_switch_to_skcipher_api () { - if [ ! -e ${S}/patches/qat17_4.7.0-00006-Switch-to-skcipher-API.patch.applied ]; then - cd "${S}" - patch -p1 < "${WORKDIR}/qat17_4.7.0-00006-Switch-to-skcipher-API.patch" - touch ${S}/patches/qat17_4.7.0-00006-Switch-to-skcipher-API.patch.applied - fi -} - -do_patch_for_kernel_5_6 () { - if [ ! -e ${S}/patches/qat17_4.7.0-00006-make-it-compatible-with-kernel-5.6.patch.applied ]; then - cd "${S}" - patch -p1 < "${WORKDIR}/qat17_4.7.0-00006-make-it-compatible-with-kernel-5.6.patch" - touch ${S}/patches/qat17_4.7.0-00006-make-it-compatible-with-kernel-5.6.patch.applied - fi -} - - -SRC_URI[md5sum] = "ac939b51cc8836c182e31e309c065002" -SRC_URI[sha256sum] = "5c8bdc35fd7a42f212f1f87eb9e3d8584df7af56dae366debc487981e531fa5c" - -COMPATIBLE_MACHINE = "null" -COMPATIBLE_HOST_x86-x32 = 'null' -COMPATIBLE_HOST_libc-musl_class-target = 'null' - -S = "${WORKDIR}/qat17" -ICP_TOOLS = "accelcomp" -SAMPLE_CODE_DIR = "${S}/quickassist/lookaside/access_layer/src/sample_code" -export INSTALL_MOD_PATH = "${D}" -export ICP_ROOT = "${S}" -export ICP_ENV_DIR = "${S}/quickassist/build_system/build_files/env_files" -export ICP_BUILDSYSTEM_PATH = "${S}/quickassist/build_system" -export ICP_TOOLS_TARGET = "${ICP_TOOLS}" -export FUNC_PATH = "${ICP_ROOT}/quickassist/lookaside/access_layer/src/sample_code/functional" -export INSTALL_FW_PATH = "${D}${base_libdir}/firmware" -export KERNEL_SOURCE_ROOT = "${STAGING_KERNEL_DIR}" -export ICP_BUILD_OUTPUT = "${D}" -export DEST_LIBDIR = "${libdir}" -export DEST_BINDIR = "${bindir}" -export QAT_KERNEL_VER = "${KERNEL_VERSION}" -export SAMPLE_BUILD_OUTPUT = "${D}" -export INSTALL_MOD_DIR = "${D}${base_libdir}/modules/${KERNEL_VERSION}" -export KERNEL_BUILDDIR = "${STAGING_KERNEL_BUILDDIR}" -export SC_EPOLL_DISABLED = "1" -export WITH_UPSTREAM = "1" -export WITH_CMDRV = "1" -export KERNEL_SOURCE_DIR = "${ICP_ROOT}/quickassist/qat/" -export ICP_NO_CLEAN = "1" - -inherit module -inherit update-rc.d -INITSCRIPT_NAME = "qat_service" - -PARALLEL_MAKE = "" - -EXTRA_OEMAKE_append = " CFLAGS+='-fgnu89-inline -fPIC'" -EXTRA_OEMAKE = "-e MAKEFLAGS=" - -do_compile () { - export LD="${LD} --hash-style=gnu" - export MACHINE="${TARGET_ARCH}" - - cd ${S}/quickassist/qat - oe_runmake - oe_runmake 'modules_install' - - cd ${S}/quickassist - oe_runmake - - cd ${S}/quickassist/utilities/adf_ctl - oe_runmake - - cd ${S}/quickassist/utilities/libusdm_drv - oe_runmake - - cd ${S}/quickassist/lookaside/access_layer/src/qat_direct/src/ - oe_runmake - - #build the whole sample code: per_user only - cd ${SAMPLE_CODE_DIR} - oe_runmake 'perf_user' -} - -do_install() { - export MACHINE="${TARGET_ARCH}" - - cd ${S}/quickassist - oe_runmake install - - cd ${S}/quickassist/qat - oe_runmake modules_install - - install -d ${D}${sysconfdir}/udev/rules.d - install -d ${D}${sbindir} - install -d ${D}${sysconfdir}/conf_files - install -d ${D}${prefix}/src/qat - install -d ${D}${includedir} - install -d ${D}${includedir}/dc - install -d ${D}${includedir}/lac - - echo 'KERNEL=="qat_adf_ctl" MODE="0660" GROUP="qat"' > ${D}/etc/udev/rules.d/00-qat.rules - echo 'KERNEL=="qat_dev_processes" MODE="0660" GROUP="qat"' >> ${D}/etc/udev/rules.d/00-qat.rules - echo 'KERNEL=="usdm_drv" MODE="0660" GROUP="qat"' >> ${D}/etc/udev/rules.d/00-qat.rules - echo 'KERNEL=="uio*" MODE="0660" GROUP="qat"' >> ${D}/etc/udev/rules.d/00-qat.rules - echo 'KERNEL=="hugepages" MODE="0660" GROUP="qat"' >> ${D}/etc/udev/rules.d/00-qat.rules - - mkdir -p ${D}${base_libdir} - - install -D -m 0755 ${S}/quickassist/lookaside/access_layer/src/build/linux_2.6/user_space/libqat_s.so ${D}${base_libdir} - install -D -m 0755 ${S}/quickassist/lookaside/access_layer/src/build/linux_2.6/user_space/libqat.a ${D}${base_libdir} - install -D -m 0755 ${S}/quickassist/utilities/osal/src/build/linux_2.6/user_space/libosal_s.so ${D}${base_libdir} - install -D -m 0755 ${S}/quickassist/utilities/osal/src/build/linux_2.6/user_space/libosal.a ${D}${base_libdir} - install -D -m 0755 ${S}/quickassist/lookaside/access_layer/src/qat_direct/src/build/linux_2.6/user_space/libadf_user.a ${D}${base_libdir}/libadf.a - install -D -m 0755 ${S}/quickassist/utilities/libusdm_drv/libusdm_drv_s.so ${D}${base_libdir} - install -D -m 0755 ${S}/quickassist/utilities/libusdm_drv/libusdm_drv.a ${D}${base_libdir} - install -D -m 0750 ${S}/quickassist/utilities/adf_ctl/adf_ctl ${D}${sbindir} - - install -D -m 640 ${S}/quickassist/utilities/adf_ctl/conf_files/*.conf ${D}${sysconfdir}/conf_files - install -D -m 640 ${S}/quickassist/utilities/adf_ctl/conf_files/*.conf.vm ${D}${sysconfdir}/conf_files - - install -m 0755 ${S}/quickassist/qat/fw/qat_d15xx.bin ${D}${nonarch_base_libdir}/firmware - install -m 0755 ${S}/quickassist/qat/fw/qat_d15xx_mmp.bin ${D}${nonarch_base_libdir}/firmware - - install -m 640 ${S}/quickassist/include/*.h ${D}${includedir} - install -m 640 ${S}/quickassist/include/dc/*.h ${D}${includedir}/dc/ - install -m 640 ${S}/quickassist/include/lac/*.h ${D}${includedir}/lac/ - install -m 640 ${S}/quickassist/lookaside/access_layer/include/*.h ${D}${includedir} - install -m 640 ${S}/quickassist/utilities/libusdm_drv/*.h ${D}${includedir} - - install -m 0755 ${S}/quickassist/lookaside/access_layer/src/sample_code/performance/compression/calgary ${D}${nonarch_base_libdir}/firmware - install -m 0755 ${S}/quickassist/lookaside/access_layer/src/sample_code/performance/compression/calgary32 ${D}${nonarch_base_libdir}/firmware - install -m 0755 ${S}/quickassist/lookaside/access_layer/src/sample_code/performance/compression/canterbury ${D}${nonarch_base_libdir}/firmware - - #install qat source - cp ${DL_DIR}/qat1.7.l.${PV}.tar.gz ${D}${prefix}/src/qat/ -} - -PACKAGES += "${PN}-app" - -FILES_${PN}-dev = "${includedir}/ \ - ${nonarch_base_libdir}/*.a \ - " - -FILES_${PN} += "\ - ${libdir}/ \ - ${nonarch_base_libdir}/firmware \ - ${sysconfdir}/ \ - ${sbindir}/ \ - ${base_libdir}/*.so \ - ${prefix}/src/qat \ - " - -FILES_${PN}-dbg += "${sysconfdir}/init.d/.debug/ \ - " - -FILES_${PN}-app += "${bindir}/* \ - ${prefix}/qat \ - " -- cgit v1.2.3-54-g00ecf