Commit 07266d06 authored by Jakub Kicinski's avatar Jakub Kicinski
Browse files

Merge branch 'wireguard-patches-for-5-19-rc6'

Jason A. Donenfeld says:

====================
wireguard patches for 5.19-rc6

1) A few small fixups to the selftests, per usual. Of particular note is
   a fix for a test flake that occurred on especially fast systems that
   boot in less than a second.

2) An addition during this cycle of some s390 crypto interacted with the
   way wireguard selects dependencies, resulting in linker errors
   reported by the kernel test robot. So Vladis sent in a patch for
   that, which also required a small preparatory fix moving some Kconfig
   symbols around.
====================

Link: https://lore.kernel.org/r/20220707003157.526645-1-Jason@zx2c4.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parents faa4e04e 0d1f7008
Loading
Loading
Loading
Loading
+114 −0
Original line number Diff line number Diff line
@@ -666,6 +666,18 @@ config CRYPTO_CRC32_MIPS
	  CRC32c and CRC32 CRC algorithms implemented using mips crypto
	  instructions, when available.

config CRYPTO_CRC32_S390
	tristate "CRC-32 algorithms"
	depends on S390
	select CRYPTO_HASH
	select CRC32
	help
	  Select this option if you want to use hardware accelerated
	  implementations of CRC algorithms.  With this option, you
	  can optimize the computation of CRC-32 (IEEE 802.3 Ethernet)
	  and CRC-32C (Castagnoli).

	  It is available with IBM z13 or later.

config CRYPTO_XXHASH
	tristate "xxHash hash algorithm"
@@ -898,6 +910,16 @@ config CRYPTO_SHA512_SSSE3
	  Extensions version 1 (AVX1), or Advanced Vector Extensions
	  version 2 (AVX2) instructions, when available.

config CRYPTO_SHA512_S390
	tristate "SHA384 and SHA512 digest algorithm"
	depends on S390
	select CRYPTO_HASH
	help
	  This is the s390 hardware accelerated implementation of the
	  SHA512 secure hash standard.

	  It is available as of z10.

config CRYPTO_SHA1_OCTEON
	tristate "SHA1 digest algorithm (OCTEON)"
	depends on CPU_CAVIUM_OCTEON
@@ -930,6 +952,16 @@ config CRYPTO_SHA1_PPC_SPE
	  SHA-1 secure hash standard (DFIPS 180-4) implemented
	  using powerpc SPE SIMD instruction set.

config CRYPTO_SHA1_S390
	tristate "SHA1 digest algorithm"
	depends on S390
	select CRYPTO_HASH
	help
	  This is the s390 hardware accelerated implementation of the
	  SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).

	  It is available as of z990.

config CRYPTO_SHA256
	tristate "SHA224 and SHA256 digest algorithm"
	select CRYPTO_HASH
@@ -970,6 +1002,16 @@ config CRYPTO_SHA256_SPARC64
	  SHA-256 secure hash standard (DFIPS 180-2) implemented
	  using sparc64 crypto instructions, when available.

config CRYPTO_SHA256_S390
	tristate "SHA256 digest algorithm"
	depends on S390
	select CRYPTO_HASH
	help
	  This is the s390 hardware accelerated implementation of the
	  SHA256 secure hash standard (DFIPS 180-2).

	  It is available as of z9.

config CRYPTO_SHA512
	tristate "SHA384 and SHA512 digest algorithms"
	select CRYPTO_HASH
@@ -1010,6 +1052,26 @@ config CRYPTO_SHA3
	  References:
	  http://keccak.noekeon.org/

config CRYPTO_SHA3_256_S390
	tristate "SHA3_224 and SHA3_256 digest algorithm"
	depends on S390
	select CRYPTO_HASH
	help
	  This is the s390 hardware accelerated implementation of the
	  SHA3_256 secure hash standard.

	  It is available as of z14.

config CRYPTO_SHA3_512_S390
	tristate "SHA3_384 and SHA3_512 digest algorithm"
	depends on S390
	select CRYPTO_HASH
	help
	  This is the s390 hardware accelerated implementation of the
	  SHA3_512 secure hash standard.

	  It is available as of z14.

config CRYPTO_SM3
	tristate

@@ -1070,6 +1132,16 @@ config CRYPTO_GHASH_CLMUL_NI_INTEL
	  This is the x86_64 CLMUL-NI accelerated implementation of
	  GHASH, the hash function used in GCM (Galois/Counter mode).

