Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 25 Oct 2018 23:43:35 +0000 (16:43 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 25 Oct 2018 23:43:35 +0000 (16:43 -0700)
Pull crypto updates from Herbert Xu:
 "API:
   - Remove VLA usage
   - Add cryptostat user-space interface
   - Add notifier for new crypto algorithms

  Algorithms:
   - Add OFB mode
   - Remove speck

  Drivers:
   - Remove x86/sha*-mb as they are buggy
   - Remove pcbc(aes) from x86/aesni
   - Improve performance of arm/ghash-ce by up to 85%
   - Implement CTS-CBC in arm64/aes-blk, faster by up to 50%
   - Remove PMULL based arm64/crc32 driver
   - Use PMULL in arm64/crct10dif
   - Add aes-ctr support in s5p-sss
   - Add caam/qi2 driver

  Others:
   - Pick better transform if one becomes available in crc-t10dif"

* 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (124 commits)
  crypto: chelsio - Update ntx queue received from cxgb4
  crypto: ccree - avoid implicit enum conversion
  crypto: caam - add SPDX license identifier to all files
  crypto: caam/qi - simplify CGR allocation, freeing
  crypto: mxs-dcp - make symbols 'sha1_null_hash' and 'sha256_null_hash' static
  crypto: arm64/aes-blk - ensure XTS mask is always loaded
  crypto: testmgr - fix sizeof() on COMP_BUF_SIZE
  crypto: chtls - remove set but not used variable 'csk'
  crypto: axis - fix platform_no_drv_owner.cocci warnings
  crypto: x86/aes-ni - fix build error following fpu template removal
  crypto: arm64/aes - fix handling sub-block CTS-CBC inputs
  crypto: caam/qi2 - avoid double export
  crypto: mxs-dcp - Fix AES issues
  crypto: mxs-dcp - Fix SHA null hashes and output length
  crypto: mxs-dcp - Implement sha import/export
  crypto: aegis/generic - fix for big endian systems
  crypto: morus/generic - fix for big endian systems
  crypto: lrw - fix rebase error after out of bounds fix
  crypto: cavium/nitrox - use pci_alloc_irq_vectors() while enabling MSI-X.
  crypto: cavium/nitrox - NITROX command queue changes.
  ...

1  2 
MAINTAINERS
arch/s390/defconfig
drivers/char/random.c
drivers/crypto/chelsio/chcr_core.c
drivers/md/dm-integrity.c
drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.c
include/linux/compiler_types.h
net/rxrpc/ar-internal.h

diff --combined MAINTAINERS
index 99540a5a4e19e9dd06af672dcea7df58f1debbac,9c91490baa3d7320f4d48e7910a61087039e8076..8f22f6af3782104927b4fa37fbe3c2df27f98a86
@@@ -324,6 -324,7 +324,6 @@@ F: Documentation/ABI/testing/sysfs-bus-
  F:    Documentation/ABI/testing/configfs-acpi
  F:    drivers/pci/*acpi*
  F:    drivers/pci/*/*acpi*
 -F:    drivers/pci/*/*/*acpi*
  F:    tools/power/acpi/
  
  ACPI APEI
@@@ -839,7 -840,7 +839,7 @@@ ANALOG DEVICES INC ADGS1408 DRIVE
  M:    Mircea Caprioru <mircea.caprioru@analog.com>
  S:    Supported
  F:    drivers/mux/adgs1408.c
 -F:    Documentation/devicetree/bindings/mux/adgs1408.txt
 +F:    Documentation/devicetree/bindings/mux/adi,adgs1408.txt
  
  ANALOG DEVICES INC ADP5061 DRIVER
  M:    Stefan Popa <stefan.popa@analog.com>
@@@ -1180,7 -1181,7 +1180,7 @@@ N:      ow
  F:    arch/arm/mach-actions/
  F:    arch/arm/boot/dts/owl-*
  F:    arch/arm64/boot/dts/actions/
 -F:    drivers/clocksource/owl-*
 +F:    drivers/clocksource/timer-owl*
  F:    drivers/pinctrl/actions/*
  F:    drivers/soc/actions/
  F:    include/dt-bindings/power/owl-*
@@@ -1250,7 -1251,7 +1250,7 @@@ N:      meso
  
  ARM/Annapurna Labs ALPINE ARCHITECTURE
  M:    Tsahee Zidenberg <tsahee@annapurnalabs.com>
 -M:    Antoine Tenart <antoine.tenart@free-electrons.com>
 +M:    Antoine Tenart <antoine.tenart@bootlin.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm/mach-alpine/
@@@ -1603,7 -1604,7 +1603,7 @@@ L:      linux-arm-kernel@lists.infradead.or
  S:    Maintained
  F:    arch/arm/boot/dts/lpc43*
  F:    drivers/clk/nxp/clk-lpc18xx*
 -F:    drivers/clocksource/time-lpc32xx.c
 +F:    drivers/clocksource/timer-lpc32xx.c
  F:    drivers/i2c/busses/i2c-lpc2k.c
  F:    drivers/memory/pl172.c
  F:    drivers/mtd/spi-nor/nxp-spifi.c
@@@ -2195,7 -2196,6 +2195,7 @@@ F:      drivers/clk/uniphier
  F:    drivers/gpio/gpio-uniphier.c
  F:    drivers/i2c/busses/i2c-uniphier*
  F:    drivers/irqchip/irq-uniphier-aidet.c
 +F:    drivers/mmc/host/uniphier-sd.c
  F:    drivers/pinctrl/uniphier/
  F:    drivers/reset/reset-uniphier.c
  F:    drivers/tty/serial/8250/8250_uniphier.c
@@@ -2220,7 -2220,7 +2220,7 @@@ F:      arch/arm/mach-vexpress
  F:    */*/vexpress*
  F:    */*/*/vexpress*
  F:    drivers/clk/versatile/clk-vexpress-osc.c
 -F:    drivers/clocksource/versatile.c
 +F:    drivers/clocksource/timer-versatile.c
  N:    mps2
  
  ARM/VFP SUPPORT
@@@ -2242,7 -2242,7 +2242,7 @@@ M:      Tony Prisk <linux@prisktech.co.nz
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm/mach-vt8500/
 -F:    drivers/clocksource/vt8500_timer.c
 +F:    drivers/clocksource/timer-vt8500.c
  F:    drivers/i2c/busses/i2c-wmt.c
  F:    drivers/mmc/host/wmt-sdmmc.c
  F:    drivers/pwm/pwm-vt8500.c
@@@ -2307,11 -2307,10 +2307,11 @@@ F:   drivers/cpuidle/cpuidle-zynq.
  F:    drivers/block/xsysace.c
  N:    zynq
  N:    xilinx
 -F:    drivers/clocksource/cadence_ttc_timer.c
 +F:    drivers/clocksource/timer-cadence-ttc.c
  F:    drivers/i2c/busses/i2c-cadence.c
  F:    drivers/mmc/host/sdhci-of-arasan.c
  F:    drivers/edac/synopsys_edac.c
 +F:    drivers/i2c/busses/i2c-xiic.c
  
  ARM64 PORT (AARCH64 ARCHITECTURE)
  M:    Catalin Marinas <catalin.marinas@arm.com>
@@@ -2956,6 -2955,7 +2956,6 @@@ F:      include/linux/bcm963xx_tag.
  
  BROADCOM BNX2 GIGABIT ETHERNET DRIVER
  M:    Rasesh Mody <rasesh.mody@cavium.com>
 -M:    Harish Patil <harish.patil@cavium.com>
  M:    Dept-GELinuxNICDev@cavium.com
  L:    netdev@vger.kernel.org
  S:    Supported
@@@ -2976,7 -2976,6 +2976,7 @@@ F:      drivers/scsi/bnx2i
  
  BROADCOM BNX2X 10 GIGABIT ETHERNET DRIVER
  M:    Ariel Elior <ariel.elior@cavium.com>
 +M:    Sudarsana Kalluru <sudarsana.kalluru@cavium.com>
  M:    everest-linux-l2@cavium.com
  L:    netdev@vger.kernel.org
  S:    Supported
@@@ -3007,14 -3006,6 +3007,14 @@@ S:    Supporte
  F:    drivers/gpio/gpio-brcmstb.c
  F:    Documentation/devicetree/bindings/gpio/brcm,brcmstb-gpio.txt
  
 +BROADCOM BRCMSTB I2C DRIVER
 +M:    Kamal Dasu <kdasu.kdev@gmail.com>
 +L:    linux-i2c@vger.kernel.org
 +L:    bcm-kernel-feedback-list@broadcom.com
 +S:    Supported
 +F:    drivers/i2c/busses/i2c-brcmstb.c
 +F:    Documentation/devicetree/bindings/i2c/i2c-brcmstb.txt
 +
  BROADCOM BRCMSTB USB2 and USB3 PHY DRIVER
  M:    Al Cooper <alcooperx@gmail.com>
  L:    linux-kernel@vger.kernel.org
@@@ -3122,15 -3113,6 +3122,15 @@@ S:    Maintaine
  F:    Documentation/devicetree/bindings/memory-controllers/brcm,dpfe-cpu.txt
  F:    drivers/memory/brcmstb_dpfe.c
  
 +BROADCOM SPI DRIVER
 +M:    Kamal Dasu <kdasu.kdev@gmail.com>
 +M:    bcm-kernel-feedback-list@broadcom.com
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/spi/brcm,spi-bcm-qspi.txt
 +F:    drivers/spi/spi-bcm-qspi.*
 +F:    drivers/spi/spi-brcmstb-qspi.c
 +F:    drivers/spi/spi-iproc-qspi.c
 +
  BROADCOM SYSTEMPORT ETHERNET DRIVER
  M:    Florian Fainelli <f.fainelli@gmail.com>
  L:    netdev@vger.kernel.org
@@@ -3691,12 -3673,6 +3691,12 @@@ S:    Maintaine
  F:    Documentation/devicetree/bindings/media/coda.txt
  F:    drivers/media/platform/coda/
  
 +CODE OF CONDUCT
 +M:    Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 +S:    Supported
 +F:    Documentation/process/code-of-conduct.rst
 +F:    Documentation/process/code-of-conduct-interpretation.rst
 +
  COMMON CLK FRAMEWORK
  M:    Michael Turquette <mturquette@baylibre.com>
  M:    Stephen Boyd <sboyd@kernel.org>
@@@ -4055,7 -4031,7 +4055,7 @@@ M:      Uma Krishnan <ukrishn@linux.vnet.ibm
  L:    linux-scsi@vger.kernel.org
  S:    Supported
  F:    drivers/scsi/cxlflash/
 -F:    include/uapi/scsi/cxlflash_ioctls.h
 +F:    include/uapi/scsi/cxlflash_ioctl.h
  F:    Documentation/powerpc/cxlflash.txt
  
  CYBERPRO FB DRIVER
@@@ -4194,11 -4170,6 +4194,11 @@@ S:    Maintaine
  F:    drivers/platform/x86/dell-smbios-wmi.c
  F:    tools/wmi/dell-smbios-example.c
  
 +DEFZA FDDI NETWORK DRIVER
 +M:    "Maciej W. Rozycki" <macro@linux-mips.org>
 +S:    Maintained
 +F:    drivers/net/fddi/defza.*
 +
  DELL LAPTOP DRIVER
  M:    Matthew Garrett <mjg59@srcf.ucam.org>
  M:    Pali Rohár <pali.rohar@gmail.com>
@@@ -4514,12 -4485,11 +4514,12 @@@ S:   Maintaine
  F:    Documentation/
  F:    scripts/kernel-doc
  X:    Documentation/ABI/
 +X:    Documentation/acpi/
  X:    Documentation/devicetree/
 -X:    Documentation/acpi
 -X:    Documentation/power
 -X:    Documentation/spi
 -X:    Documentation/media
 +X:    Documentation/i2c/
 +X:    Documentation/media/
 +X:    Documentation/power/
 +X:    Documentation/spi/
  T:    git git://git.lwn.net/linux.git docs-next
  
  DOCUMENTATION/ITALIAN
@@@ -4557,13 -4527,9 +4557,13 @@@ F:    drivers/soc/fsl/dpi
  
  DPAA2 ETHERNET DRIVER
  M:    Ioana Radulescu <ruxandra.radulescu@nxp.com>
 -L:    linux-kernel@vger.kernel.org
 +L:    netdev@vger.kernel.org
  S:    Maintained
 -F:    drivers/staging/fsl-dpaa2/ethernet
 +F:    drivers/net/ethernet/freescale/dpaa2/dpaa2-eth*
 +F:    drivers/net/ethernet/freescale/dpaa2/dpni*
 +F:    drivers/net/ethernet/freescale/dpaa2/dpkg.h
 +F:    drivers/net/ethernet/freescale/dpaa2/Makefile
 +F:    drivers/net/ethernet/freescale/dpaa2/Kconfig
  
  DPAA2 ETHERNET SWITCH DRIVER
  M:    Ioana Radulescu <ruxandra.radulescu@nxp.com>
@@@ -4574,10 -4540,9 +4574,10 @@@ F:    drivers/staging/fsl-dpaa2/eths
  
  DPAA2 PTP CLOCK DRIVER
  M:    Yangbo Lu <yangbo.lu@nxp.com>
 -L:    linux-kernel@vger.kernel.org
 +L:    netdev@vger.kernel.org
  S:    Maintained
 -F:    drivers/staging/fsl-dpaa2/rtc
 +F:    drivers/net/ethernet/freescale/dpaa2/dpaa2-ptp*
 +F:    drivers/net/ethernet/freescale/dpaa2/dprtc*
  
  DPT_I2O SCSI RAID DRIVER
  M:    Adaptec OEM Raid Solutions <aacraid@microsemi.com>
@@@ -5364,8 -5329,7 +5364,8 @@@ S:      Maintaine
  F:    drivers/edac/r82600_edac.c
  
  EDAC-SBRIDGE
 -M:    Mauro Carvalho Chehab <mchehab@kernel.org>
 +M:    Tony Luck <tony.luck@intel.com>
 +R:    Qiuxu Zhuo <qiuxu.zhuo@intel.com>
  L:    linux-edac@vger.kernel.org
  S:    Maintained
  F:    drivers/edac/sb_edac.c
@@@ -5505,8 -5469,7 +5505,8 @@@ S:      Odd Fixe
  F:    drivers/net/ethernet/agere/
  
  ETHERNET BRIDGE
 -M:    Stephen Hemminger <stephen@networkplumber.org>
 +M:    Roopa Prabhu <roopa@cumulusnetworks.com>
 +M:    Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
  L:    bridge@lists.linux-foundation.org (moderated for non-subscribers)
  L:    netdev@vger.kernel.org
  W:    http://www.linuxfoundation.org/en/Net:Bridge
@@@ -5550,7 -5513,7 +5550,7 @@@ W:      http://ext4.wiki.kernel.or
  Q:    http://patchwork.ozlabs.org/project/linux-ext4/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4.git
  S:    Maintained
 -F:    Documentation/filesystems/ext4.txt
 +F:    Documentation/filesystems/ext4/ext4.rst
  F:    fs/ext4/
  
  Extended Verification Module (EVM)
@@@ -5661,8 -5624,6 +5661,8 @@@ F:      lib/fault-inject.
  
  FBTFT Framebuffer drivers
  M:    Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
 +L:    dri-devel@lists.freedesktop.org
 +L:    linux-fbdev@vger.kernel.org
  S:    Maintained
  F:    drivers/staging/fbtft/
  
@@@ -6098,7 -6059,7 +6098,7 @@@ F:      Documentation/gcc-plugins.tx
  
  GASKET DRIVER FRAMEWORK
  M:    Rob Springer <rspringer@google.com>
 -M:    John Joseph <jnjoseph@google.com>
 +M:    Todd Poynor <toddpoynor@google.com>
  M:    Ben Chan <benchan@chromium.org>
  S:    Maintained
  F:    drivers/staging/gasket/
@@@ -6490,7 -6451,6 +6490,7 @@@ F:      Documentation/devicetree/bindings/hw
  F:    Documentation/hwmon/
  F:    drivers/hwmon/
  F:    include/linux/hwmon*.h
 +F:    include/trace/events/hwmon*.h
  
  HARDWARE RANDOM NUMBER GENERATOR CORE
  M:    Matt Mackall <mpm@selenic.com>
@@@ -6799,12 -6759,6 +6799,12 @@@ S:    Maintaine
  F:    mm/memory-failure.c
  F:    mm/hwpoison-inject.c
  
 +HYGON PROCESSOR SUPPORT
 +M:    Pu Wen <puwen@hygon.cn>
 +L:    linux-kernel@vger.kernel.org
 +S:    Maintained
 +F:    arch/x86/kernel/cpu/hygon.c
 +
  Hyper-V CORE AND DRIVERS
  M:    "K. Y. Srinivasan" <kys@microsoft.com>
  M:    Haiyang Zhang <haiyangz@microsoft.com>
@@@ -7061,20 -7015,6 +7061,20 @@@ F:    drivers/crypto/vmx/aes
  F:    drivers/crypto/vmx/ghash*
  F:    drivers/crypto/vmx/ppc-xlate.pl
  
 +IBM Power PCI Hotplug Driver for RPA-compliant PPC64 platform
 +M:    Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
 +L:    linux-pci@vger.kernel.org
 +L:    linuxppc-dev@lists.ozlabs.org
 +S:    Supported
 +F:    drivers/pci/hotplug/rpaphp*
 +
 +IBM Power IO DLPAR Driver for RPA-compliant PPC64 platform
 +M:    Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
 +L:    linux-pci@vger.kernel.org
 +L:    linuxppc-dev@lists.ozlabs.org
 +S:    Supported
 +F:    drivers/pci/hotplug/rpadlpar*
 +
  IBM ServeRAID RAID DRIVER
  S:    Orphan
  F:    drivers/scsi/ips.*
@@@ -7384,16 -7324,15 +7384,16 @@@ T:   git git://git.kernel.org/pub/scm/lin
  S:    Supported
  F:    Documentation/networking/e100.rst
  F:    Documentation/networking/e1000.rst
 -F:    Documentation/networking/e1000e.txt
 -F:    Documentation/networking/igb.txt
 -F:    Documentation/networking/igbvf.txt
 -F:    Documentation/networking/ixgb.txt
 -F:    Documentation/networking/ixgbe.txt
 -F:    Documentation/networking/ixgbevf.txt
 -F:    Documentation/networking/i40e.txt
 -F:    Documentation/networking/i40evf.txt
 -F:    Documentation/networking/ice.txt
 +F:    Documentation/networking/e1000e.rst
 +F:    Documentation/networking/fm10k.rst
 +F:    Documentation/networking/igb.rst
 +F:    Documentation/networking/igbvf.rst
 +F:    Documentation/networking/ixgb.rst
 +F:    Documentation/networking/ixgbe.rst
 +F:    Documentation/networking/ixgbevf.rst
 +F:    Documentation/networking/i40e.rst
 +F:    Documentation/networking/iavf.rst
 +F:    Documentation/networking/ice.rst
  F:    drivers/net/ethernet/intel/
  F:    drivers/net/ethernet/intel/*/
  F:    include/linux/avf/virtchnl.h
@@@ -7415,12 -7354,6 +7415,12 @@@ T:    git https://github.com/intel/gvt-lin
  S:    Supported
  F:    drivers/gpu/drm/i915/gvt/
  
 +INTEL PMIC GPIO DRIVER
 +R:    Andy Shevchenko <andriy.shevchenko@linux.intel.com>
 +S:    Maintained
 +F:    drivers/gpio/gpio-*cove.c
 +F:    drivers/gpio/gpio-msic.c
 +
  INTEL HID EVENT DRIVER
  M:    Alex Hung <alex.hung@canonical.com>
  L:    platform-driver-x86@vger.kernel.org
@@@ -7547,14 -7480,6 +7547,14 @@@ F:    drivers/platform/x86/intel_punit_ipc
  F:    arch/x86/include/asm/intel_pmc_ipc.h
  F:    arch/x86/include/asm/intel_punit_ipc.h
  
 +INTEL MULTIFUNCTION PMIC DEVICE DRIVERS
 +R:    Andy Shevchenko <andriy.shevchenko@linux.intel.com>
 +S:    Maintained
 +F:    drivers/mfd/intel_msic.c
 +F:    drivers/mfd/intel_soc_pmic*
 +F:    include/linux/mfd/intel_msic.h
 +F:    include/linux/mfd/intel_soc_pmic*
 +
  INTEL PRO/WIRELESS 2100, 2200BG, 2915ABG NETWORK CONNECTION SUPPORT
  M:    Stanislav Yakovlev <stas.yakovlev@gmail.com>
  L:    linux-wireless@vger.kernel.org
@@@ -7578,14 -7503,6 +7578,6 @@@ S:     Supporte
  F:    drivers/infiniband/hw/i40iw/
  F:    include/uapi/rdma/i40iw-abi.h
  
- INTEL SHA MULTIBUFFER DRIVER
- M:    Megha Dey <megha.dey@linux.intel.com>
- R:    Tim Chen <tim.c.chen@linux.intel.com>
- L:    linux-crypto@vger.kernel.org
- S:    Supported
- F:    arch/x86/crypto/sha*-mb/
- F:    crypto/mcryptd.c
  INTEL TELEMETRY DRIVER
  M:    Souvik Kumar Chakravarty <souvik.k.chakravarty@intel.com>
  L:    platform-driver-x86@vger.kernel.org
@@@ -7693,7 -7610,6 +7685,7 @@@ M:      Corey Minyard <minyard@acm.org
  L:    openipmi-developer@lists.sourceforge.net (moderated for non-subscribers)
  W:    http://openipmi.sourceforge.net/
  S:    Supported
 +F:    Documentation/devicetree/bindings/ipmi/
  F:    Documentation/IPMI.txt
  F:    drivers/char/ipmi/
  F:    include/linux/ipmi*
@@@ -8165,7 -8081,6 +8157,7 @@@ F:      security/keys/encrypted-keys
  
  KEYS-TRUSTED
  M:    James Bottomley <jejb@linux.vnet.ibm.com>
 +M:      Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
  M:    Mimi Zohar <zohar@linux.vnet.ibm.com>
  L:    linux-integrity@vger.kernel.org
  L:    keyrings@vger.kernel.org
@@@ -8243,25 -8158,6 +8235,25 @@@ S:    Maintaine
  F:    net/l3mdev
  F:    include/net/l3mdev.h
  
 +L7 BPF FRAMEWORK
 +M:    John Fastabend <john.fastabend@gmail.com>
 +M:    Daniel Borkmann <daniel@iogearbox.net>
 +L:    netdev@vger.kernel.org
 +S:    Maintained
 +F:    include/linux/skmsg.h
 +F:    net/core/skmsg.c
 +F:    net/core/sock_map.c
 +F:    net/ipv4/tcp_bpf.c
 +
 +LANTIQ / INTEL Ethernet drivers
 +M:    Hauke Mehrtens <hauke@hauke-m.de>
 +L:    netdev@vger.kernel.org
 +S:    Maintained
 +F:    net/dsa/tag_gswip.c
 +F:    drivers/net/ethernet/lantiq_xrx200.c
 +F:    drivers/net/dsa/lantiq_pce.h
 +F:    drivers/net/dsa/lantiq_gswip.c
 +
  LANTIQ MIPS ARCHITECTURE
  M:    John Crispin <john@phrozen.org>
  L:    linux-mips@linux-mips.org
@@@ -8395,7 -8291,7 +8387,7 @@@ F:      include/linux/libata.
  F:    Documentation/devicetree/bindings/ata/
  
  LIBLOCKDEP
 -M:    Sasha Levin <alexander.levin@verizon.com>
 +M:    Sasha Levin <alexander.levin@microsoft.com>
  S:    Maintained
  F:    tools/lib/lockdep/
  
@@@ -8677,6 -8573,7 +8669,6 @@@ F:      include/linux/spinlock*.
  F:    arch/*/include/asm/spinlock*.h
  F:    include/linux/rwlock*.h
  F:    include/linux/mutex*.h
 -F:    arch/*/include/asm/mutex*.h
  F:    include/linux/rwsem*.h
  F:    arch/*/include/asm/rwsem.h
  F:    include/linux/seqlock.h
@@@ -8822,7 -8719,7 +8814,7 @@@ M:      Vivien Didelot <vivien.didelot@savoi
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    drivers/net/dsa/mv88e6xxx/
 -F:    linux/platform_data/mv88e6xxx.h
 +F:    include/linux/platform_data/mv88e6xxx.h
  F:    Documentation/devicetree/bindings/net/dsa/marvell.txt
  
  MARVELL ARMADA DRM SUPPORT
@@@ -8912,15 -8809,6 +8904,15 @@@ S:    Supporte
  F:    drivers/mmc/host/sdhci-xenon*
  F:    Documentation/devicetree/bindings/mmc/marvell,xenon-sdhci.txt
  
 +MARVELL OCTEONTX2 RVU ADMIN FUNCTION DRIVER
 +M:    Sunil Goutham <sgoutham@marvell.com>
 +M:    Linu Cherian <lcherian@marvell.com>
 +M:    Geetha sowjanya <gakula@marvell.com>
 +M:    Jerin Jacob <jerinj@marvell.com>
 +L:    netdev@vger.kernel.org
 +S:    Supported
 +F:    drivers/net/ethernet/marvell/octeontx2/af/
 +
  MATROX FRAMEBUFFER DRIVER
  L:    linux-fbdev@vger.kernel.org
  S:    Orphan
@@@ -8934,6 -8822,13 +8926,6 @@@ S:     Maintaine
  F:    Documentation/hwmon/max16065
  F:    drivers/hwmon/max16065.c
  
 -MAX20751 HARDWARE MONITOR DRIVER
 -M:    Guenter Roeck <linux@roeck-us.net>
 -L:    linux-hwmon@vger.kernel.org
 -S:    Maintained
 -F:    Documentation/hwmon/max20751
 -F:    drivers/hwmon/max20751.c
 -
  MAX2175 SDR TUNER DRIVER
  M:    Ramesh Shanmugasundaram <ramesh.shanmugasundaram@bp.renesas.com>
  L:    linux-media@vger.kernel.org
@@@ -9599,7 -9494,6 +9591,7 @@@ M:      Richard Genoud <richard.genoud@gmail
  S:    Maintained
  F:    drivers/tty/serial/atmel_serial.c
  F:    drivers/tty/serial/atmel_serial.h
 +F:    Documentation/devicetree/bindings/mfd/atmel-usart.txt
  
  MICROCHIP / ATMEL DMA DRIVER
  M:    Ludovic Desroches <ludovic.desroches@microchip.com>
@@@ -9631,21 -9525,6 +9623,21 @@@ S:    Supporte
  F:    drivers/mtd/nand/raw/atmel/*
  F:    Documentation/devicetree/bindings/mtd/atmel-nand.txt
  
 +MICROCHIP AT91 USART MFD DRIVER
 +M:    Radu Pirea <radu_nicolae.pirea@upb.ro>
 +L:    linux-kernel@vger.kernel.org
 +S:    Supported
 +F:    drivers/mfd/at91-usart.c
 +F:    include/dt-bindings/mfd/at91-usart.h
 +F:    Documentation/devicetree/bindings/mfd/atmel-usart.txt
 +
 +MICROCHIP AT91 USART SPI DRIVER
 +M:    Radu Pirea <radu_nicolae.pirea@upb.ro>
 +L:    linux-spi@vger.kernel.org
 +S:    Supported
 +F:    drivers/spi/spi-at91-usart.c
 +F:    Documentation/devicetree/bindings/mfd/atmel-usart.txt
 +
  MICROCHIP KSZ SERIES ETHERNET SWITCH DRIVER
  M:    Woojung Huh <Woojung.Huh@microchip.com>
  M:    Microchip Linux Driver Support <UNGLinuxDriver@microchip.com>
@@@ -9754,8 -9633,7 +9746,8 @@@ MIPS/LOONGSON2 ARCHITECTUR
  M:    Jiaxun Yang <jiaxun.yang@flygoat.com>
  L:    linux-mips@linux-mips.org
  S:    Maintained
 -F:    arch/mips/loongson64/*{2e/2f}*
 +F:    arch/mips/loongson64/fuloong-2e/
 +F:    arch/mips/loongson64/lemote-2f/
  F:    arch/mips/include/asm/mach-loongson64/
  F:    drivers/*/*loongson2*
  F:    drivers/*/*/*loongson2*
@@@ -9795,19 -9673,6 +9787,19 @@@ S:    Maintaine
  F:    arch/arm/boot/dts/mmp*
  F:    arch/arm/mach-mmp/
  
 +MMU GATHER AND TLB INVALIDATION
 +M:    Will Deacon <will.deacon@arm.com>
 +M:    "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
 +M:    Andrew Morton <akpm@linux-foundation.org>
 +M:    Nick Piggin <npiggin@gmail.com>
 +M:    Peter Zijlstra <peterz@infradead.org>
 +L:    linux-arch@vger.kernel.org
 +L:    linux-mm@kvack.org
 +S:    Maintained
 +F:    arch/*/include/asm/tlb.h
 +F:    include/asm-generic/tlb.h
 +F:    mm/mmu_gather.c
 +
  MN88472 MEDIA DRIVER
  M:    Antti Palosaari <crope@iki.fi>
  L:    linux-media@vger.kernel.org
@@@ -9826,6 -9691,13 +9818,6 @@@ Q:     http://patchwork.linuxtv.org/project
  S:    Maintained
  F:    drivers/media/dvb-frontends/mn88473*
  
 -PCI DRIVER FOR MOBIVEIL PCIE IP
 -M:    Subrahmanya Lingappa <l.subrahmanya@mobiveil.co.in>
 -L:    linux-pci@vger.kernel.org
 -S:    Supported
 -F:    Documentation/devicetree/bindings/pci/mobiveil-pcie.txt
 -F:    drivers/pci/controller/pcie-mobiveil.c
 -
  MODULE SUPPORT
  M:    Jessica Yu <jeyu@kernel.org>
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux.git modules-next
@@@ -9975,7 -9847,7 +9967,7 @@@ M:      Peter Rosin <peda@axentia.se
  S:    Maintained
  F:    Documentation/ABI/testing/sysfs-class-mux*
  F:    Documentation/devicetree/bindings/mux/
 -F:    include/linux/dt-bindings/mux/
 +F:    include/dt-bindings/mux/
  F:    include/linux/mux/
  F:    drivers/mux/
  
@@@ -10012,13 -9884,6 +10004,13 @@@ S:  Supporte
  F:    drivers/gpu/drm/mxsfb/
  F:    Documentation/devicetree/bindings/display/mxsfb.txt
  
 +MYLEX DAC960 PCI RAID Controller
 +M:    Hannes Reinecke <hare@kernel.org>
 +L:    linux-scsi@vger.kernel.org
 +S:    Supported
 +F:    drivers/scsi/myrb.*
 +F:    drivers/scsi/myrs.*
 +
  MYRICOM MYRI-10G 10GbE DRIVER (MYRI10GE)
  M:    Chris Lee <christopher.lee@cspi.com>
  L:    netdev@vger.kernel.org
@@@ -10239,6 -10104,7 +10231,6 @@@ L:   netdev@vger.kernel.or
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec-next.git
  S:    Maintained
 -F:    net/core/flow.c
  F:    net/xfrm/
  F:    net/key/
  F:    net/ipv4/xfrm*
@@@ -10301,8 -10167,6 +10293,8 @@@ NETWORKING [TLS
  M:    Boris Pismenny <borisp@mellanox.com>
  M:    Aviad Yehezkel <aviadye@mellanox.com>
  M:    Dave Watson <davejwatson@fb.com>
 +M:    John Fastabend <john.fastabend@gmail.com>
 +M:    Daniel Borkmann <daniel@iogearbox.net>
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    net/tls/*
@@@ -11060,7 -10924,7 +11052,7 @@@ M:   Willy Tarreau <willy@haproxy.com
  M:    Ksenija Stanojevic <ksenija.stanojevic@gmail.com>
  S:    Odd Fixes
  F:    Documentation/auxdisplay/lcd-panel-cgram.txt
 -F:    drivers/misc/panel.c
 +F:    drivers/auxdisplay/panel.c
  
  PARALLEL PORT SUBSYSTEM
  M:    Sudip Mukherjee <sudipm.mukherjee@gmail.com>
@@@ -11248,13 -11112,6 +11240,13 @@@ F: include/uapi/linux/switchtec_ioctl.
  F:    include/linux/switchtec.h
  F:    drivers/ntb/hw/mscc/
  
 +PCI DRIVER FOR MOBIVEIL PCIE IP
 +M:    Subrahmanya Lingappa <l.subrahmanya@mobiveil.co.in>
 +L:    linux-pci@vger.kernel.org
 +S:    Supported
 +F:    Documentation/devicetree/bindings/pci/mobiveil-pcie.txt
 +F:    drivers/pci/controller/pcie-mobiveil.c
 +
  PCI DRIVER FOR MVEBU (Marvell Armada 370 and Armada XP SOC support)
  M:    Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
  M:    Jason Cooper <jason@lakedaemon.net>
@@@ -11288,7 -11145,7 +11280,7 @@@ F:   drivers/pci/controller/dwc/pci-exyno
  
  PCI DRIVER FOR SYNOPSYS DESIGNWARE
  M:    Jingoo Han <jingoohan1@gmail.com>
 -M:    Joao Pinto <Joao.Pinto@synopsys.com>
 +M:    Gustavo Pimentel <gustavo.pimentel@synopsys.com>
  L:    linux-pci@vger.kernel.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/pci/designware-pcie.txt
@@@ -11307,7 -11164,7 +11299,7 @@@ M:   Murali Karicheri <m-karicheri2@ti.co
  L:    linux-pci@vger.kernel.org
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
 -F:    drivers/pci/controller/dwc/*keystone*
 +F:    drivers/pci/controller/dwc/pci-keystone.c
  
  PCI ENDPOINT SUBSYSTEM
  M:    Kishon Vijay Abraham I <kishon@ti.com>
@@@ -11321,14 -11178,8 +11313,14 @@@ F: tools/pci
  
  PCI ENHANCED ERROR HANDLING (EEH) FOR POWERPC
  M:    Russell Currey <ruscur@russell.cc>
 +M:    Sam Bobroff <sbobroff@linux.ibm.com>
 +M:    Oliver O'Halloran <oohall@gmail.com>
  L:    linuxppc-dev@lists.ozlabs.org
  S:    Supported
 +F:    Documentation/PCI/pci-error-recovery.txt
 +F:    drivers/pci/pcie/aer.c
 +F:    drivers/pci/pcie/dpc.c
 +F:    drivers/pci/pcie/err.c
  F:    Documentation/powerpc/eeh-pci-error-recovery.txt
  F:    arch/powerpc/kernel/eeh*.c
  F:    arch/powerpc/platforms/*/eeh*.c
@@@ -11486,10 -11337,10 +11478,10 @@@ S:        Maintaine
  F:    drivers/platform/x86/peaq-wmi.c
  
  PER-CPU MEMORY ALLOCATOR
 +M:    Dennis Zhou <dennis@kernel.org>
  M:    Tejun Heo <tj@kernel.org>
  M:    Christoph Lameter <cl@linux.com>
 -M:    Dennis Zhou <dennisszhou@gmail.com>
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/dennis/percpu.git
  S:    Maintained
  F:    include/linux/percpu*.h
  F:    mm/percpu*.c
@@@ -11607,12 -11458,15 +11599,12 @@@ S:        Maintaine
  F:    drivers/pinctrl/intel/
  
  PIN CONTROLLER - MEDIATEK
 -M:    Sean Wang <sean.wang@mediatek.com>
 +M:    Sean Wang <sean.wang@kernel.org>
  L:    linux-mediatek@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  F:    Documentation/devicetree/bindings/pinctrl/pinctrl-mt65xx.txt
  F:    Documentation/devicetree/bindings/pinctrl/pinctrl-mt7622.txt
 -F:    drivers/pinctrl/mediatek/mtk-eint.*
 -F:    drivers/pinctrl/mediatek/pinctrl-mtk-common.*
 -F:    drivers/pinctrl/mediatek/pinctrl-mt2701.c
 -F:    drivers/pinctrl/mediatek/pinctrl-mt7622.c
 +F:    drivers/pinctrl/mediatek/
  
  PIN CONTROLLER - QUALCOMM
  M:    Bjorn Andersson <bjorn.andersson@linaro.org>
@@@ -11690,26 -11544,7 +11682,26 @@@ W: http://hwmon.wiki.kernel.org
  W:    http://www.roeck-us.net/linux/drivers/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging.git
  S:    Maintained
 +F:    Documentation/devicetree/bindings/hwmon/ibm,cffps1.txt
 +F:    Documentation/devicetree/bindings/hwmon/max31785.txt
 +F:    Documentation/devicetree/bindings/hwmon/ltc2978.txt
 +F:    Documentation/hwmon/adm1275
 +F:    Documentation/hwmon/ibm-cffps
 +F:    Documentation/hwmon/ir35221
 +F:    Documentation/hwmon/lm25066
 +F:    Documentation/hwmon/ltc2978
 +F:    Documentation/hwmon/ltc3815
 +F:    Documentation/hwmon/max16064
 +F:    Documentation/hwmon/max20751
 +F:    Documentation/hwmon/max31785
 +F:    Documentation/hwmon/max34440
 +F:    Documentation/hwmon/max8688
  F:    Documentation/hwmon/pmbus
 +F:    Documentation/hwmon/pmbus-core
 +F:    Documentation/hwmon/tps40422
 +F:    Documentation/hwmon/ucd9000
 +F:    Documentation/hwmon/ucd9200
 +F:    Documentation/hwmon/zl6100
  F:    drivers/hwmon/pmbus/
  F:    include/linux/pmbus.h
  
@@@ -12113,7 -11948,7 +12105,7 @@@ F:   Documentation/scsi/LICENSE.qla4xx
  F:    drivers/scsi/qla4xxx/
  
  QLOGIC QLCNIC (1/10)Gb ETHERNET DRIVER
 -M:    Harish Patil <harish.patil@cavium.com>
 +M:    Shahed Shaikh <Shahed.Shaikh@cavium.com>
  M:    Manish Chopra <manish.chopra@cavium.com>
  M:    Dept-GELinuxNICDev@cavium.com
  L:    netdev@vger.kernel.org
@@@ -12121,6 -11956,7 +12113,6 @@@ S:   Supporte
  F:    drivers/net/ethernet/qlogic/qlcnic/
  
  QLOGIC QLGE 10Gb ETHERNET DRIVER
 -M:    Harish Patil <harish.patil@cavium.com>
  M:    Manish Chopra <manish.chopra@cavium.com>
  M:    Dept-GELinuxNICDev@cavium.com
  L:    netdev@vger.kernel.org
@@@ -12399,7 -12235,6 +12391,7 @@@ F:   Documentation/networking/rds.tx
  
  RDT - RESOURCE ALLOCATION
  M:    Fenghua Yu <fenghua.yu@intel.com>
 +M:    Reinette Chatre <reinette.chatre@intel.com>
  L:    linux-kernel@vger.kernel.org
  S:    Supported
  F:    arch/x86/kernel/cpu/intel_rdt*
@@@ -13196,7 -13031,7 +13188,7 @@@ SELINUX SECURITY MODUL
  M:    Paul Moore <paul@paul-moore.com>
  M:    Stephen Smalley <sds@tycho.nsa.gov>
  M:    Eric Paris <eparis@parisplace.org>
 -L:    selinux@tycho.nsa.gov (moderated for non-subscribers)
 +L:    selinux@vger.kernel.org
  W:    https://selinuxproject.org
  W:    https://github.com/SELinuxProject
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux.git
@@@ -13440,7 -13275,6 +13432,7 @@@ M:   Uwe Kleine-König <u.kleine-koenig@p
  R:    Pengutronix Kernel Team <kernel@pengutronix.de>
  S:    Supported
  F:    drivers/siox/*
 +F:    drivers/gpio/gpio-siox.c
  F:    include/trace/events/siox.h
  
  SIS 190 ETHERNET DRIVER
@@@ -13590,8 -13424,9 +13582,8 @@@ F:   drivers/i2c/busses/i2c-synquacer.
  F:    Documentation/devicetree/bindings/i2c/i2c-synquacer.txt
  
  SOCIONEXT UNIPHIER SOUND DRIVER
 -M:    Katsuhiro Suzuki <suzuki.katsuhiro@socionext.com>
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
 -S:    Maintained
 +S:    Orphan
  F:    sound/soc/uniphier/
  
  SOEKRIS NET48XX LED SUPPORT
@@@ -13624,8 -13459,8 +13616,8 @@@ L:   linux-arm-kernel@lists.infradead.or
  S:    Maintained
  F:    Documentation/devicetree/bindings/arm/firmware/sdei.txt
  F:    drivers/firmware/arm_sdei.c
 -F:    include/linux/sdei.h
 -F:    include/uapi/linux/sdei.h
 +F:    include/linux/arm_sdei.h
 +F:    include/uapi/linux/arm_sdei.h
  
  SOFTWARE RAID (Multiple Disks) SUPPORT
  M:    Shaohua Li <shli@kernel.org>
@@@ -14168,12 -14003,6 +14160,12 @@@ S: Supporte
  F:    drivers/reset/reset-axs10x.c
  F:    Documentation/devicetree/bindings/reset/snps,axs10x-reset.txt
  
 +SYNOPSYS CREG GPIO DRIVER
 +M:    Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
 +S:    Maintained
 +F:    drivers/gpio/gpio-creg-snps.c
 +F:    Documentation/devicetree/bindings/gpio/snps,creg-gpio.txt
 +
  SYNOPSYS DESIGNWARE 8250 UART DRIVER
  R:    Andy Shevchenko <andriy.shevchenko@linux.intel.com>
  S:    Maintained
@@@ -14760,13 -14589,6 +14752,13 @@@ L: netdev@vger.kernel.or
  S:    Maintained
  F:    drivers/net/ethernet/ti/netcp*
  
 +TI PCM3060 ASoC CODEC DRIVER
 +M:    Kirill Marinushkin <kmarinushkin@birdec.tech>
 +L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/sound/pcm3060.txt
 +F:    sound/soc/codecs/pcm3060*
 +
  TI TAS571X FAMILY ASoC CODEC DRIVER
  M:    Kevin Cernekee <cernekee@chromium.org>
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
@@@ -15542,7 -15364,7 +15534,7 @@@ S:   Maintaine
  UVESAFB DRIVER
  M:    Michal Januszewski <spock@gentoo.org>
  L:    linux-fbdev@vger.kernel.org
 -W:    http://dev.gentoo.org/~spock/projects/uvesafb/
 +W:    https://github.com/mjanusz/v86d
  S:    Maintained
  F:    Documentation/fb/uvesafb.txt
  F:    drivers/video/fbdev/uvesafb.*
@@@ -15855,7 -15677,7 +15847,7 @@@ F:   include/linux/regulator
  
  VRF
  M:    David Ahern <dsa@cumulusnetworks.com>
 -M:    Shrijeet Mukherjee <shm@cumulusnetworks.com>
 +M:    Shrijeet Mukherjee <shrijeet@gmail.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    drivers/net/vrf.c
@@@ -16066,7 -15888,6 +16058,7 @@@ F:   net/x25
  X86 ARCHITECTURE (32-BIT AND 64-BIT)
  M:    Thomas Gleixner <tglx@linutronix.de>
  M:    Ingo Molnar <mingo@redhat.com>
 +M:    Borislav Petkov <bp@alien8.de>
  R:    "H. Peter Anvin" <hpa@zytor.com>
  M:    x86@kernel.org
  L:    linux-kernel@vger.kernel.org
@@@ -16095,15 -15916,6 +16087,15 @@@ M: Borislav Petkov <bp@alien8.de
  S:    Maintained
  F:    arch/x86/kernel/cpu/microcode/*
  
 +X86 MM
 +M:    Dave Hansen <dave.hansen@linux.intel.com>
 +M:    Andy Lutomirski <luto@kernel.org>
 +M:    Peter Zijlstra <peterz@infradead.org>
 +L:    linux-kernel@vger.kernel.org
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/mm
 +S:    Maintained
 +F:    arch/x86/mm/
 +
  X86 PLATFORM DRIVERS
  M:    Darren Hart <dvhart@infradead.org>
  M:    Andy Shevchenko <andy@infradead.org>
diff --combined arch/s390/defconfig
index 20add000dd6d600b3baccd5656d78e8f188b3991,5134c71a4937b00886bff9e5efdcb94049d918b0..7cb6a52f727dafc6c994423b0db21ccafec4993a
@@@ -221,7 -221,6 +221,6 @@@ CONFIG_CRYPTO_SALSA20=
  CONFIG_CRYPTO_SEED=m
  CONFIG_CRYPTO_SERPENT=m
  CONFIG_CRYPTO_SM4=m
- CONFIG_CRYPTO_SPECK=m
  CONFIG_CRYPTO_TEA=m
  CONFIG_CRYPTO_TWOFISH=m
  CONFIG_CRYPTO_DEFLATE=m
@@@ -232,7 -231,6 +231,7 @@@ CONFIG_CRYPTO_USER_API_HASH=
  CONFIG_CRYPTO_USER_API_SKCIPHER=m
  CONFIG_CRYPTO_USER_API_RNG=m
  CONFIG_ZCRYPT=m
 +CONFIG_ZCRYPT_MULTIDEVNODES=y
  CONFIG_PKEY=m
  CONFIG_CRYPTO_PAES_S390=m
  CONFIG_CRYPTO_SHA1_S390=m
diff --combined drivers/char/random.c
index c75b6cdf00533ac82ec6fb957bc1669f1f44a34d,d22d967c50f0a707b485444ce35414b1f598aba3..2eb70e76ed355cc677da414b2ad16436dc35545d
@@@ -433,9 -433,9 +433,9 @@@ static int crng_init_cnt = 0
  static unsigned long crng_global_init_time = 0;
  #define CRNG_INIT_CNT_THRESH (2*CHACHA20_KEY_SIZE)
  static void _extract_crng(struct crng_state *crng,
-                         __u32 out[CHACHA20_BLOCK_WORDS]);
+                         __u8 out[CHACHA20_BLOCK_SIZE]);
  static void _crng_backtrack_protect(struct crng_state *crng,
-                                   __u32 tmp[CHACHA20_BLOCK_WORDS], int used);
+                                   __u8 tmp[CHACHA20_BLOCK_SIZE], int used);
  static void process_random_ready_list(void);
  static void _get_random_bytes(void *buf, int nbytes);
  
@@@ -779,13 -779,6 +779,13 @@@ static struct crng_state **crng_node_po
  
  static void invalidate_batched_entropy(void);
  
 +static bool trust_cpu __ro_after_init = IS_ENABLED(CONFIG_RANDOM_TRUST_CPU);
 +static int __init parse_trust_cpu(char *arg)
 +{
 +      return kstrtobool(arg, &trust_cpu);
 +}
 +early_param("random.trust_cpu", parse_trust_cpu);
 +
  static void crng_initialize(struct crng_state *crng)
  {
        int             i;
                }
                crng->state[i] ^= rv;
        }
 -#ifdef CONFIG_RANDOM_TRUST_CPU
 -      if (arch_init) {
 +      if (trust_cpu && arch_init) {
                crng_init = 2;
                pr_notice("random: crng done (trusting CPU's manufacturer)\n");
        }
 -#endif
        crng->init_time = jiffies - CRNG_RESEED_INTERVAL - 1;
  }
  
@@@ -926,7 -921,7 +926,7 @@@ static void crng_reseed(struct crng_sta
        unsigned long   flags;
        int             i, num;
        union {
-               __u32   block[CHACHA20_BLOCK_WORDS];
+               __u8    block[CHACHA20_BLOCK_SIZE];
                __u32   key[8];
        } buf;
  
  }
  
  static void _extract_crng(struct crng_state *crng,
-                         __u32 out[CHACHA20_BLOCK_WORDS])
+                         __u8 out[CHACHA20_BLOCK_SIZE])
  {
        unsigned long v, flags;
  
        spin_unlock_irqrestore(&crng->lock, flags);
  }
  
- static void extract_crng(__u32 out[CHACHA20_BLOCK_WORDS])
+ static void extract_crng(__u8 out[CHACHA20_BLOCK_SIZE])
  {
        struct crng_state *crng = NULL;
  
   * enough) to mutate the CRNG key to provide backtracking protection.
   */
  static void _crng_backtrack_protect(struct crng_state *crng,
-                                   __u32 tmp[CHACHA20_BLOCK_WORDS], int used)
+                                   __u8 tmp[CHACHA20_BLOCK_SIZE], int used)
  {
        unsigned long   flags;
        __u32           *s, *d;
                used = 0;
        }
        spin_lock_irqsave(&crng->lock, flags);
