Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 28 Jan 2020 23:38:56 +0000 (15:38 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 28 Jan 2020 23:38:56 +0000 (15:38 -0800)
Pull crypto updates from Herbert Xu:
 "API:
   - Removed CRYPTO_TFM_RES flags
   - Extended spawn grabbing to all algorithm types
   - Moved hash descsize verification into API code

  Algorithms:
   - Fixed recursive pcrypt dead-lock
   - Added new 32 and 64-bit generic versions of poly1305
   - Added cryptogams implementation of x86/poly1305

  Drivers:
   - Added support for i.MX8M Mini in caam
   - Added support for i.MX8M Nano in caam
   - Added support for i.MX8M Plus in caam
   - Added support for A33 variant of SS in sun4i-ss
   - Added TEE support for Raven Ridge in ccp
   - Added in-kernel API to submit TEE commands in ccp
   - Added AMD-TEE driver
   - Added support for BCM2711 in iproc-rng200
   - Added support for AES256-GCM based ciphers for chtls
   - Added aead support on SEC2 in hisilicon"

* 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (244 commits)
  crypto: arm/chacha - fix build failured when kernel mode NEON is disabled
  crypto: caam - add support for i.MX8M Plus
  crypto: x86/poly1305 - emit does base conversion itself
  crypto: hisilicon - fix spelling mistake "disgest" -> "digest"
  crypto: chacha20poly1305 - add back missing test vectors and test chunking
  crypto: x86/poly1305 - fix .gitignore typo
  tee: fix memory allocation failure checks on drv_data and amdtee
  crypto: ccree - erase unneeded inline funcs
  crypto: ccree - make cc_pm_put_suspend() void
  crypto: ccree - split overloaded usage of irq field
  crypto: ccree - fix PM race condition
  crypto: ccree - fix FDE descriptor sequence
  crypto: ccree - cc_do_send_request() is void func
  crypto: ccree - fix pm wrongful error reporting
  crypto: ccree - turn errors to debug msgs
  crypto: ccree - fix AEAD decrypt auth fail
  crypto: ccree - fix typo in comment
  crypto: ccree - fix typos in error msgs
  crypto: atmel-{aes,sha,tdes} - Retire crypto_platform_data
  crypto: x86/sha - Eliminate casts on asm implementations
  ...

1  2 
.mailmap
MAINTAINERS
arch/arm64/crypto/sha256-glue.c
crypto/adiantum.c
crypto/essiv.c

diff --combined .mailmap
+++ b/.mailmap
@@@ -74,7 -74,6 +74,7 @@@ Dmitry Safonov <0x7f454c46@gmail.com> <
  Domen Puncer <domen@coderock.org>
  Douglas Gilbert <dougg@torque.net>
  Ed L. Cashin <ecashin@coraid.com>
 +Erik Kaneda <erik.kaneda@intel.com> <erik.schmauss@intel.com>
  Evgeniy Polyakov <johnpol@2ka.mipt.ru>
  Felipe W Damasio <felipewd@terra.com.br>
  Felix Kuhling <fxkuehl@gmx.de>
@@@ -100,7 -99,6 +100,7 @@@ Jacob Shin <Jacob.Shin@amd.com
  Jaegeuk Kim <jaegeuk@kernel.org> <jaegeuk@google.com>
  Jaegeuk Kim <jaegeuk@kernel.org> <jaegeuk@motorola.com>
  Jaegeuk Kim <jaegeuk@kernel.org> <jaegeuk.kim@samsung.com>
 +Jakub Kicinski <kuba@kernel.org> <jakub.kicinski@netronome.com>
  James Bottomley <jejb@mulgrave.(none)>
  James Bottomley <jejb@titanic.il.steeleye.com>
  James E Wilson <wilson@specifix.com>
@@@ -139,6 -137,7 +139,7 @@@ Juha Yrjola <at solidboot.com
  Juha Yrjola <juha.yrjola@nokia.com>
  Juha Yrjola <juha.yrjola@solidboot.com>
  Julien Thierry <julien.thierry.kdev@gmail.com> <julien.thierry@arm.com>
+ Kamil Konieczny <k.konieczny@samsung.com> <k.konieczny@partner.samsung.com>
  Kay Sievers <kay.sievers@vrfy.org>
  Kenneth W Chen <kenneth.w.chen@intel.com>
  Konstantin Khlebnikov <koct9i@gmail.com> <k.khlebnikov@samsung.com>
@@@ -154,7 -153,6 +155,7 @@@ Linus Lüssing <linus.luessing@c0d3.blu
  Linus Lüssing <linus.luessing@c0d3.blue> <linus.luessing@ascom.ch>
  Li Yang <leoyang.li@nxp.com> <leo@zh-kernel.org>
  Li Yang <leoyang.li@nxp.com> <leoli@freescale.com>
 +Lukasz Luba <lukasz.luba@arm.com> <l.luba@partner.samsung.com>
  Maciej W. Rozycki <macro@mips.com> <macro@imgtec.com>
  Marc Zyngier <maz@kernel.org> <marc.zyngier@arm.com>
  Marcin Nowakowski <marcin.nowakowski@mips.com> <marcin.nowakowski@imgtec.com>
@@@ -210,10 -208,6 +211,10 @@@ Paolo 'Blaisorblade' Giarrusso <blaisor
  Patrick Mochel <mochel@digitalimplant.org>
  Paul Burton <paulburton@kernel.org> <paul.burton@imgtec.com>
  Paul Burton <paulburton@kernel.org> <paul.burton@mips.com>
 +Paul E. McKenney <paulmck@kernel.org> <paulmck@linux.ibm.com>
 +Paul E. McKenney <paulmck@kernel.org> <paulmck@linux.vnet.ibm.com>
 +Paul E. McKenney <paulmck@kernel.org> <paul.mckenney@linaro.org>
 +Paul E. McKenney <paulmck@kernel.org> <paulmck@us.ibm.com>
  Peter A Jonsson <pj@ludd.ltu.se>
  Peter Oruba <peter@oruba.de>
  Peter Oruba <peter.oruba@amd.com>
@@@ -222,7 -216,6 +223,7 @@@ Praveen BP <praveenbp@ti.com
  Punit Agrawal <punitagrawal@gmail.com> <punit.agrawal@arm.com>
  Qais Yousef <qsyousef@gmail.com> <qais.yousef@imgtec.com>
  Quentin Perret <qperret@qperret.net> <quentin.perret@arm.com>
 +Rafael J. Wysocki <rjw@rjwysocki.net> <rjw@sisk.pl>
  Rajesh Shah <rajesh.shah@intel.com>
  Ralf Baechle <ralf@linux-mips.org>
  Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
@@@ -273,7 -266,6 +274,7 @@@ Vinod Koul <vkoul@kernel.org> <vkoul@in
  Viresh Kumar <vireshk@kernel.org> <viresh.kumar@st.com>
  Viresh Kumar <vireshk@kernel.org> <viresh.linux@gmail.com>
  Viresh Kumar <vireshk@kernel.org> <viresh.kumar2@arm.com>
 +Vivien Didelot <vivien.didelot@gmail.com> <vivien.didelot@savoirfairelinux.com>
  Vlad Dogaru <ddvlad@gmail.com> <vlad.dogaru@intel.com>
  Vladimir Davydov <vdavydov.dev@gmail.com> <vdavydov@virtuozzo.com>
  Vladimir Davydov <vdavydov.dev@gmail.com> <vdavydov@parallels.com>
@@@ -285,5 -277,3 +286,5 @@@ Gustavo Padovan <gustavo@las.ic.unicamp
  Gustavo Padovan <padovan@profusion.mobi>
  Changbin Du <changbin.du@intel.com> <changbin.du@intel.com>
  Changbin Du <changbin.du@intel.com> <changbin.du@gmail.com>
 +Steve Wise <larrystevenwise@gmail.com> <swise@chelsio.com>
 +Steve Wise <larrystevenwise@gmail.com> <swise@opengridcomputing.com>
diff --combined MAINTAINERS
@@@ -345,7 -345,7 +345,7 @@@ F: drivers/acpi/apei
  
  ACPI COMPONENT ARCHITECTURE (ACPICA)
  M:    Robert Moore <robert.moore@intel.com>
 -M:    Erik Schmauss <erik.schmauss@intel.com>
 +M:    Erik Kaneda <erik.kaneda@intel.com>
  M:    "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
  L:    linux-acpi@vger.kernel.org
  L:    devel@acpica.org
@@@ -720,7 -720,7 +720,7 @@@ F: Documentation/devicetree/bindings/i2
  F:    drivers/i2c/busses/i2c-altera.c
  
  ALTERA MAILBOX DRIVER
 -M:    Ley Foon Tan <lftan@altera.com>
 +M:    Ley Foon Tan <ley.foon.tan@intel.com>
  L:    nios2-dev@lists.rocketboards.org (moderated for non-subscribers)
  S:    Maintained
  F:    drivers/mailbox/mailbox-altera.c
@@@ -771,8 -771,6 +771,8 @@@ F: drivers/thermal/thermal_mmio.
  
  AMAZON ETHERNET DRIVERS
  M:    Netanel Belgazal <netanel@amazon.com>
 +M:    Arthur Kiyanovski <akiyano@amazon.com>
 +R:    Guy Tzalik <gtzalik@amazon.com>
  R:    Saeed Bishara <saeedb@amazon.com>
  R:    Zorik Machulsky <zorik@amazon.com>
  L:    netdev@vger.kernel.org
@@@ -791,7 -789,6 +791,6 @@@ F: include/uapi/rdma/efa-abi.
  
  AMD CRYPTOGRAPHIC COPROCESSOR (CCP) DRIVER
  M:    Tom Lendacky <thomas.lendacky@amd.com>
- M:    Gary Hook <gary.hook@amd.com>
  L:    linux-crypto@vger.kernel.org
  S:    Supported
  F:    drivers/crypto/ccp/
@@@ -977,15 -974,6 +976,15 @@@ W:       http://ez.analog.com/community/linux
  F:    drivers/iio/imu/adis16460.c
  F:    Documentation/devicetree/bindings/iio/imu/adi,adis16460.yaml
  
 +ANALOG DEVICES INC ADM1177 DRIVER
 +M:    Beniamin Bia <beniamin.bia@analog.com>
 +M:    Michael Hennerich <Michael.Hennerich@analog.com>
 +L:    linux-hwmon@vger.kernel.org
 +W:    http://ez.analog.com/community/linux-device-drivers
 +S:    Supported
 +F:    drivers/hwmon/adm1177.c
 +F:    Documentation/devicetree/bindings/hwmon/adi,adm1177.yaml
 +
  ANALOG DEVICES INC ADP5061 DRIVER
  M:    Stefan Popa <stefan.popa@analog.com>
  L:    linux-pm@vger.kernel.org
@@@ -1416,7 -1404,7 +1415,7 @@@ T:      git git://git.kernel.org/pub/scm/lin
  
  ARM/ACTIONS SEMI ARCHITECTURE
  M:    Andreas Färber <afaerber@suse.de>
 -R:    Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
 +M:    Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  N:    owl
@@@ -2251,7 -2239,6 +2250,7 @@@ L:      linux-rockchip@lists.infradead.or
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git
  S:    Maintained
  F:    Documentation/devicetree/bindings/i2c/i2c-rk3x.txt
 +F:    Documentation/devicetree/bindings/mmc/rockchip-dw-mshc.yaml
  F:    arch/arm/boot/dts/rk3*
  F:    arch/arm/boot/dts/rv1108*
  F:    arch/arm/mach-rockchip/
@@@ -2284,7 -2271,6 +2283,7 @@@ F:      drivers/*/*s3c64xx
  F:    drivers/*/*s5pv210*
  F:    drivers/memory/samsung/
  F:    drivers/soc/samsung/
 +F:    drivers/tty/serial/samsung*
  F:    include/linux/soc/samsung/
  F:    Documentation/arm/samsung/
  F:    Documentation/devicetree/bindings/arm/samsung/
@@@ -2704,14 -2690,6 +2703,14 @@@ S:    Maintaine
  F:    drivers/pinctrl/aspeed/
  F:    Documentation/devicetree/bindings/pinctrl/aspeed,*
  
 +ASPEED SCU INTERRUPT CONTROLLER DRIVER
 +M:    Eddie James <eajames@linux.ibm.com>
 +L:    linux-aspeed@lists.ozlabs.org (moderated for non-subscribers)
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/interrupt-controller/aspeed,ast2xxx-scu-ic.txt
 +F:    drivers/irqchip/irq-aspeed-scu-ic.c
 +F:    include/dt-bindings/interrupt-controller/aspeed-scu-ic.h
 +
  ASPEED VIDEO ENGINE DRIVER
  M:    Eddie James <eajames@linux.ibm.com>
  L:    linux-media@vger.kernel.org
@@@ -3168,7 -3146,7 +3167,7 @@@ S:      Maintaine
  F:    arch/mips/net/
  
  BPF JIT for NFP NICs
 -M:    Jakub Kicinski <jakub.kicinski@netronome.com>
 +M:    Jakub Kicinski <kuba@kernel.org>
  L:    netdev@vger.kernel.org
  L:    bpf@vger.kernel.org
  S:    Supported
@@@ -4991,7 -4969,6 +4990,7 @@@ F:      include/linux/dma-buf
  F:    include/linux/reservation.h
  F:    include/linux/*fence.h
  F:    Documentation/driver-api/dma-buf.rst
 +K:    dma_(buf|fence|resv)
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  
  DMA GENERIC OFFLOAD ENGINE SUBSYSTEM
@@@ -5021,7 -4998,7 +5020,7 @@@ F:      include/linux/dma-mapping.
  F:    include/linux/dma-noncoherent.h
  
  DMC FREQUENCY DRIVER FOR SAMSUNG EXYNOS5422
 -M:    Lukasz Luba <l.luba@partner.samsung.com>
 +M:    Lukasz Luba <lukasz.luba@arm.com>
  L:    linux-pm@vger.kernel.org
  L:    linux-samsung-soc@vger.kernel.org
  S:    Maintained
@@@ -6047,7 -6024,6 +6046,7 @@@ M:      Yash Shah <yash.shah@sifive.com
  L:    linux-edac@vger.kernel.org
  S:    Supported
  F:    drivers/edac/sifive_edac.c
 +F:    drivers/soc/sifive_l2_cache.c
  
  EDAC-SKYLAKE
  M:    Tony Luck <tony.luck@intel.com>
@@@ -6215,7 -6191,6 +6214,7 @@@ ETHERNET PHY LIBRAR
  M:    Andrew Lunn <andrew@lunn.ch>
  M:    Florian Fainelli <f.fainelli@gmail.com>
  M:    Heiner Kallweit <hkallweit1@gmail.com>
 +R:    Russell King <linux@armlinux.org.uk>
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    Documentation/ABI/testing/sysfs-class-net-phydev
@@@ -7055,7 -7030,6 +7054,7 @@@ L:      linux-acpi@vger.kernel.or
  S:    Maintained
  F:    Documentation/firmware-guide/acpi/gpio-properties.rst
  F:    drivers/gpio/gpiolib-acpi.c
 +F:    drivers/gpio/gpiolib-acpi.h
  
  GPIO IR Transmitter
  M:    Sean Young <sean@mess.org>
@@@ -7517,12 -7491,6 +7516,12 @@@ S:    Supporte
  F:    drivers/scsi/hisi_sas/
  F:    Documentation/devicetree/bindings/scsi/hisilicon-sas.txt
  
 +HISILICON V3XX SPI NOR FLASH Controller Driver
 +M:    John Garry <john.garry@huawei.com>
 +W:    http://www.hisilicon.com
 +S:    Maintained
 +F:    drivers/spi/spi-hisi-sfc-v3xx.c
 +
  HISILICON QM AND ZIP Controller DRIVER
  M:    Zhou Wang <wangzhou1@hisilicon.com>
  L:    linux-crypto@vger.kernel.org
@@@ -7866,10 -7834,10 +7865,10 @@@ F:   Documentation/devicetree/bindings/i3
  F:    drivers/i3c/master/dw*
  
  I3C DRIVER FOR CADENCE I3C MASTER IP
 -M:      Przemysław Gaj <pgaj@cadence.com>
 -S:      Maintained
 -F:      Documentation/devicetree/bindings/i3c/cdns,i3c-master.txt
 -F:      drivers/i3c/master/i3c-master-cdns.c
 +M:    Przemysław Gaj <pgaj@cadence.com>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/i3c/cdns,i3c-master.txt
 +F:    drivers/i3c/master/i3c-master-cdns.c
  
  IA64 (Itanium) PLATFORM
  M:    Tony Luck <tony.luck@intel.com>
@@@ -8406,14 -8374,6 +8405,14 @@@ Q:    https://patchwork.kernel.org/project
  S:    Supported
  F:    drivers/dma/ioat*
  
 +INTEL IADX DRIVER
 +M:    Dave Jiang <dave.jiang@intel.com>
 +L:    dmaengine@vger.kernel.org
 +S:    Supported
 +F:    drivers/dma/idxd/*
 +F:    include/uapi/linux/idxd.h
 +F:    include/linux/idxd.h
 +
  INTEL IDLE DRIVER
  M:    Jacob Pan <jacob.jun.pan@linux.intel.com>
  M:    Len Brown <lenb@kernel.org>
@@@ -8595,12 -8555,6 +8594,12 @@@ S:    Maintaine
  F:    arch/x86/include/asm/intel_telemetry.h
  F:    drivers/platform/x86/intel_telemetry*
  
 +INTEL UNCORE FREQUENCY CONTROL
 +M:    Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
 +L:    platform-driver-x86@vger.kernel.org
 +S:    Maintained
 +F:    drivers/platform/x86/intel-uncore-frequency.c
 +
  INTEL VIRTUAL BUTTON DRIVER
  M:    AceLan Kao <acelan.kao@canonical.com>
  L:    platform-driver-x86@vger.kernel.org
@@@ -8608,7 -8562,7 +8607,7 @@@ S:      Maintaine
  F:    drivers/platform/x86/intel-vbtn.c
  
  INTEL WIRELESS 3945ABG/BG, 4965AGN (iwlegacy)
 -M:    Stanislaw Gruszka <sgruszka@redhat.com>
 +M:    Stanislaw Gruszka <stf_xl@wp.pl>
  L:    linux-wireless@vger.kernel.org
  S:    Supported
  F:    drivers/net/wireless/intel/iwlegacy/
@@@ -9083,6 -9037,7 +9082,6 @@@ F:      include/linux/umh.
  
  KERNEL VIRTUAL MACHINE (KVM)
  M:    Paolo Bonzini <pbonzini@redhat.com>
 -M:    Radim Krčmář <rkrcmar@redhat.com>
  L:    kvm@vger.kernel.org
  W:    http://www.linux-kvm.org
  T:    git git://git.kernel.org/pub/scm/virt/kvm/kvm.git
@@@ -9117,9 -9072,9 +9116,9 @@@ F:      virt/kvm/arm
  F:    include/kvm/arm_*
  
  KERNEL VIRTUAL MACHINE FOR MIPS (KVM/mips)
 -M:    James Hogan <jhogan@kernel.org>
  L:    linux-mips@vger.kernel.org
 -S:    Supported
 +L:    kvm@vger.kernel.org
 +S:    Orphan
  F:    arch/mips/include/uapi/asm/kvm*
  F:    arch/mips/include/asm/kvm*
  F:    arch/mips/kvm/
@@@ -9154,6 -9109,7 +9153,6 @@@ F:      tools/testing/selftests/kvm/*/s390x
  
  KERNEL VIRTUAL MACHINE FOR X86 (KVM/x86)
  M:    Paolo Bonzini <pbonzini@redhat.com>
 -M:    Radim Krčmář <rkrcmar@redhat.com>
  R:    Sean Christopherson <sean.j.christopherson@intel.com>
  R:    Vitaly Kuznetsov <vkuznets@redhat.com>
  R:    Wanpeng Li <wanpengli@tencent.com>
@@@ -9171,7 -9127,7 +9170,7 @@@ F:      arch/x86/include/uapi/asm/svm.
  F:    arch/x86/include/asm/kvm*
  F:    arch/x86/include/asm/pvclock-abi.h
  F:    arch/x86/include/asm/svm.h
 -F:    arch/x86/include/asm/vmx.h
 +F:    arch/x86/include/asm/vmx*.h
  F:    arch/x86/kernel/kvm.c
  F:    arch/x86/kernel/kvmclock.c
  
@@@ -10151,7 -10107,6 +10150,7 @@@ S:   Maintaine
  F:    drivers/media/radio/radio-maxiradio*
  
  MCAN MMIO DEVICE DRIVER
 +M:    Dan Murphy <dmurphy@ti.com>
  M:    Sriram Dash <sriram.dash@samsung.com>
  L:    linux-can@vger.kernel.org
  S:    Maintained
@@@ -11182,13 -11137,6 +11181,13 @@@ S: Maintaine
  F:    Documentation/driver-api/serial/moxa-smartio.rst
  F:    drivers/tty/mxser.*
  
 +MONOLITHIC POWER SYSTEM PMIC DRIVER
 +M:    Saravanan Sekar <sravanhome@gmail.com>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/regulator/mpq7920.yaml
 +F:    drivers/regulator/mpq7920.c
 +F:    drivers/regulator/mpq7920.h
 +
  MR800 AVERMEDIA USB FM RADIO DRIVER
  M:    Alexey Klimov <klimov.linux@gmail.com>
  L:    linux-media@vger.kernel.org
@@@ -11477,7 -11425,7 +11476,7 @@@ F:   include/uapi/linux/netrom.
  F:    net/netrom/
  
  NETRONOME ETHERNET DRIVERS
 -M:    Jakub Kicinski <jakub.kicinski@netronome.com>
 +M:    Jakub Kicinski <kuba@kernel.org>
  L:    oss-drivers@netronome.com
  S:    Maintained
  F:    drivers/net/ethernet/netronome/
@@@ -11506,8 -11454,8 +11505,8 @@@ M:   "David S. Miller" <davem@davemloft.n
  L:    netdev@vger.kernel.org
  W:    http://www.linuxfoundation.org/en/Net
  Q:    http://patchwork.ozlabs.org/project/netdev/list/
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git
  S:    Odd Fixes
  F:    Documentation/devicetree/bindings/net/
  F:    drivers/net/
@@@ -11545,12 -11493,11 +11544,12 @@@ F:        drivers/net/dsa
  
  NETWORKING [GENERAL]
  M:    "David S. Miller" <davem@davemloft.net>
 +M:    Jakub Kicinski <kuba@kernel.org>
  L:    netdev@vger.kernel.org
  W:    http://www.linuxfoundation.org/en/Net
  Q:    http://patchwork.ozlabs.org/project/netdev/list/
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git
  B:    mailto:netdev@vger.kernel.org
  S:    Maintained
  F:    net/
@@@ -11595,7 -11542,7 +11594,7 @@@ M:   "David S. Miller" <davem@davemloft.n
  M:    Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
  M:    Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>
  L:    netdev@vger.kernel.org
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git
  S:    Maintained
  F:    net/ipv4/
  F:    net/ipv6/
@@@ -11638,7 -11585,7 +11637,7 @@@ M:   Boris Pismenny <borisp@mellanox.com
  M:    Aviad Yehezkel <aviadye@mellanox.com>
  M:    John Fastabend <john.fastabend@gmail.com>
  M:    Daniel Borkmann <daniel@iogearbox.net>
 -M:    Jakub Kicinski <jakub.kicinski@netronome.com>
 +M:    Jakub Kicinski <kuba@kernel.org>
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    net/tls/*
@@@ -11650,7 -11597,7 +11649,7 @@@ L:   linux-wireless@vger.kernel.or
  Q:    http://patchwork.kernel.org/project/linux-wireless/list/
  
  NETDEVSIM
 -M:    Jakub Kicinski <jakub.kicinski@netronome.com>
 +M:    Jakub Kicinski <kuba@kernel.org>
  S:    Maintained
  F:    drivers/net/netdevsim/*
  
@@@ -11727,7 -11674,7 +11726,7 @@@ F:   Documentation/scsi/NinjaSCSI.tx
  F:    drivers/scsi/nsp32*
  
  NIOS2 ARCHITECTURE
 -M:    Ley Foon Tan <lftan@altera.com>
 +M:    Ley Foon Tan <ley.foon.tan@intel.com>
  L:    nios2-dev@lists.rocketboards.org (moderated for non-subscribers)
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/lftan/nios2.git
  S:    Maintained
@@@ -12445,7 -12392,7 +12444,7 @@@ L:   linux-unionfs@vger.kernel.or
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs.git
  S:    Supported
  F:    fs/overlayfs/
 -F:    Documentation/filesystems/overlayfs.txt
 +F:    Documentation/filesystems/overlayfs.rst
  
  P54 WIRELESS DRIVER
  M:    Christian Lamparter <chunkeey@googlemail.com>
@@@ -12478,7 -12425,7 +12477,7 @@@ L:   linux-crypto@vger.kernel.or
  S:    Maintained
  F:    kernel/padata.c
  F:    include/linux/padata.h
- F:    Documentation/padata.txt
+ F:    Documentation/core-api/padata.rst
  
  PAGE POOL
  M:    Jesper Dangaard Brouer <hawk@kernel.org>
@@@ -12611,7 -12558,7 +12610,7 @@@ F:   Documentation/devicetree/bindings/pc
  F:    drivers/pci/controller/pci-aardvark.c
  
  PCI DRIVER FOR ALTERA PCIE IP
 -M:    Ley Foon Tan <lftan@altera.com>
 +M:    Ley Foon Tan <ley.foon.tan@intel.com>
  L:    rfi@lists.rocketboards.org (moderated for non-subscribers)
  L:    linux-pci@vger.kernel.org
  S:    Supported
@@@ -12790,7 -12737,7 +12789,7 @@@ S:   Supporte
  F:    Documentation/PCI/pci-error-recovery.rst
  
  PCI MSI DRIVER FOR ALTERA MSI IP
 -M:    Ley Foon Tan <lftan@altera.com>
 +M:    Ley Foon Tan <ley.foon.tan@intel.com>
  L:    rfi@lists.rocketboards.org (moderated for non-subscribers)
  L:    linux-pci@vger.kernel.org
  S:    Supported
@@@ -13191,11 -13138,6 +13190,11 @@@ S: Maintaine
  F:    drivers/iio/chemical/pms7003.c
  F:    Documentation/devicetree/bindings/iio/chemical/plantower,pms7003.yaml
  
 +PLX DMA DRIVER
 +M:    Logan Gunthorpe <logang@deltatee.com>
 +S:    Maintained
 +F:    drivers/dma/plx_dma.c
 +
  PMBUS HARDWARE MONITORING DRIVERS
  M:    Guenter Roeck <linux@roeck-us.net>
  L:    linux-hwmon@vger.kernel.org
@@@ -13266,8 -13208,6 +13265,8 @@@ T:   git git://git.kernel.org/pub/scm/lin
  S:    Maintained
  F:    fs/timerfd.c
  F:    include/linux/timer*
 +F:    include/linux/time_namespace.h
 +F:    kernel/time_namespace.c
  F:    kernel/time/*timer*
  
  POWER MANAGEMENT CORE
@@@ -13725,14 -13665,6 +13724,14 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/opp/qcom-nvmem-cpufreq.txt
  F:    drivers/cpufreq/qcom-cpufreq-nvmem.c
  
 +QUALCOMM CORE POWER REDUCTION (CPR) AVS DRIVER
 +M:    Niklas Cassel <nks@flawful.org>
 +L:    linux-pm@vger.kernel.org
 +L:    linux-arm-msm@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/power/avs/qcom,cpr.txt
 +F:    drivers/power/avs/qcom-cpr.c
 +
  QUALCOMM EMAC GIGABIT ETHERNET DRIVER
  M:    Timur Tabi <timur@kernel.org>
  L:    netdev@vger.kernel.org
@@@ -13741,6 -13673,7 +13740,6 @@@ F:   drivers/net/ethernet/qualcomm/emac
  
  QUALCOMM ETHQOS ETHERNET DRIVER
  M:    Vinod Koul <vkoul@kernel.org>
 -M:    Niklas Cassel <niklas.cassel@linaro.org>
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c
@@@ -13774,15 -13707,6 +13773,15 @@@ L: linux-arm-msm@vger.kernel.or
  S:    Maintained
  F:    drivers/iommu/qcom_iommu.c
  
 +QUALCOMM RMNET DRIVER
 +M:    Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
 +M:    Sean Tranchetti <stranche@codeaurora.org>
 +L:    netdev@vger.kernel.org
 +S:    Maintained
 +F:    drivers/net/ethernet/qualcomm/rmnet/
 +F:    Documentation/networking/device_drivers/qualcomm/rmnet.txt
 +F:    include/linux/if_rmnet.h
 +
  QUALCOMM TSENS THERMAL DRIVER
  M:    Amit Kucheria <amit.kucheria@linaro.org>
  L:    linux-pm@vger.kernel.org
@@@ -13882,7 -13806,7 +13881,7 @@@ S:   Maintaine
  F:    arch/mips/ralink
  
  RALINK RT2X00 WIRELESS LAN DRIVER
 -M:    Stanislaw Gruszka <sgruszka@redhat.com>
 +M:    Stanislaw Gruszka <stf_xl@wp.pl>
  M:    Helmut Schaa <helmut.schaa@googlemail.com>
  L:    linux-wireless@vger.kernel.org
  S:    Maintained
@@@ -14182,7 -14106,6 +14181,7 @@@ M:   Paul Walmsley <paul.walmsley@sifive.
  M:    Palmer Dabbelt <palmer@dabbelt.com>
  M:    Albert Ou <aou@eecs.berkeley.edu>
  L:    linux-riscv@lists.infradead.org
 +P:    Documentation/riscv/patch-acceptance.rst
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux.git
  S:    Supported
  F:    arch/riscv/
@@@ -14568,7 -14491,7 +14567,7 @@@ F:   drivers/media/i2c/s5k5baf.
  SAMSUNG S5P Security SubSystem (SSS) DRIVER
  M:    Krzysztof Kozlowski <krzk@kernel.org>
  M:    Vladimir Zapolskiy <vz@mleia.com>
- M:    Kamil Konieczny <k.konieczny@partner.samsung.com>
+ M:    Kamil Konieczny <k.konieczny@samsung.com>
  L:    linux-crypto@vger.kernel.org
  L:    linux-samsung-soc@vger.kernel.org
  S:    Maintained
@@@ -14610,6 -14533,8 +14609,6 @@@ F:   include/linux/platform_data/spi-s3c6
  
  SAMSUNG SXGBE DRIVERS
  M:    Byungho An <bh74.an@samsung.com>
 -M:    Girish K S <ks.giri@samsung.com>
 -M:    Vipul Pandya <vipul.pandya@samsung.com>
  S:    Supported
  L:    netdev@vger.kernel.org
  F:    drivers/net/ethernet/samsung/sxgbe/
@@@ -14880,7 -14805,6 +14879,7 @@@ F:   include/uapi/linux/selinux_netlink.
  F:    security/selinux/
  F:    scripts/selinux/
  F:    Documentation/admin-guide/LSM/SELinux.rst
 +F:    Documentation/ABI/obsolete/sysfs-selinux-disable
  
  SENSABLE PHANTOM
  M:    Jiri Slaby <jirislaby@gmail.com>
@@@ -16389,10 -16313,12 +16388,10 @@@ F:        drivers/media/radio/radio-raremono.
  
  THERMAL
  M:    Zhang Rui <rui.zhang@intel.com>
 -M:    Eduardo Valentin <edubezval@gmail.com>
 -R:    Daniel Lezcano <daniel.lezcano@linaro.org>
 +M:    Daniel Lezcano <daniel.lezcano@linaro.org>
  R:    Amit Kucheria <amit.kucheria@verdurent.com>
  L:    linux-pm@vger.kernel.org
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux.git
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/thermal/linux.git
  Q:    https://patchwork.kernel.org/project/linux-pm/list/
  S:    Supported
  F:    drivers/thermal/
@@@ -16606,13 -16532,6 +16605,13 @@@ L: alsa-devel@alsa-project.org (moderat
  S:    Odd Fixes
  F:    sound/soc/codecs/tas571x*
  
 +TI TCAN4X5X DEVICE DRIVER
 +M:    Dan Murphy <dmurphy@ti.com>
 +L:    linux-can@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/net/can/tcan4x5x.txt
 +F:    drivers/net/can/m_can/tcan4x5x.c
 +
  TI TRF7970A NFC DRIVER
  M:    Mark Greer <mgreer@animalcreek.com>
  L:    linux-wireless@vger.kernel.org
@@@ -16664,7 -16583,7 +16663,7 @@@ F:   kernel/time/ntp.
  F:    tools/testing/selftests/timers/
  
  TIPC NETWORK LAYER
 -M:    Jon Maloy <jon.maloy@ericsson.com>
 +M:    Jon Maloy <jmaloy@redhat.com>
  M:    Ying Xue <ying.xue@windriver.com>
  L:    netdev@vger.kernel.org (core kernel code)
  L:    tipc-discussion@lists.sourceforge.net (user apps, general discussion)
@@@ -18105,7 -18024,7 +18104,7 @@@ XDP (eXpress Data Path
  M:    Alexei Starovoitov <ast@kernel.org>
  M:    Daniel Borkmann <daniel@iogearbox.net>
  M:    David S. Miller <davem@davemloft.net>
 -M:    Jakub Kicinski <jakub.kicinski@netronome.com>
 +M:    Jakub Kicinski <kuba@kernel.org>
  M:    Jesper Dangaard Brouer <hawk@kernel.org>
  M:    John Fastabend <john.fastabend@gmail.com>
  L:    netdev@vger.kernel.org
@@@ -27,14 -27,26 +27,26 @@@ asmlinkage void sha256_block_data_order
                                        unsigned int num_blks);
  EXPORT_SYMBOL(sha256_block_data_order);
  
+ static void __sha256_block_data_order(struct sha256_state *sst, u8 const *src,
+                                     int blocks)
+ {
+       sha256_block_data_order(sst->state, src, blocks);
+ }
  asmlinkage void sha256_block_neon(u32 *digest, const void *data,
                                  unsigned int num_blks);
  
+ static void __sha256_block_neon(struct sha256_state *sst, u8 const *src,
+                               int blocks)
+ {
+       sha256_block_neon(sst->state, src, blocks);
+ }
  static int crypto_sha256_arm64_update(struct shash_desc *desc, const u8 *data,
                                      unsigned int len)
  {
        return sha256_base_do_update(desc, data, len,
-                               (sha256_block_fn *)sha256_block_data_order);
+                                    __sha256_block_data_order);
  }
  
  static int crypto_sha256_arm64_finup(struct shash_desc *desc, const u8 *data,
@@@ -42,9 -54,8 +54,8 @@@
  {
        if (len)
                sha256_base_do_update(desc, data, len,
-                               (sha256_block_fn *)sha256_block_data_order);
-       sha256_base_do_finalize(desc,
-                               (sha256_block_fn *)sha256_block_data_order);
+                                     __sha256_block_data_order);
+       sha256_base_do_finalize(desc, __sha256_block_data_order);
  
        return sha256_base_finish(desc, out);
  }
@@@ -87,7 -98,7 +98,7 @@@ static int sha256_update_neon(struct sh
  
        if (!crypto_simd_usable())
                return sha256_base_do_update(desc, data, len,
-                               (sha256_block_fn *)sha256_block_data_order);
+                               __sha256_block_data_order);
  
        while (len > 0) {
                unsigned int chunk = len;
                 * input when running on a preemptible kernel, but process the
                 * data block by block instead.
                 */
 -              if (IS_ENABLED(CONFIG_PREEMPT) &&
 +              if (IS_ENABLED(CONFIG_PREEMPTION) &&
                    chunk + sctx->count % SHA256_BLOCK_SIZE > SHA256_BLOCK_SIZE)
                        chunk = SHA256_BLOCK_SIZE -
                                sctx->count % SHA256_BLOCK_SIZE;
  
                kernel_neon_begin();
-               sha256_base_do_update(desc, data, chunk,
-                                     (sha256_block_fn *)sha256_block_neon);
+               sha256_base_do_update(desc, data, chunk, __sha256_block_neon);
                kernel_neon_end();
                data += chunk;
                len -= chunk;
@@@ -118,15 -128,13 +128,13 @@@ static int sha256_finup_neon(struct sha
        if (!crypto_simd_usable()) {
                if (len)
                        sha256_base_do_update(desc, data, len,
-                               (sha256_block_fn *)sha256_block_data_order);
-               sha256_base_do_finalize(desc,
-                               (sha256_block_fn *)sha256_block_data_order);
+                               __sha256_block_data_order);
+               sha256_base_do_finalize(desc, __sha256_block_data_order);
        } else {
                if (len)
                        sha256_update_neon(desc, data, len);
                kernel_neon_begin();
-               sha256_base_do_finalize(desc,
-                               (sha256_block_fn *)sha256_block_neon);
+               sha256_base_do_finalize(desc, __sha256_block_neon);
                kernel_neon_end();
        }
        return sha256_base_finish(desc, out);
diff --combined crypto/adiantum.c
@@@ -39,8 -39,6 +39,6 @@@
  #include <crypto/scatterwalk.h>
  #include <linux/module.h>
  
- #include "internal.h"
  /*
   * Size of right-hand part of input data, in bytes; also the size of the block
   * cipher's block size and the hash function's output.
@@@ -64,7 -62,7 +62,7 @@@
  
  struct adiantum_instance_ctx {
        struct crypto_skcipher_spawn streamcipher_spawn;
-       struct crypto_spawn blockcipher_spawn;
+       struct crypto_cipher_spawn blockcipher_spawn;
        struct crypto_shash_spawn hash_spawn;
  };
  
@@@ -72,7 -70,7 +70,7 @@@ struct adiantum_tfm_ctx 
        struct crypto_skcipher *streamcipher;
        struct crypto_cipher *blockcipher;
        struct crypto_shash *hash;
-       struct poly1305_key header_hash_key;
+       struct poly1305_core_key header_hash_key;
  };
  
  struct adiantum_request_ctx {
@@@ -135,9 -133,6 +133,6 @@@ static int adiantum_setkey(struct crypt
                                  crypto_skcipher_get_flags(tfm) &
                                  CRYPTO_TFM_REQ_MASK);
        err = crypto_skcipher_setkey(tctx->streamcipher, key, keylen);
-       crypto_skcipher_set_flags(tfm,
-                               crypto_skcipher_get_flags(tctx->streamcipher) &
-                               CRYPTO_TFM_RES_MASK);
        if (err)
                return err;
  
                                CRYPTO_TFM_REQ_MASK);
        err = crypto_cipher_setkey(tctx->blockcipher, keyp,
                                   BLOCKCIPHER_KEY_SIZE);
-       crypto_skcipher_set_flags(tfm,
-                                 crypto_cipher_get_flags(tctx->blockcipher) &
-                                 CRYPTO_TFM_RES_MASK);
        if (err)
                goto out;
        keyp += BLOCKCIPHER_KEY_SIZE;
        crypto_shash_set_flags(tctx->hash, crypto_skcipher_get_flags(tfm) &
                                           CRYPTO_TFM_REQ_MASK);
        err = crypto_shash_setkey(tctx->hash, keyp, NHPOLY1305_KEY_SIZE);
-       crypto_skcipher_set_flags(tfm, crypto_shash_get_flags(tctx->hash) &
-                                      CRYPTO_TFM_RES_MASK);
        keyp += NHPOLY1305_KEY_SIZE;
        WARN_ON(keyp != &data->derived_keys[ARRAY_SIZE(data->derived_keys)]);
  out:
@@@ -249,7 -239,7 +239,7 @@@ static void adiantum_hash_header(struc
        poly1305_core_blocks(&state, &tctx->header_hash_key, req->iv,
                             TWEAK_SIZE / POLY1305_BLOCK_SIZE, 1);
  
-       poly1305_core_emit(&state, &rctx->header_hash);
+       poly1305_core_emit(&state, NULL, &rctx->header_hash);
  }
  
  /* Hash the left-hand part (the "bulk") of the message using NHPoly1305 */
@@@ -436,10 -426,10 +426,10 @@@ static int adiantum_init_tfm(struct cry
  
        BUILD_BUG_ON(offsetofend(struct adiantum_request_ctx, u) !=
                     sizeof(struct adiantum_request_ctx));
 -      subreq_size = max(FIELD_SIZEOF(struct adiantum_request_ctx,
 +      subreq_size = max(sizeof_field(struct adiantum_request_ctx,
                                       u.hash_desc) +
                          crypto_shash_descsize(hash),
 -                        FIELD_SIZEOF(struct adiantum_request_ctx,
 +                        sizeof_field(struct adiantum_request_ctx,
                                       u.streamcipher_req) +
                          crypto_skcipher_reqsize(streamcipher));
  
@@@ -469,7 -459,7 +459,7 @@@ static void adiantum_free_instance(stru
        struct adiantum_instance_ctx *ictx = skcipher_instance_ctx(inst);
  
        crypto_drop_skcipher(&ictx->streamcipher_spawn);
-       crypto_drop_spawn(&ictx->blockcipher_spawn);
+       crypto_drop_cipher(&ictx->blockcipher_spawn);
        crypto_drop_shash(&ictx->hash_spawn);
        kfree(inst);
  }
@@@ -501,14 -491,12 +491,12 @@@ static bool adiantum_supported_algorith
  static int adiantum_create(struct crypto_template *tmpl, struct rtattr **tb)
  {
        struct crypto_attr_type *algt;
-       const char *streamcipher_name;
-       const char *blockcipher_name;
+       u32 mask;
        const char *nhpoly1305_name;
        struct skcipher_instance *inst;
        struct adiantum_instance_ctx *ictx;
        struct skcipher_alg *streamcipher_alg;
        struct crypto_alg *blockcipher_alg;
-       struct crypto_alg *_hash_alg;
        struct shash_alg *hash_alg;
        int err;
  
        if ((algt->type ^ CRYPTO_ALG_TYPE_SKCIPHER) & algt->mask)
                return -EINVAL;
  
-       streamcipher_name = crypto_attr_alg_name(tb[1]);
-       if (IS_ERR(streamcipher_name))
-               return PTR_ERR(streamcipher_name);
-       blockcipher_name = crypto_attr_alg_name(tb[2]);
-       if (IS_ERR(blockcipher_name))
-               return PTR_ERR(blockcipher_name);
-       nhpoly1305_name = crypto_attr_alg_name(tb[3]);
-       if (nhpoly1305_name == ERR_PTR(-ENOENT))
-               nhpoly1305_name = "nhpoly1305";
-       if (IS_ERR(nhpoly1305_name))
-               return PTR_ERR(nhpoly1305_name);
+       mask = crypto_requires_sync(algt->type, algt->mask);
  
        inst = kzalloc(sizeof(*inst) + sizeof(*ictx), GFP_KERNEL);
        if (!inst)
        ictx = skcipher_instance_ctx(inst);
  
        /* Stream cipher, e.g. "xchacha12" */
-       crypto_set_skcipher_spawn(&ictx->streamcipher_spawn,
-                                 skcipher_crypto_instance(inst));
-       err = crypto_grab_skcipher(&ictx->streamcipher_spawn, streamcipher_name,
-                                  0, crypto_requires_sync(algt->type,
-                                                          algt->mask));
+       err = crypto_grab_skcipher(&ictx->streamcipher_spawn,
+                                  skcipher_crypto_instance(inst),
+                                  crypto_attr_alg_name(tb[1]), 0, mask);
        if (err)
-               goto out_free_inst;
+               goto err_free_inst;
        streamcipher_alg = crypto_spawn_skcipher_alg(&ictx->streamcipher_spawn);
  
        /* Block cipher, e.g. "aes" */
-       crypto_set_spawn(&ictx->blockcipher_spawn,
-                        skcipher_crypto_instance(inst));
-       err = crypto_grab_spawn(&ictx->blockcipher_spawn, blockcipher_name,
-                               CRYPTO_ALG_TYPE_CIPHER, CRYPTO_ALG_TYPE_MASK);
+       err = crypto_grab_cipher(&ictx->blockcipher_spawn,
+                                skcipher_crypto_instance(inst),
+                                crypto_attr_alg_name(tb[2]), 0, mask);
        if (err)
-               goto out_drop_streamcipher;
-       blockcipher_alg = ictx->blockcipher_spawn.alg;
+               goto err_free_inst;
+       blockcipher_alg = crypto_spawn_cipher_alg(&ictx->blockcipher_spawn);
  
        /* NHPoly1305 ε-∆U hash function */
-       _hash_alg = crypto_alg_mod_lookup(nhpoly1305_name,
-                                         CRYPTO_ALG_TYPE_SHASH,
-                                         CRYPTO_ALG_TYPE_MASK);
-       if (IS_ERR(_hash_alg)) {
-               err = PTR_ERR(_hash_alg);
-               goto out_drop_blockcipher;
-       }
-       hash_alg = __crypto_shash_alg(_hash_alg);
-       err = crypto_init_shash_spawn(&ictx->hash_spawn, hash_alg,
-                                     skcipher_crypto_instance(inst));
+       nhpoly1305_name = crypto_attr_alg_name(tb[3]);
+       if (nhpoly1305_name == ERR_PTR(-ENOENT))
+               nhpoly1305_name = "nhpoly1305";
+       err = crypto_grab_shash(&ictx->hash_spawn,
+                               skcipher_crypto_instance(inst),
+                               nhpoly1305_name, 0, mask);
        if (err)
-               goto out_put_hash;
+               goto err_free_inst;
+       hash_alg = crypto_spawn_shash_alg(&ictx->hash_spawn);
  
        /* Check the set of algorithms */
        if (!adiantum_supported_algorithms(streamcipher_alg, blockcipher_alg,
                        streamcipher_alg->base.cra_name,
                        blockcipher_alg->cra_name, hash_alg->base.cra_name);
                err = -EINVAL;
-               goto out_drop_hash;
+               goto err_free_inst;
        }
  
        /* Instance fields */
        if (snprintf(inst->alg.base.cra_name, CRYPTO_MAX_ALG_NAME,
                     "adiantum(%s,%s)", streamcipher_alg->base.cra_name,
                     blockcipher_alg->cra_name) >= CRYPTO_MAX_ALG_NAME)
-               goto out_drop_hash;
+               goto err_free_inst;
        if (snprintf(inst->alg.base.cra_driver_name, CRYPTO_MAX_ALG_NAME,
                     "adiantum(%s,%s,%s)",
                     streamcipher_alg->base.cra_driver_name,
                     blockcipher_alg->cra_driver_name,
                     hash_alg->base.cra_driver_name) >= CRYPTO_MAX_ALG_NAME)
-               goto out_drop_hash;
+               goto err_free_inst;
  
        inst->alg.base.cra_flags = streamcipher_alg->base.cra_flags &
                                   CRYPTO_ALG_ASYNC;
        inst->free = adiantum_free_instance;
  
        err = skcipher_register_instance(tmpl, inst);
-       if (err)
-               goto out_drop_hash;
-       crypto_mod_put(_hash_alg);
-       return 0;
- out_drop_hash:
-       crypto_drop_shash(&ictx->hash_spawn);
- out_put_hash:
-       crypto_mod_put(_hash_alg);
- out_drop_blockcipher:
-       crypto_drop_spawn(&ictx->blockcipher_spawn);
- out_drop_streamcipher:
-       crypto_drop_skcipher(&ictx->streamcipher_spawn);
- out_free_inst:
-       kfree(inst);
+       if (err) {
+ err_free_inst:
+               adiantum_free_instance(inst);
+       }
        return err;
  }
  
diff --combined crypto/essiv.c
@@@ -75,9 -75,6 +75,6 @@@ static int essiv_skcipher_setkey(struc
                                  crypto_skcipher_get_flags(tfm) &
                                  CRYPTO_TFM_REQ_MASK);
        err = crypto_skcipher_setkey(tctx->u.skcipher, key, keylen);
-       crypto_skcipher_set_flags(tfm,
-                                 crypto_skcipher_get_flags(tctx->u.skcipher) &
-                                 CRYPTO_TFM_RES_MASK);
        if (err)
                return err;
  
        crypto_cipher_set_flags(tctx->essiv_cipher,
                                crypto_skcipher_get_flags(tfm) &
                                CRYPTO_TFM_REQ_MASK);
-       err = crypto_cipher_setkey(tctx->essiv_cipher, salt,
-                                  crypto_shash_digestsize(tctx->hash));
-       crypto_skcipher_set_flags(tfm,
-                                 crypto_cipher_get_flags(tctx->essiv_cipher) &
-                                 CRYPTO_TFM_RES_MASK);
-       return err;
+       return crypto_cipher_setkey(tctx->essiv_cipher, salt,
+                                   crypto_shash_digestsize(tctx->hash));
  }
  
  static int essiv_aead_setkey(struct crypto_aead *tfm, const u8 *key,
        crypto_aead_set_flags(tctx->u.aead, crypto_aead_get_flags(tfm) &
                                            CRYPTO_TFM_REQ_MASK);
        err = crypto_aead_setkey(tctx->u.aead, key, keylen);
-       crypto_aead_set_flags(tfm, crypto_aead_get_flags(tctx->u.aead) &
-                                  CRYPTO_TFM_RES_MASK);
        if (err)
                return err;
  
-       if (crypto_authenc_extractkeys(&keys, key, keylen) != 0) {
-               crypto_aead_set_flags(tfm, CRYPTO_TFM_RES_BAD_KEY_LEN);
+       if (crypto_authenc_extractkeys(&keys, key, keylen) != 0)
                return -EINVAL;
-       }
  
        desc->tfm = tctx->hash;
        err = crypto_shash_init(desc) ?:
        crypto_cipher_clear_flags(tctx->essiv_cipher, CRYPTO_TFM_REQ_MASK);
        crypto_cipher_set_flags(tctx->essiv_cipher, crypto_aead_get_flags(tfm) &
                                                    CRYPTO_TFM_REQ_MASK);
-       err = crypto_cipher_setkey(tctx->essiv_cipher, salt,
-                                  crypto_shash_digestsize(tctx->hash));
-       crypto_aead_set_flags(tfm, crypto_cipher_get_flags(tctx->essiv_cipher) &
-                                  CRYPTO_TFM_RES_MASK);
-       return err;
+       return crypto_cipher_setkey(tctx->essiv_cipher, salt,
+                                   crypto_shash_digestsize(tctx->hash));
  }
  
  static int essiv_aead_setauthsize(struct crypto_aead *tfm,
@@@ -347,7 -331,7 +331,7 @@@ static int essiv_aead_init_tfm(struct c
        if (IS_ERR(aead))
                return PTR_ERR(aead);
  
 -      subreq_size = FIELD_SIZEOF(struct essiv_aead_request_ctx, aead_req) +
 +      subreq_size = sizeof_field(struct essiv_aead_request_ctx, aead_req) +
                      crypto_aead_reqsize(aead);
  
        tctx->ivoffset = offsetof(struct essiv_aead_request_ctx, aead_req) +
@@@ -442,7 -426,7 +426,7 @@@ static bool essiv_supported_algorithms(
        if (ivsize != alg->cra_blocksize)
                goto out;
  
-       if (crypto_shash_alg_has_setkey(hash_alg))
+       if (crypto_shash_alg_needs_key(hash_alg))
                goto out;
  
        ret = true;
@@@ -468,6 -452,7 +452,7 @@@ static int essiv_create(struct crypto_t
        struct shash_alg *hash_alg;
        int ivsize;
        u32 type;
+       u32 mask;
        int err;
  
        algt = crypto_get_attr_type(tb);
                return PTR_ERR(shash_name);
  
        type = algt->type & algt->mask;
+       mask = crypto_requires_sync(algt->type, algt->mask);
  
        switch (type) {
        case CRYPTO_ALG_TYPE_SKCIPHER:
                ictx = crypto_instance_ctx(inst);
  
                /* Symmetric cipher, e.g., "cbc(aes)" */
-               crypto_set_skcipher_spawn(&ictx->u.skcipher_spawn, inst);
-               err = crypto_grab_skcipher(&ictx->u.skcipher_spawn,
-                                          inner_cipher_name, 0,
-                                          crypto_requires_sync(algt->type,
-                                                               algt->mask));
+               err = crypto_grab_skcipher(&ictx->u.skcipher_spawn, inst,
+                                          inner_cipher_name, 0, mask);
                if (err)
                        goto out_free_inst;
                skcipher_alg = crypto_spawn_skcipher_alg(&ictx->u.skcipher_spawn);
                ictx = crypto_instance_ctx(inst);
  
                /* AEAD cipher, e.g., "authenc(hmac(sha256),cbc(aes))" */
-               crypto_set_aead_spawn(&ictx->u.aead_spawn, inst);
-               err = crypto_grab_aead(&ictx->u.aead_spawn,
-                                      inner_cipher_name, 0,
-                                      crypto_requires_sync(algt->type,
-                                                           algt->mask));
+               err = crypto_grab_aead(&ictx->u.aead_spawn, inst,
+                                      inner_cipher_name, 0, mask);
                if (err)
                        goto out_free_inst;
                aead_alg = crypto_spawn_aead_alg(&ictx->u.aead_spawn);