kernel: build neon-asm version of ghash module
authorEneas U de Queiroz <cotequeiroz@gmail.com>
Mon, 24 Feb 2020 12:59:38 +0000 (09:59 -0300)
committerChristian Lamparter <chunkeey@gmail.com>
Fri, 28 Feb 2020 21:46:09 +0000 (22:46 +0100)
This alone improves AES-GCM performance by up to 50% on ipq40xx.  This
is enabled for targets that support neon and set CONFIG_ARM_CRYPTO:
imx6, ipq40xx, and mvebu.

Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
package/kernel/linux/modules/crypto.mk

index be2182fd8b829af4a5db3dd6bef47b03e38c0231..0fe6416df0eba1a96c9c294ccb6831c003632974 100644 (file)
@@ -266,12 +266,23 @@ $(eval $(call KernelPackage,crypto-gf128))
 define KernelPackage/crypto-ghash
   TITLE:=GHASH digest CryptoAPI module
   DEPENDS:=+kmod-crypto-gf128 +kmod-crypto-hash
-  KCONFIG:=CONFIG_CRYPTO_GHASH
+  KCONFIG:= \
+       CONFIG_CRYPTO_GHASH \
+       CONFIG_CRYPTO_GHASH_ARM_CE
   FILES:=$(LINUX_DIR)/crypto/ghash-generic.ko
   AUTOLOAD:=$(call AutoLoad,09,ghash-generic)
   $(call AddDepends/crypto)
 endef
 
+define KernelPackage/crypto-ghash/arm-ce
+  FILES+= $(LINUX_DIR)/arch/arm/crypto/ghash-arm-ce.ko
+  AUTOLOAD+=$(call AutoLoad,09,ghash-arm-ce)
+endef
+
+KernelPackage/crypto-ghash/imx6=$(KernelPackage/crypto-ghash/arm-ce)
+KernelPackage/crypto-ghash/ipq40xx=$(KernelPackage/crypto-ghash/arm-ce)
+KernelPackage/crypto-ghash/mvebu=$(KernelPackage/crypto-ghash/arm-ce)
+
 $(eval $(call KernelPackage,crypto-ghash))