OpenCloudOS-Kernel/arch/arm
Jason A. Donenfeld 706024a52c crypto: arch/lib - limit simd usage to 4k chunks
The initial Zinc patchset, after some mailing list discussion, contained
code to ensure that kernel_fpu_enable would not be kept on for more than
a 4k chunk, since it disables preemption. The choice of 4k isn't totally
scientific, but it's not a bad guess either, and it's what's used in
both the x86 poly1305, blake2s, and nhpoly1305 code already (in the form
of PAGE_SIZE, which this commit corrects to be explicitly 4k for the
former two).

Ard did some back of the envelope calculations and found that
at 5 cycles/byte (overestimate) on a 1ghz processor (pretty slow), 4k
means we have a maximum preemption disabling of 20us, which Sebastian
confirmed was probably a good limit.

Unfortunately the chunking appears to have been left out of the final
patchset that added the glue code. So, this commit adds it back in.

Fixes: 84e03fa39f ("crypto: x86/chacha - expose SIMD ChaCha routine as library function")
Fixes: b3aad5bad2 ("crypto: arm64/chacha - expose arm64 ChaCha routine as library function")
Fixes: a44a3430d7 ("crypto: arm/chacha - expose ARM ChaCha routine as library function")
Fixes: d7d7b85356 ("crypto: x86/poly1305 - wire up faster implementations for kernel")
Fixes: f569ca1647 ("crypto: arm64/poly1305 - incorporate OpenSSL/CRYPTOGAMS NEON implementation")
Fixes: a6b803b3dd ("crypto: arm/poly1305 - incorporate OpenSSL/CRYPTOGAMS NEON implementation")
Fixes: ed0356eda1 ("crypto: blake2s - x86_64 SIMD implementation")
Cc: Eric Biggers <ebiggers@google.com>
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: stable@vger.kernel.org
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2020-04-30 15:16:59 +10:00
..
boot ARM: devicetree updates for v5.7 2020-04-03 15:22:05 -07:00
common ARM: sa1111: Fix irq_retrigger callback return value 2020-03-16 15:48:54 +00:00
configs ARM: defconfig updates 2020-04-03 15:15:10 -07:00
crypto crypto: arch/lib - limit simd usage to 4k chunks 2020-04-30 15:16:59 +10:00
include mm/special: create generic fallbacks for pte_special() and pte_mkspecial() 2020-04-10 15:36:21 -07:00
kernel SPDX patches for 5.7-rc1. 2020-04-03 13:12:26 -07:00
lib ARM: 8958/1: rename missed uaccess .fixup section 2020-02-21 17:03:21 +00:00
mach-actions
mach-alpine
mach-artpec
mach-asm9260
mach-aspeed
mach-at91 ARM: SoC updates 2020-04-03 15:02:35 -07:00
mach-axxia
mach-bcm ARM: bcm: Drop unneeded select of PCI_DOMAINS_GENERIC, HAVE_SMP, TIMER_OF 2020-03-10 10:58:26 -07:00
mach-berlin
mach-clps711x
mach-cns3xxx ARM: cns3xxx: replace setup_irq() by request_irq() 2020-03-27 14:11:47 +01:00
mach-davinci ARM: SoC: late updates 2020-02-08 14:17:27 -08:00
mach-digicolor
mach-dove arm: mach-dove: Mark dove_io_desc as __maybe_unused 2020-03-13 21:44:50 +01:00
mach-ebsa110 ARM: 8964/1: ebsa110: replace setup_irq() by request_irq() 2020-03-19 09:27:39 +00:00
mach-efm32
mach-ep93xx ARM: ep93xx: Replace setup_irq() by request_irq() 2020-03-27 14:11:42 +01:00
mach-exynos arm: Unplug KVM from the build system 2020-03-24 10:55:50 +00:00
mach-footbridge ARM: 8965/2: footbridge: replace setup_irq() by request_irq() 2020-03-19 09:27:40 +00:00
mach-gemini
mach-highbank
mach-hisi
mach-imx ARM: SoC updates 2020-04-03 15:02:35 -07:00
mach-integrator ARM: integrator: impd1: Use GPIO_LOOKUP() helper macro 2020-03-26 22:05:12 +01:00
mach-iop32x ARM: iop32x: replace setup_irq() by request_irq() 2020-03-27 14:10:52 +01:00
mach-ixp4xx
mach-keystone
mach-lpc18xx
mach-lpc32xx
mach-mediatek
mach-meson ARM: meson: Drop unneeded select of COMMON_CLK 2020-02-29 08:16:20 -08:00
mach-milbeaut
mach-mmp ARM: mmp: replace setup_irq() by request_irq() 2020-03-27 14:11:50 +01:00
mach-moxart
mach-mv78xx0
mach-mvebu
mach-mxs
mach-nomadik
mach-npcm ARM: npcm: Bring back GPIOLIB support 2020-02-09 03:44:51 -08:00
mach-nspire
mach-omap1 ARM: SoC updates 2020-04-03 15:02:35 -07:00
mach-omap2 change email address for Pali Rohár 2020-04-10 15:36:22 -07:00
mach-orion5x ARM: orion5x: ts78xx: Remove unneeded variable ret 2020-03-08 12:42:07 +01:00
mach-oxnas
mach-picoxcell
mach-prima2
mach-pxa backlight: corgi: Convert to use GPIO descriptors 2020-03-25 09:30:46 +00:00
mach-qcom ARM: qcom: Add support for IPQ40xx 2020-03-31 21:03:27 +02:00
mach-rda
mach-realview
mach-rockchip
mach-rpc ARM: 8966/1: rpc: replace setup_irq() by request_irq() 2020-03-19 09:27:42 +00:00
mach-s3c24xx backlight: pwm_bl: Switch to full GPIO descriptor 2020-03-18 15:05:57 +00:00
mach-s3c64xx backlight: pwm_bl: Switch to full GPIO descriptor 2020-03-18 15:05:57 +00:00
mach-s5pv210
mach-sa1100
mach-shmobile ARM: shmobile: Replace <linux/clk-provider.h> by <linux/of_clk.h> 2020-02-17 11:39:44 +01:00
mach-socfpga
mach-spear ARM: spear: replace setup_irq() by request_irq() 2020-03-27 14:11:45 +01:00
mach-sti
mach-stm32
mach-sunxi ARM: sunxi: Replace <linux/clk-provider.h> by <linux/of_clk.h> 2020-02-12 18:15:39 +01:00
mach-tango
mach-tegra cpuidle: tegra: Squash Tegra114 driver into the common driver 2020-03-13 11:32:01 +01:00
mach-u300
mach-uniphier
mach-ux500
mach-versatile
mach-vexpress
mach-vt8500
mach-zx
mach-zynq ARM: zynq: Replace <linux/clk-provider.h> by <linux/of_clk.h> 2020-02-13 07:26:36 +01:00
mm mm/special: create generic fallbacks for pte_special() and pte_mkspecial() 2020-04-10 15:36:21 -07:00
net
nwfpe
oprofile
plat-omap
plat-orion ARM: orion: replace setup_irq() by request_irq() 2020-03-13 21:37:15 +01:00
plat-pxa
plat-samsung
plat-versatile
probes
tools
vdso .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
vfp
xen
Kconfig ARM: 2020-04-02 15:13:15 -07:00
Kconfig-nommu
Kconfig.debug ARM: debug: stm32: add UART early console support for STM32MP1 2020-03-13 17:05:07 +01:00
Makefile ARM: SoC updates 2020-04-03 15:02:35 -07:00