diff options
-rw-r--r-- | src/Kbuild | 5 | ||||
-rw-r--r-- | src/crypto/curve25519-neon-arm.S | 6 | ||||
-rw-r--r-- | src/crypto/curve25519.c | 6 |
3 files changed, 7 insertions, 10 deletions
@@ -21,10 +21,7 @@ ifeq ($(CONFIG_ARM64),y) wireguard-$(CONFIG_KERNEL_MODE_NEON) += crypto/chacha20-neon-arm64.o endif ifeq ($(CONFIG_ARM),y) - wireguard-$(CONFIG_KERNEL_MODE_NEON) += crypto/chacha20-neon-arm.o - ifneq ($(CONFIG_CPU_THUMBONLY),y) - wireguard-$(CONFIG_KERNEL_MODE_NEON) += crypto/curve25519-neon-arm.o - endif + wireguard-$(CONFIG_KERNEL_MODE_NEON) += crypto/chacha20-neon-arm.o crypto/curve25519-neon-arm.o endif ifneq ($(KBUILD_EXTMOD),) diff --git a/src/crypto/curve25519-neon-arm.S b/src/crypto/curve25519-neon-arm.S index 1a921e2..b54211a 100644 --- a/src/crypto/curve25519-neon-arm.S +++ b/src/crypto/curve25519-neon-arm.S @@ -6,15 +6,15 @@ #include <linux/linkage.h> .text - .arm .fpu neon .align 4 ENTRY(curve25519_asm_neon) vpush {q4,q5,q6,q7} mov r12,sp - sub sp,sp,#736 - and sp,sp,#0xffffffe0 + sub r3,sp,#736 + and r3,r3,#0xffffffe0 + mov sp,r3 strd r4,[sp,#0] strd r6,[sp,#8] strd r8,[sp,#16] diff --git a/src/crypto/curve25519.c b/src/crypto/curve25519.c index 232c6d4..ddabfdf 100644 --- a/src/crypto/curve25519.c +++ b/src/crypto/curve25519.c @@ -192,7 +192,7 @@ static void curve25519_sandy2x_base(u8 pub[CURVE25519_POINT_SIZE], const u8 secr memzero_explicit(x_51, sizeof(x_51)); memzero_explicit(z_51, sizeof(z_51)); } -#elif IS_ENABLED(CONFIG_KERNEL_MODE_NEON) && defined(CONFIG_ARM) && !defined(CONFIG_CPU_THUMBONLY) +#elif IS_ENABLED(CONFIG_KERNEL_MODE_NEON) && defined(CONFIG_ARM) #include <asm/hwcap.h> #include <asm/neon.h> #include <asm/simd.h> @@ -1470,7 +1470,7 @@ static void cmult(limb *resultx, limb *resultz, const u8 *n, const limb *q) bool curve25519(u8 mypublic[CURVE25519_POINT_SIZE], const u8 secret[CURVE25519_POINT_SIZE], const u8 basepoint[CURVE25519_POINT_SIZE]) { -#if IS_ENABLED(CONFIG_KERNEL_MODE_NEON) && defined(CONFIG_ARM) && !defined(CONFIG_CPU_THUMBONLY) +#if IS_ENABLED(CONFIG_KERNEL_MODE_NEON) && defined(CONFIG_ARM) if (curve25519_use_neon && may_use_simd()) { kernel_neon_begin(); curve25519_asm_neon(mypublic, secret, basepoint); @@ -1649,7 +1649,7 @@ static void cmult(struct other_stack *s, limb *resultx, limb *resultz, const u8 bool curve25519(u8 mypublic[CURVE25519_POINT_SIZE], const u8 secret[CURVE25519_POINT_SIZE], const u8 basepoint[CURVE25519_POINT_SIZE]) { -#if IS_ENABLED(CONFIG_KERNEL_MODE_NEON) && defined(CONFIG_ARM) && !defined(CONFIG_CPU_THUMBONLY) +#if IS_ENABLED(CONFIG_KERNEL_MODE_NEON) && defined(CONFIG_ARM) if (curve25519_use_neon && may_use_simd()) { kernel_neon_begin(); curve25519_asm_neon(mypublic, secret, basepoint); |