config CRYPTO_GHASH_S390
	tristate "GHASH hash function"
	depends on S390
	select CRYPTO_HASH
	help
	  This is the s390 hardware accelerated implementation of GHASH,
	  the hash function used in GCM (Galois/Counter mode).

	  It is available as of z196.

comment "Ciphers"

config CRYPTO_AES
@@ -1185,6 +1257,23 @@ config CRYPTO_AES_PPC_SPE
	  architecture specific assembler implementations that work on 1KB
	  tables or 256 bytes S-boxes.

config CRYPTO_AES_S390
	tristate "AES cipher algorithms"
	depends on S390
	select CRYPTO_ALGAPI
	select CRYPTO_SKCIPHER
	help
	  This is the s390 hardware accelerated implementation of the
	  AES cipher algorithms (FIPS-197).

	  As of z9 the ECB and CBC modes are hardware accelerated
	  for 128 bit keys.
	  As of z10 the ECB and CBC modes are hardware accelerated
	  for all AES key sizes.
	  As of z196 the CTR mode is hardware accelerated for all AES
	  key sizes and XTS mode is hardware accelerated for 256 and
	  512 bit keys.

config CRYPTO_ANUBIS
	tristate "Anubis cipher algorithm"
	depends on CRYPTO_USER_API_ENABLE_OBSOLETE
@@ -1415,6 +1504,19 @@ config CRYPTO_DES3_EDE_X86_64
	  algorithm are provided; regular processing one input block and
	  one that processes three blocks parallel.

config CRYPTO_DES_S390
	tristate "DES and Triple DES cipher algorithms"
	depends on S390
	select CRYPTO_ALGAPI
	select CRYPTO_SKCIPHER
	select CRYPTO_LIB_DES
	help
	  This is the s390 hardware accelerated implementation of the
	  DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).

	  As of z990 the ECB and CBC mode are hardware accelerated.
	  As of z196 the CTR mode is hardware accelerated.

config CRYPTO_FCRYPT
	tristate "FCrypt cipher algorithm"
	select CRYPTO_ALGAPI
@@ -1474,6 +1576,18 @@ config CRYPTO_CHACHA_MIPS
	select CRYPTO_SKCIPHER
	select CRYPTO_ARCH_HAVE_LIB_CHACHA

config CRYPTO_CHACHA_S390
	tristate "ChaCha20 stream cipher"
	depends on S390
	select CRYPTO_SKCIPHER
	select CRYPTO_LIB_CHACHA_GENERIC
	select CRYPTO_ARCH_HAVE_LIB_CHACHA
	help
	  This is the s390 SIMD implementation of the ChaCha20 stream
	  cipher (RFC 7539).

	  It is available as of z13.

config CRYPTO_SEED
	tristate "SEED cipher algorithm"
	depends on CRYPTO_USER_API_ENABLE_OBSOLETE
+0 −115
Original line number Diff line number Diff line
@@ -133,98 +133,6 @@ config CRYPTO_PAES_S390
	  Select this option if you want to use the paes cipher
	  for example to use protected key encrypted devices.

config CRYPTO_SHA1_S390
	tristate "SHA1 digest algorithm"
	depends on S390
	select CRYPTO_HASH
	help
	  This is the s390 hardware accelerated implementation of the
	  SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).

	  It is available as of z990.

config CRYPTO_SHA256_S390
	tristate "SHA256 digest algorithm"
	depends on S390
	select CRYPTO_HASH
	help
	  This is the s390 hardware accelerated implementation of the
	  SHA256 secure hash standard (DFIPS 180-2).

	  It is available as of z9.

config CRYPTO_SHA512_S390
	tristate "SHA384 and SHA512 digest algorithm"
	depends on S390
	select CRYPTO_HASH
	help
	  This is the s390 hardware accelerated implementation of the
	  SHA512 secure hash standard.

	  It is available as of z10.

config CRYPTO_SHA3_256_S390
	tristate "SHA3_224 and SHA3_256 digest algorithm"
	depends on S390
	select CRYPTO_HASH
	help
	  This is the s390 hardware accelerated implementation of the
	  SHA3_256 secure hash standard.

	  It is available as of z14.

config CRYPTO_SHA3_512_S390
	tristate "SHA3_384 and SHA3_512 digest algorithm"
	depends on S390
	select CRYPTO_HASH
	help
	  This is the s390 hardware accelerated implementation of the
	  SHA3_512 secure hash standard.

	  It is available as of z14.

