OpenCloudOS-Kernel/arch/arm64
Ard Biesheuvel 2fffee536c crypto: arm64/crct10dif - implement non-Crypto Extensions alternative
The arm64 implementation of the CRC-T10DIF algorithm uses the 64x64 bit
polynomial multiplication instructions, which are optional in the
architecture, and if these instructions are not available, we fall back
to the C routine which is slow and inefficient.

So let's reuse the 64x64 bit PMULL alternative from the GHASH driver that
uses a sequence of ~40 instructions involving 8x8 bit PMULL and some
shifting and masking. This is a lot slower than the original, but it is
still twice as fast as the current [unoptimized] C code on Cortex-A53,
and it is time invariant and much easier on the D-cache.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2018-09-04 11:37:04 +08:00
..
boot ARM: SoC: late updates 2018-08-25 14:12:36 -07:00
configs crypto: arm64/crc32 - remove PMULL based CRC32 driver 2018-09-04 11:37:04 +08:00
crypto crypto: arm64/crct10dif - implement non-Crypto Extensions alternative 2018-09-04 11:37:04 +08:00
include arm64: tlb: Provide forward declaration of tlb_flush() before including tlb.h 2018-08-23 18:34:57 -07:00
kernel KVM/arm updates for 4.19 2018-08-22 14:07:56 +02:00
kvm KVM/arm updates for 4.19 2018-08-22 14:07:56 +02:00
lib locking/atomics/arm64: Replace our atomic/lock bitop implementations with asm-generic 2018-06-21 12:52:12 +02:00
mm Merge branch 'akpm' (patches from Andrew) 2018-08-17 16:49:31 -07:00
net bpf, arm64: save 4 bytes in prologue when ebpf insns came from cbpf 2018-05-14 19:11:45 -07:00
xen arm64: mm: Add additional parameter to uaccess_ttbr0_disable 2018-01-17 13:57:49 +01:00
Kconfig arm64: mm: always enable CONFIG_HOLES_IN_ZONE 2018-08-31 11:06:45 +01:00
Kconfig.debug Kconfig: consolidate the "Kernel hacking" menu 2018-08-02 08:06:48 +09:00
Kconfig.platforms ARM: SoC: late updates 2018-08-25 14:12:36 -07:00
Makefile kbuild: rename LDFLAGS to KBUILD_LDFLAGS 2018-08-24 08:22:08 +09:00