-       s = &tmp[used / sizeof(__u32)];
+       s = (__u32 *) &tmp[used];
        d = &crng->state[4];
        for (i=0; i < 8; i++)
                *d++ ^= *s++;
        spin_unlock_irqrestore(&crng->lock, flags);
  }
  
- static void crng_backtrack_protect(__u32 tmp[CHACHA20_BLOCK_WORDS], int used)
+ static void crng_backtrack_protect(__u8 tmp[CHACHA20_BLOCK_SIZE], int used)
  {
        struct crng_state *crng = NULL;
  
  static ssize_t extract_crng_user(void __user *buf, size_t nbytes)
  {
        ssize_t ret = 0, i = CHACHA20_BLOCK_SIZE;
-       __u32 tmp[CHACHA20_BLOCK_WORDS];
+       __u8 tmp[CHACHA20_BLOCK_SIZE] __aligned(4);
        int large_request = (nbytes > 256);
  
        while (nbytes) {
@@@ -1622,7 -1617,7 +1622,7 @@@ static void _warn_unseeded_randomness(c
   */
  static void _get_random_bytes(void *buf, int nbytes)
  {
-       __u32 tmp[CHACHA20_BLOCK_WORDS];
+       __u8 tmp[CHACHA20_BLOCK_SIZE] __aligned(4);
  
        trace_get_random_bytes(nbytes, _RET_IP_);
  
@@@ -2248,7 -2243,7 +2248,7 @@@ u64 get_random_u64(void
        if (use_lock)
                read_lock_irqsave(&batched_entropy_reset_lock, flags);
        if (batch->position % ARRAY_SIZE(batch->entropy_u64) == 0) {
-               extract_crng((__u32 *)batch->entropy_u64);
+               extract_crng((u8 *)batch->entropy_u64);
                batch->position = 0;
        }
        ret = batch->entropy_u64[batch->position++];
@@@ -2278,7 -2273,7 +2278,7 @@@ u32 get_random_u32(void
        if (use_lock)
                read_lock_irqsave(&batched_entropy_reset_lock, flags);
        if (batch->position % ARRAY_SIZE(batch->entropy_u32) == 0) {
-               extract_crng(batch->entropy_u32);
+               extract_crng((u8 *)batch->entropy_u32);
                batch->position = 0;
        }
        ret = batch->entropy_u32[batch->position++];
index 62249d4ed37382f1e3daf58c2ef68ac74dfdf488,2399ce336a76a61fcea4c1416e4328c30a4e8e6a..2c472e3c6aebf8ac13e0e62ec5c8fc1be05d48a2
@@@ -43,7 -43,7 +43,7 @@@ static chcr_handler_func work_handlers[
  static struct cxgb4_uld_info chcr_uld_info = {
        .name = DRV_MODULE_NAME,
        .nrxq = MAX_ULD_QSETS,
-       .ntxq = MAX_ULD_QSETS,
+       /* Max ntxq will be derived from fw config file*/
        .rxq_size = 1024,
        .add = chcr_uld_add,
        .state_change = chcr_uld_state_change,
@@@ -237,7 -237,9 +237,7 @@@ static int chcr_uld_state_change(void *
  
  static int __init chcr_crypto_init(void)
  {
 -      if (cxgb4_register_uld(CXGB4_ULD_CRYPTO, &chcr_uld_info))
 -              pr_err("ULD register fail: No chcr crypto support in cxgb4\n");
 -
 +      cxgb4_register_uld(CXGB4_ULD_CRYPTO, &chcr_uld_info);
        return 0;
  }
  
index e1fa6baf4e8e39ad79d39254c04be23333992f65,5c1197bc66f8e02c8211011d7ea00ce5c6ec7168..bb3096bf2cc6b5bb79f074278e7b4825f4d3bece
@@@ -532,7 -532,7 +532,7 @@@ static void section_mac(struct dm_integ
        unsigned j, size;
  
        desc->tfm = ic->journal_mac;
 -      desc->flags = CRYPTO_TFM_REQ_MAY_SLEEP;
 +      desc->flags = 0;
  
        r = crypto_shash_init(desc);
        if (unlikely(r)) {
                }
                memset(result + size, 0, JOURNAL_MAC_SIZE - size);
        } else {
-               __u8 digest[size];
+               __u8 digest[HASH_MAX_DIGESTSIZE];
+               if (WARN_ON(size > sizeof(digest))) {
+                       dm_integrity_io_error(ic, "digest_size", -EINVAL);
+                       goto err;
+               }
                r = crypto_shash_final(desc, digest);
                if (unlikely(r)) {
                        dm_integrity_io_error(ic, "crypto_shash_final", r);
@@@ -676,7 -681,7 +681,7 @@@ static void complete_journal_encrypt(st
  static bool do_crypt(bool encrypt, struct skcipher_request *req, struct journal_completion *comp)
  {
        int r;
 -      skcipher_request_set_callback(req, CRYPTO_TFM_REQ_MAY_BACKLOG | CRYPTO_TFM_REQ_MAY_SLEEP,
 +      skcipher_request_set_callback(req, CRYPTO_TFM_REQ_MAY_BACKLOG,
                                      complete_journal_encrypt, comp);
        if (likely(encrypt))
                r = crypto_skcipher_encrypt(req);
@@@ -1324,7 -1329,7 +1329,7 @@@ static void integrity_metadata(struct w
                struct bio *bio = dm_bio_from_per_bio_data(dio, sizeof(struct dm_integrity_io));
                char *checksums;
                unsigned extra_space = unlikely(digest_size > ic->tag_size) ? digest_size - ic->tag_size : 0;
-               char checksums_onstack[ic->tag_size + extra_space];
+               char checksums_onstack[HASH_MAX_DIGESTSIZE];
                unsigned sectors_to_process = dio->range.n_sectors;
                sector_t sector = dio->range.logical_sector;
  
  
                checksums = kmalloc((PAGE_SIZE >> SECTOR_SHIFT >> ic->sb->log2_sectors_per_block) * ic->tag_size + extra_space,
                                    GFP_NOIO | __GFP_NORETRY | __GFP_NOWARN);
-               if (!checksums)
+               if (!checksums) {
                        checksums = checksums_onstack;
+                       if (WARN_ON(extra_space &&
+                                   digest_size > sizeof(checksums_onstack))) {
+                               r = -EINVAL;
+                               goto error;
+                       }
+               }
  
                __bio_for_each_segment(bv, bio, iter, dio->orig_bi_iter) {
                        unsigned pos;
@@@ -1546,7 -1557,7 +1557,7 @@@ retry_kmap
                                } while (++s < ic->sectors_per_block);
  #ifdef INTERNAL_VERIFY
                                if (ic->internal_hash) {
-                                       char checksums_onstack[max(crypto_shash_digestsize(ic->internal_hash), ic->tag_size)];
+                                       char checksums_onstack[max(HASH_MAX_DIGESTSIZE, MAX_TAG_SIZE)];
  
                                        integrity_sector_checksum(ic, logical_sector, mem + bv.bv_offset, checksums_onstack);
                                        if (unlikely(memcmp(checksums_onstack, journal_entry_tag(ic, je), ic->tag_size))) {
                                if (ic->internal_hash) {
                                        unsigned digest_size = crypto_shash_digestsize(ic->internal_hash);
                                        if (unlikely(digest_size > ic->tag_size)) {
-                                               char checksums_onstack[digest_size];
+                                               char checksums_onstack[HASH_MAX_DIGESTSIZE];
                                                integrity_sector_checksum(ic, logical_sector, (char *)js, checksums_onstack);
                                                memcpy(journal_entry_tag(ic, je), checksums_onstack, ic->tag_size);
                                        } else
@@@ -2023,7 -2034,7 +2034,7 @@@ static void do_journal_write(struct dm_
                                    unlikely(from_replay) &&
  #endif
                                    ic->internal_hash) {
-                                       char test_tag[max(crypto_shash_digestsize(ic->internal_hash), ic->tag_size)];
+                                       char test_tag[max_t(size_t, HASH_MAX_DIGESTSIZE, MAX_TAG_SIZE)];
  
                                        integrity_sector_checksum(ic, sec + ((l - j) << ic->sb->log2_sectors_per_block),
                                                                  (char *)access_journal_data(ic, i, l), test_tag);
@@@ -3462,8 -3473,7 +3473,8 @@@ try_smaller_buffer
                        r = -ENOMEM;
                        goto bad;
                }
 -              ic->recalc_tags = kvmalloc((RECALC_SECTORS >> ic->sb->log2_sectors_per_block) * ic->tag_size, GFP_KERNEL);
 +              ic->recalc_tags = kvmalloc_array(RECALC_SECTORS >> ic->sb->log2_sectors_per_block,
 +                                               ic->tag_size, GFP_KERNEL);
                if (!ic->recalc_tags) {
                        ti->error = "Cannot allocate tags for recalculating";
                        r = -ENOMEM;
index 267322693ed5578f9a824b9f0034dc2a389f87a4,7947ae72f869bb9ca7ca3cfc8b83834e47c235e2..9a6065a3fa46cd68baafaa8be568249effe1bb3b
@@@ -520,10 -520,20 +520,20 @@@ setup_sge_txq_uld(struct adapter *adap
        txq_info = kzalloc(sizeof(*txq_info), GFP_KERNEL);
        if (!txq_info)
                return -ENOMEM;
+       if (uld_type == CXGB4_ULD_CRYPTO) {
+               i = min_t(int, adap->vres.ncrypto_fc,
+                         num_online_cpus());
+               txq_info->ntxq = rounddown(i, adap->params.nports);
+               if (txq_info->ntxq <= 0) {
+                       dev_warn(adap->pdev_dev, "Crypto Tx Queues can't be zero\n");
+                       kfree(txq_info);
+                       return -EINVAL;
+               }
  
-       i = min_t(int, uld_info->ntxq, num_online_cpus());
-       txq_info->ntxq = roundup(i, adap->params.nports);
+       } else {
+               i = min_t(int, uld_info->ntxq, num_online_cpus());
+               txq_info->ntxq = roundup(i, adap->params.nports);
+       }
        txq_info->uldtxq = kcalloc(txq_info->ntxq, sizeof(struct sge_uld_txq),
                                   GFP_KERNEL);
        if (!txq_info->uldtxq) {
@@@ -546,11 -556,14 +556,14 @@@ static void uld_queue_init(struct adapt
                           struct cxgb4_lld_info *lli)
  {
        struct sge_uld_rxq_info *rxq_info = adap->sge.uld_rxq_info[uld_type];
+       int tx_uld_type = TX_ULD(uld_type);
+       struct sge_uld_txq_info *txq_info = adap->sge.uld_txq_info[tx_uld_type];
  
        lli->rxq_ids = rxq_info->rspq_id;
        lli->nrxq = rxq_info->nrxq;
        lli->ciq_ids = rxq_info->rspq_id + rxq_info->nrxq;
        lli->nciq = rxq_info->nciq;
+       lli->ntxq = txq_info->ntxq;
  }
  
  int t4_uld_mem_alloc(struct adapter *adap)
@@@ -634,7 -647,6 +647,6 @@@ static void uld_init(struct adapter *ad
        lld->ports = adap->port;
        lld->vr = &adap->vres;
        lld->mtus = adap->params.mtus;
-       lld->ntxq = adap->sge.ofldqsets;
        lld->nchan = adap->params.nports;
        lld->nports = adap->params.nports;
        lld->wr_cred = adap->params.ofldq_wr_cred;
@@@ -702,14 -714,15 +714,14 @@@ static void uld_attach(struct adapter *
   *    about any presently available devices that support its type.  Returns
   *    %-EBUSY if a ULD of the same type is already registered.
   */
 -int cxgb4_register_uld(enum cxgb4_uld type,
 -                     const struct cxgb4_uld_info *p)
 +void cxgb4_register_uld(enum cxgb4_uld type,
 +                      const struct cxgb4_uld_info *p)
  {
        int ret = 0;
 -      unsigned int adap_idx = 0;
        struct adapter *adap;
  
        if (type >= CXGB4_ULD_MAX)
 -              return -EINVAL;
 +              return;
  
        mutex_lock(&uld_mutex);
        list_for_each_entry(adap, &adapter_list, list_node) {
                }
                if (adap->flags & FULL_INIT_DONE)
                        enable_rx_uld(adap, type);
 -              if (adap->uld[type].add) {
 -                      ret = -EBUSY;
 +              if (adap->uld[type].add)
                        goto free_irq;
 -              }
                ret = setup_sge_txq_uld(adap, type, p);
                if (ret)
                        goto free_irq;
                adap->uld[type] = *p;
                uld_attach(adap, type);
 -              adap_idx++;
 -      }
 -      mutex_unlock(&uld_mutex);
 -      return 0;
 -
 +              continue;
  free_irq:
 -      if (adap->flags & FULL_INIT_DONE)
 -              quiesce_rx_uld(adap, type);
 -      if (adap->flags & USING_MSIX)
 -              free_msix_queue_irqs_uld(adap, type);
 -free_rxq:
 -      free_sge_queues_uld(adap, type);
 -free_queues:
 -      free_queues_uld(adap, type);
 -out:
 -
 -      list_for_each_entry(adap, &adapter_list, list_node) {
 -              if ((type == CXGB4_ULD_CRYPTO && !is_pci_uld(adap)) ||
 -                  (type != CXGB4_ULD_CRYPTO && !is_offload(adap)))
 -                      continue;
 -              if (type == CXGB4_ULD_ISCSIT && is_t4(adap->params.chip))
 -                      continue;
 -              if (!adap_idx)
 -                      break;
 -              adap->uld[type].handle = NULL;
 -              adap->uld[type].add = NULL;
 -              release_sge_txq_uld(adap, type);
                if (adap->flags & FULL_INIT_DONE)
                        quiesce_rx_uld(adap, type);
                if (adap->flags & USING_MSIX)
                        free_msix_queue_irqs_uld(adap, type);
 +free_rxq:
                free_sge_queues_uld(adap, type);
 +free_queues:
                free_queues_uld(adap, type);
 -              adap_idx--;
 +out:
 +              dev_warn(adap->pdev_dev,
 +                       "ULD registration failed for uld type %d\n", type);
        }
        mutex_unlock(&uld_mutex);
 -      return ret;
 +      return;
  }
  EXPORT_SYMBOL(cxgb4_register_uld);
  
index db192becfec4998df459bc46eb739676a066852e,13fee5fe734b65c8682f250f1803cb2c9feae29a..97cfe29b3f0adf6da5537d68bc7d85ad9769dcd5
@@@ -198,7 -198,6 +198,6 @@@ struct ftrace_likely_data 
   */
  #define __pure                        __attribute__((pure))
  #define __aligned(x)          __attribute__((aligned(x)))
- #define __aligned_largest     __attribute__((aligned))
  #define __printf(a, b)                __attribute__((format(printf, a, b)))
  #define __scanf(a, b)         __attribute__((format(scanf, a, b)))
  #define __maybe_unused                __attribute__((unused))
  #define notrace                       __attribute__((no_instrument_function))
  #endif
  
 +/*
 + * it doesn't make sense on ARM (currently the only user of __naked)
 + * to trace naked functions because then mcount is called without
 + * stack and frame pointer being set up and there is no chance to
 + * restore the lr register to the value before mcount was called.
 + */
 +#define __naked                       __attribute__((naked)) notrace
 +
  #define __compiler_offsetof(a, b)     __builtin_offsetof(a, b)
  
  /*
diff --combined net/rxrpc/ar-internal.h
index 0a7c49e8e053cca07e20ab7b373fc5ba54e785fc,41be33c9eecf18c126a3bfbd52f579f0976f928e..382196e57a26c137f03fea19cb2ff5d8d69c728b
@@@ -40,12 -40,17 +40,12 @@@ struct rxrpc_crypt 
  struct rxrpc_connection;
  
  /*
 - * Mark applied to socket buffers.
 + * Mark applied to socket buffers in skb->mark.  skb->priority is used
 + * to pass supplementary information.
   */
  enum rxrpc_skb_mark {
 -      RXRPC_SKB_MARK_DATA,            /* data message */
 -      RXRPC_SKB_MARK_FINAL_ACK,       /* final ACK received message */
 -      RXRPC_SKB_MARK_BUSY,            /* server busy message */
 -      RXRPC_SKB_MARK_REMOTE_ABORT,    /* remote abort message */
 -      RXRPC_SKB_MARK_LOCAL_ABORT,     /* local abort message */
 -      RXRPC_SKB_MARK_NET_ERROR,       /* network error message */
 -      RXRPC_SKB_MARK_LOCAL_ERROR,     /* local error message */
 -      RXRPC_SKB_MARK_NEW_CALL,        /* local error message */
 +      RXRPC_SKB_MARK_REJECT_BUSY,     /* Reject with BUSY */
 +      RXRPC_SKB_MARK_REJECT_ABORT,    /* Reject with ABORT (code in skb->priority) */
  };
  
  /*
@@@ -288,6 -293,7 +288,6 @@@ struct rxrpc_peer 
        struct hlist_node       hash_link;
        struct rxrpc_local      *local;
        struct hlist_head       error_targets;  /* targets for net error distribution */
 -      struct work_struct      error_distributor;
        struct rb_root          service_conns;  /* Service connections */
        struct list_head        keepalive_link; /* Link in net->peer_keepalive[] */
        time64_t                last_tx_at;     /* Last time packet sent here */
        unsigned int            maxdata;        /* data size (MTU - hdrsize) */
        unsigned short          hdrsize;        /* header size (IP + UDP + RxRPC) */
        int                     debug_id;       /* debug ID for printks */
 -      int                     error_report;   /* Net (+0) or local (+1000000) to distribute */
 -#define RXRPC_LOCAL_ERROR_OFFSET 1000000
        struct sockaddr_rxrpc   srx;            /* remote address */
  
        /* calculated RTT cache */
  #define RXRPC_RTT_CACHE_SIZE 32
 +      spinlock_t              rtt_input_lock; /* RTT lock for input routine */
        ktime_t                 rtt_last_req;   /* Time of last RTT request */
        u64                     rtt;            /* Current RTT estimate (in nS) */
        u64                     rtt_sum;        /* Sum of cache contents */
@@@ -435,7 -442,7 +435,7 @@@ struct rxrpc_connection 
        struct sk_buff_head     rx_queue;       /* received conn-level packets */
        const struct rxrpc_security *security;  /* applied security module */
        struct key              *server_key;    /* security for this service */
-       struct crypto_skcipher  *cipher;        /* encryption handle */
+       struct crypto_sync_skcipher *cipher;    /* encryption handle */
        struct rxrpc_crypt      csum_iv;        /* packet checksum base */
        unsigned long           flags;
        unsigned long           events;
        spinlock_t              state_lock;     /* state-change lock */
        enum rxrpc_conn_cache_state cache_state;
        enum rxrpc_conn_proto_state state;      /* current state of connection */
 -      u32                     local_abort;    /* local abort code */
 -      u32                     remote_abort;   /* remote abort code */
 +      u32                     abort_code;     /* Abort code of connection abort */
        int                     debug_id;       /* debug ID for printks */
        atomic_t                serial;         /* packet serial number counter */
        unsigned int            hi_serial;      /* highest serial number received */
        u32                     security_nonce; /* response re-use preventer */
 -      u16                     service_id;     /* Service ID, possibly upgraded */
 +      u32                     service_id;     /* Service ID, possibly upgraded */
        u8                      size_align;     /* data size alignment (for security) */
        u8                      security_size;  /* security header size */
        u8                      security_ix;    /* security type */
        u8                      out_clientflag; /* RXRPC_CLIENT_INITIATED if we are client */
 +      short                   error;          /* Local error code */
  };
  
 +static inline bool rxrpc_to_server(const struct rxrpc_skb_priv *sp)
 +{
 +      return sp->hdr.flags & RXRPC_CLIENT_INITIATED;
 +}
 +
 +static inline bool rxrpc_to_client(const struct rxrpc_skb_priv *sp)
 +{
 +      return !rxrpc_to_server(sp);
 +}
 +
  /*
   * Flags in call->flags.
   */
@@@ -636,8 -633,6 +636,8 @@@ struct rxrpc_call 
        bool                    tx_phase;       /* T if transmission phase, F if receive phase */
        u8                      nr_jumbo_bad;   /* Number of jumbo dups/exceeds-windows */
  
 +      spinlock_t              input_lock;     /* Lock for packet input to this call */
 +
        /* receive-phase ACK management */
        u8                      ackr_reason;    /* reason to ACK */
        u16                     ackr_skew;      /* skew on packet being ACK'd */
@@@ -722,7 -717,7 +722,7 @@@ extern struct workqueue_struct *rxrpc_w
  int rxrpc_service_prealloc(struct rxrpc_sock *, gfp_t);
  void rxrpc_discard_prealloc(struct rxrpc_sock *);
  struct rxrpc_call *rxrpc_new_incoming_call(struct rxrpc_local *,
 -                                         struct rxrpc_connection *,
 +                                         struct rxrpc_sock *,
                                           struct sk_buff *);
  void rxrpc_accept_incoming_calls(struct rxrpc_local *);
  struct rxrpc_call *rxrpc_accept_call(struct rxrpc_sock *, unsigned long,
@@@ -892,9 -887,8 +892,9 @@@ extern unsigned long rxrpc_conn_idle_cl
  extern struct idr rxrpc_client_conn_ids;
  
  void rxrpc_destroy_client_conn_ids(void);
 -int rxrpc_connect_call(struct rxrpc_call *, struct rxrpc_conn_parameters *,
 -                     struct sockaddr_rxrpc *, gfp_t);
 +int rxrpc_connect_call(struct rxrpc_sock *, struct rxrpc_call *,
 +                     struct rxrpc_conn_parameters *, struct sockaddr_rxrpc *,
 +                     gfp_t);
  void rxrpc_expose_client_call(struct rxrpc_call *);
  void rxrpc_disconnect_client_call(struct rxrpc_call *);
  void rxrpc_put_client_conn(struct rxrpc_connection *);
@@@ -914,8 -908,7 +914,8 @@@ extern unsigned int rxrpc_closed_conn_e
  
  struct rxrpc_connection *rxrpc_alloc_connection(gfp_t);
  struct rxrpc_connection *rxrpc_find_connection_rcu(struct rxrpc_local *,
 -                                                 struct sk_buff *);
 +                                                 struct sk_buff *,
 +                                                 struct rxrpc_peer **);
  void __rxrpc_disconnect_call(struct rxrpc_connection *, struct rxrpc_call *);
  void rxrpc_disconnect_call(struct rxrpc_call *);
  void rxrpc_kill_connection(struct rxrpc_connection *);
@@@ -967,7 -960,7 +967,7 @@@ void rxrpc_unpublish_service_conn(struc
  /*
   * input.c
   */
 -void rxrpc_data_ready(struct sock *);
 +int rxrpc_input_packet(struct sock *, struct sk_buff *);
  
  /*
   * insecure.c
@@@ -1038,6 -1031,7 +1038,6 @@@ void rxrpc_send_keepalive(struct rxrpc_
   * peer_event.c
   */
  void rxrpc_error_report(struct sock *);
 -void rxrpc_peer_error_distributor(struct work_struct *);
  void rxrpc_peer_add_rtt(struct rxrpc_call *, enum rxrpc_rtt_rx_trace,
                        rxrpc_serial_t, rxrpc_serial_t, ktime_t, ktime_t);
  void rxrpc_peer_keepalive_worker(struct work_struct *);
   */
  struct rxrpc_peer *rxrpc_lookup_peer_rcu(struct rxrpc_local *,
                                         const struct sockaddr_rxrpc *);
 -struct rxrpc_peer *rxrpc_lookup_peer(struct rxrpc_local *,
 +struct rxrpc_peer *rxrpc_lookup_peer(struct rxrpc_sock *, struct rxrpc_local *,
                                     struct sockaddr_rxrpc *, gfp_t);
  struct rxrpc_peer *rxrpc_alloc_peer(struct rxrpc_local *, gfp_t);
 -struct rxrpc_peer *rxrpc_lookup_incoming_peer(struct rxrpc_local *,
 -                                            struct rxrpc_peer *);
 +void rxrpc_new_incoming_peer(struct rxrpc_sock *, struct rxrpc_local *,
 +                           struct rxrpc_peer *);
  void rxrpc_destroy_all_peers(struct rxrpc_net *);
  struct rxrpc_peer *rxrpc_get_peer(struct rxrpc_peer *);
  struct rxrpc_peer *rxrpc_get_peer_maybe(struct rxrpc_peer *);
  void rxrpc_put_peer(struct rxrpc_peer *);
 -void __rxrpc_queue_peer_error(struct rxrpc_peer *);
  
  /*
   * proc.c
   */
  extern const struct seq_operations rxrpc_call_seq_ops;
  extern const struct seq_operations rxrpc_connection_seq_ops;
 +extern const struct seq_operations rxrpc_peer_seq_ops;
  
  /*
   * recvmsg.c
@@@ -1099,6 -1093,7 +1099,6 @@@ void rxrpc_new_skb(struct sk_buff *, en
  void rxrpc_see_skb(struct sk_buff *, enum rxrpc_skb_trace);
  void rxrpc_get_skb(struct sk_buff *, enum rxrpc_skb_trace);
  void rxrpc_free_skb(struct sk_buff *, enum rxrpc_skb_trace);
 -void rxrpc_lose_skb(struct sk_buff *, enum rxrpc_skb_trace);
  void rxrpc_purge_queue(struct sk_buff_head *);
  
  /*
@@@ -1115,7 -1110,8 +1115,7 @@@ static inline void rxrpc_sysctl_exit(vo
  /*
   * utils.c
   */
 -int rxrpc_extract_addr_from_skb(struct rxrpc_local *, struct sockaddr_rxrpc *,
 -                              struct sk_buff *);
 +int rxrpc_extract_addr_from_skb(struct sockaddr_rxrpc *, struct sk_buff *);
  
  static inline bool before(u32 seq1, u32 seq2)
  {