config CRYPTO_DES_S390
	tristate "DES and Triple DES cipher algorithms"
	depends on S390
	select CRYPTO_ALGAPI
	select CRYPTO_SKCIPHER
	select CRYPTO_LIB_DES
	help
	  This is the s390 hardware accelerated implementation of the
	  DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).

	  As of z990 the ECB and CBC mode are hardware accelerated.
	  As of z196 the CTR mode is hardware accelerated.

config CRYPTO_AES_S390
	tristate "AES cipher algorithms"
	depends on S390
	select CRYPTO_ALGAPI
	select CRYPTO_SKCIPHER
	help
	  This is the s390 hardware accelerated implementation of the
	  AES cipher algorithms (FIPS-197).

	  As of z9 the ECB and CBC modes are hardware accelerated
	  for 128 bit keys.
	  As of z10 the ECB and CBC modes are hardware accelerated
	  for all AES key sizes.
	  As of z196 the CTR mode is hardware accelerated for all AES
	  key sizes and XTS mode is hardware accelerated for 256 and
	  512 bit keys.

config CRYPTO_CHACHA_S390
	tristate "ChaCha20 stream cipher"
	depends on S390
	select CRYPTO_SKCIPHER
	select CRYPTO_LIB_CHACHA_GENERIC
	select CRYPTO_ARCH_HAVE_LIB_CHACHA
	help
	  This is the s390 SIMD implementation of the ChaCha20 stream
	  cipher (RFC 7539).

	  It is available as of z13.

config S390_PRNG
	tristate "Pseudo random number generator device driver"
	depends on S390
@@ -238,29 +146,6 @@ config S390_PRNG

	  It is available as of z9.

config CRYPTO_GHASH_S390
	tristate "GHASH hash function"
	depends on S390
	select CRYPTO_HASH
	help
	  This is the s390 hardware accelerated implementation of GHASH,
	  the hash function used in GCM (Galois/Counter mode).

	  It is available as of z196.

config CRYPTO_CRC32_S390
	tristate "CRC-32 algorithms"
	depends on S390
	select CRYPTO_HASH
	select CRC32
	help
	  Select this option if you want to use hardware accelerated
	  implementations of CRC algorithms.  With this option, you
	  can optimize the computation of CRC-32 (IEEE 802.3 Ethernet)
	  and CRC-32C (Castagnoli).

	  It is available with IBM z13 or later.

config CRYPTO_DEV_NIAGARA2
	tristate "Niagara2 Stream Processing Unit driver"
	select CRYPTO_LIB_DES
+1 −0
Original line number Diff line number Diff line
@@ -94,6 +94,7 @@ config WIREGUARD
	select CRYPTO_CURVE25519_NEON if ARM && KERNEL_MODE_NEON
	select CRYPTO_CHACHA_MIPS if CPU_MIPS32_R2
	select CRYPTO_POLY1305_MIPS if MIPS
	select CRYPTO_CHACHA_S390 if S390
	help
	  WireGuard is a secure, fast, and easy to use replacement for IPSec
	  that uses modern cryptography and clever networking tricks. It's
+11 −9
Original line number Diff line number Diff line
@@ -19,8 +19,6 @@ endif
MIRROR := https://download.wireguard.com/qemu-test/distfiles/

KERNEL_BUILD_PATH := $(BUILD_PATH)/kernel$(if $(findstring yes,$(DEBUG_KERNEL)),-debug)
rwildcard=$(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2) $(filter $(subst *,%,$2),$d))
WIREGUARD_SOURCES := $(call rwildcard,$(KERNEL_PATH)/drivers/net/wireguard/,*)

default: qemu

@@ -109,20 +107,22 @@ CHOST := x86_64-linux-musl
QEMU_ARCH := x86_64
KERNEL_ARCH := x86_64
KERNEL_BZIMAGE := $(KERNEL_BUILD_PATH)/arch/x86/boot/bzImage
QEMU_VPORT_RESULT := virtio-serial-device
ifeq ($(HOST_ARCH),$(ARCH))
QEMU_MACHINE := -cpu host -machine q35,accel=kvm
QEMU_MACHINE := -cpu host -machine microvm,accel=kvm,pit=off,pic=off,rtc=off -no-acpi
else
QEMU_MACHINE := -cpu max -machine q35
QEMU_MACHINE := -cpu max -machine microvm -no-acpi
endif
else ifeq ($(ARCH),i686)
CHOST := i686-linux-musl
QEMU_ARCH := i386
KERNEL_ARCH := x86
KERNEL_BZIMAGE := $(KERNEL_BUILD_PATH)/arch/x86/boot/bzImage
QEMU_VPORT_RESULT := virtio-serial-device
ifeq ($(subst x86_64,i686,$(HOST_ARCH)),$(ARCH))
QEMU_MACHINE := -cpu host -machine q35,accel=kvm
QEMU_MACHINE := -cpu host -machine microvm,accel=kvm,pit=off,pic=off,rtc=off -no-acpi
else
QEMU_MACHINE := -cpu max -machine q35
QEMU_MACHINE := -cpu coreduo -machine microvm -no-acpi
endif
else ifeq ($(ARCH),mips64)
CHOST := mips64-linux-musl
@@ -208,10 +208,11 @@ QEMU_ARCH := m68k
KERNEL_ARCH := m68k
KERNEL_BZIMAGE := $(KERNEL_BUILD_PATH)/vmlinux
KERNEL_CMDLINE := $(shell sed -n 's/CONFIG_CMDLINE=\(.*\)/\1/p' arch/m68k.config)
QEMU_VPORT_RESULT := virtio-serial-device
ifeq ($(HOST_ARCH),$(ARCH))
QEMU_MACHINE := -cpu host,accel=kvm -machine q800 -append $(KERNEL_CMDLINE)
QEMU_MACHINE := -cpu host,accel=kvm -machine virt -append $(KERNEL_CMDLINE)
else
QEMU_MACHINE := -machine q800 -smp 1 -append $(KERNEL_CMDLINE)
QEMU_MACHINE := -machine virt -smp 1 -append $(KERNEL_CMDLINE)
endif
else ifeq ($(ARCH),riscv64)
CHOST := riscv64-linux-musl
@@ -322,8 +323,9 @@ $(KERNEL_BUILD_PATH)/.config: $(TOOLCHAIN_PATH)/.installed kernel.config arch/$(
	cd $(KERNEL_BUILD_PATH) && ARCH=$(KERNEL_ARCH) $(KERNEL_PATH)/scripts/kconfig/merge_config.sh -n $(KERNEL_BUILD_PATH)/.config $(KERNEL_BUILD_PATH)/minimal.config
	$(if $(findstring yes,$(DEBUG_KERNEL)),cp debug.config $(KERNEL_BUILD_PATH) && cd $(KERNEL_BUILD_PATH) && ARCH=$(KERNEL_ARCH) $(KERNEL_PATH)/scripts/kconfig/merge_config.sh -n $(KERNEL_BUILD_PATH)/.config debug.config,)

$(KERNEL_BZIMAGE): $(TOOLCHAIN_PATH)/.installed $(KERNEL_BUILD_PATH)/.config $(BUILD_PATH)/init-cpio-spec.txt $(IPERF_PATH)/src/iperf3 $(IPUTILS_PATH)/ping $(BASH_PATH)/bash $(IPROUTE2_PATH)/misc/ss $(IPROUTE2_PATH)/ip/ip $(IPTABLES_PATH)/iptables/xtables-legacy-multi $(NMAP_PATH)/ncat/ncat $(WIREGUARD_TOOLS_PATH)/src/wg $(BUILD_PATH)/init ../netns.sh $(WIREGUARD_SOURCES)
$(KERNEL_BZIMAGE): $(TOOLCHAIN_PATH)/.installed $(KERNEL_BUILD_PATH)/.config $(BUILD_PATH)/init-cpio-spec.txt $(IPERF_PATH)/src/iperf3 $(IPUTILS_PATH)/ping $(BASH_PATH)/bash $(IPROUTE2_PATH)/misc/ss $(IPROUTE2_PATH)/ip/ip $(IPTABLES_PATH)/iptables/xtables-legacy-multi $(NMAP_PATH)/ncat/ncat $(WIREGUARD_TOOLS_PATH)/src/wg $(BUILD_PATH)/init
	$(MAKE) -C $(KERNEL_PATH) O=$(KERNEL_BUILD_PATH) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(CROSS_COMPILE)
.PHONY: $(KERNEL_BZIMAGE)

$(TOOLCHAIN_PATH)/$(CHOST)/include/linux/.installed: | $(KERNEL_BUILD_PATH)/.config $(TOOLCHAIN_PATH)/.installed
	rm -rf $(TOOLCHAIN_PATH)/$(CHOST)/include/linux
+1 −0
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@ CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
CONFIG_VIRTIO_MENU=y
CONFIG_VIRTIO_MMIO=y
CONFIG_VIRTIO_CONSOLE=y
CONFIG_COMPAT_32BIT_TIME=y
CONFIG_CMDLINE_BOOL=y
CONFIG_CMDLINE="console=ttyAMA0 wg.success=vport0p1 panic_on_warn=1"
CONFIG_FRAME_WARN=1024
Loading