Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64...
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 16 Sep 2019 21:31:40 +0000 (14:31 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 16 Sep 2019 21:31:40 +0000 (14:31 -0700)
Pull arm64 updates from Will Deacon:
 "Although there isn't tonnes of code in terms of line count, there are
  a fair few headline features which I've noted both in the tag and also
  in the merge commits when I pulled everything together.

  The part I'm most pleased with is that we had 35 contributors this
  time around, which feels like a big jump from the usual small group of
  core arm64 arch developers. Hopefully they all enjoyed it so much that
  they'll continue to contribute, but we'll see.

  It's probably worth highlighting that we've pulled in a branch from
  the risc-v folks which moves our CPU topology code out to where it can
  be shared with others.

  Summary:

   - 52-bit virtual addressing in the kernel

   - New ABI to allow tagged user pointers to be dereferenced by
     syscalls

   - Early RNG seeding by the bootloader

   - Improve robustness of SMP boot

   - Fix TLB invalidation in light of recent architectural
     clarifications

   - Support for i.MX8 DDR PMU

   - Remove direct LSE instruction patching in favour of static keys

   - Function error injection using kprobes

   - Support for the PPTT "thread" flag introduced by ACPI 6.3

   - Move PSCI idle code into proper cpuidle driver

   - Relaxation of implicit I/O memory barriers

   - Build with RELR relocations when toolchain supports them

   - Numerous cleanups and non-critical fixes"

* tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (114 commits)
  arm64: remove __iounmap
  arm64: atomics: Use K constraint when toolchain appears to support it
  arm64: atomics: Undefine internal macros after use
  arm64: lse: Make ARM64_LSE_ATOMICS depend on JUMP_LABEL
  arm64: asm: Kill 'asm/atomic_arch.h'
  arm64: lse: Remove unused 'alt_lse' assembly macro
  arm64: atomics: Remove atomic_ll_sc compilation unit
  arm64: avoid using hard-coded registers for LSE atomics
  arm64: atomics: avoid out-of-line ll/sc atomics
  arm64: Use correct ll/sc atomic constraints
  jump_label: Don't warn on __exit jump entries
  docs/perf: Add documentation for the i.MX8 DDR PMU
  perf/imx_ddr: Add support for AXI ID filtering
  arm64: kpti: ensure patched kernel text is fetched from PoU
  arm64: fix fixmap copy for 16K pages and 48-bit VA
  perf/smmuv3: Validate groups for global filtering
  perf/smmuv3: Validate group size
  arm64: Relax Documentation/arm64/tagged-pointers.rst
  arm64: kvm: Replace hardcoded '1' with SYS_PAR_EL1_F
  arm64: mm: Ignore spurious translation faults taken from the kernel
  ...

1  2 
MAINTAINERS
Makefile
arch/arm64/include/asm/pgtable.h
arch/arm64/kernel/cpufeature.c
arch/arm64/kernel/traps.c
include/linux/acpi.h

diff --combined MAINTAINERS
index 59a8ec493d7af8112cf331d7ec9ab71487eab64d,f29cfc59d51c8288f6e03adcb597459b08805a1d..1547e033d3547192bb5016fa4ca06f470821ab25
@@@ -183,7 -183,7 +183,7 @@@ M: Realtek linux nic maintainers <nic_s
  M:    Heiner Kallweit <hkallweit1@gmail.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
 -F:    drivers/net/ethernet/realtek/r8169.c
 +F:    drivers/net/ethernet/realtek/r8169*
  
  8250/16?50 (AND CLONE UARTS) SERIAL DRIVER
  M:    Greg Kroah-Hartman <gregkh@linuxfoundation.org>
@@@ -517,6 -517,14 +517,6 @@@ W:        http://ez.analog.com/community/linux
  S:    Supported
  F:    drivers/video/backlight/adp8860_bl.c
  
 -ADS1015 HARDWARE MONITOR DRIVER
 -M:    Dirk Eibach <eibach@gdsys.de>
 -L:    linux-hwmon@vger.kernel.org
 -S:    Maintained
 -F:    Documentation/hwmon/ads1015.rst
 -F:    drivers/hwmon/ads1015.c
 -F:    include/linux/platform_data/ads1015.h
 -
  ADT746X FAN DRIVER
  M:    Colin Leroy <colin@colino.net>
  S:    Maintained
@@@ -675,7 -683,7 +675,7 @@@ S: Maintaine
  F:    drivers/crypto/sunxi-ss/
  
  ALLWINNER VPU DRIVER
 -M:    Maxime Ripard <maxime.ripard@bootlin.com>
 +M:    Maxime Ripard <mripard@kernel.org>
  M:    Paul Kocialkowski <paul.kocialkowski@bootlin.com>
  L:    linux-media@vger.kernel.org
  S:    Maintained
@@@ -1342,7 -1350,8 +1342,7 @@@ M:      Will Deacon <will@kernel.org
  R:    Robin Murphy <robin.murphy@arm.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
 -F:    drivers/iommu/arm-smmu.c
 -F:    drivers/iommu/arm-smmu-v3.c
 +F:    drivers/iommu/arm-smmu*
  F:    drivers/iommu/io-pgtable-arm.c
  F:    drivers/iommu/io-pgtable-arm-v7s.c
  
@@@ -1399,7 -1408,7 +1399,7 @@@ S:      Maintaine
  F:    drivers/clk/sunxi/
  
  ARM/Allwinner sunXi SoC support
 -M:    Maxime Ripard <maxime.ripard@bootlin.com>
 +M:    Maxime Ripard <mripard@kernel.org>
  M:    Chen-Yu Tsai <wens@csie.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
@@@ -3568,7 -3577,7 +3568,7 @@@ F:      Documentation/filesystems/caching/ca
  F:    fs/cachefiles/
  
  CADENCE MIPI-CSI2 BRIDGES
 -M:    Maxime Ripard <maxime.ripard@bootlin.com>
 +M:    Maxime Ripard <mripard@kernel.org>
  L:    linux-media@vger.kernel.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/media/cdns,*.txt
@@@ -4281,6 -4290,14 +4281,14 @@@ S:    Supporte
  F:    drivers/cpuidle/cpuidle-exynos.c
  F:    arch/arm/mach-exynos/pm.c
  
+ CPUIDLE DRIVER - ARM PSCI
+ M:    Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
+ M:    Sudeep Holla <sudeep.holla@arm.com>
+ L:    linux-pm@vger.kernel.org
+ L:    linux-arm-kernel@lists.infradead.org
+ S:    Supported
+ F:    drivers/cpuidle/cpuidle-psci.c
  CPU IDLE TIME MANAGEMENT FRAMEWORK
  M:    "Rafael J. Wysocki" <rjw@rjwysocki.net>
  M:    Daniel Lezcano <daniel.lezcano@linaro.org>
@@@ -5286,7 -5303,7 +5294,7 @@@ F:      include/linux/vga
  
  DRM DRIVERS AND MISC GPU PATCHES
  M:    Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
 -M:    Maxime Ripard <maxime.ripard@bootlin.com>
 +M:    Maxime Ripard <mripard@kernel.org>
  M:    Sean Paul <sean@poorly.run>
  W:    https://01.org/linuxgraphics/gfx-docs/maintainer-tools/drm-misc.html
  S:    Maintained
@@@ -5299,7 -5316,7 +5307,7 @@@ F:      include/uapi/drm/drm
  F:    include/linux/vga*
  
  DRM DRIVERS FOR ALLWINNER A10
 -M:    Maxime Ripard  <maxime.ripard@bootlin.com>
 +M:    Maxime Ripard <mripard@kernel.org>
  L:    dri-devel@lists.freedesktop.org
  S:    Supported
  F:    drivers/gpu/drm/sun4i/
@@@ -5752,11 -5769,6 +5760,11 @@@ S:    Supporte
  F:    drivers/edac/aspeed_edac.c
  F:    Documentation/devicetree/bindings/edac/aspeed-sdram-edac.txt
  
 +EDAC-BLUEFIELD
 +M:    Shravan Kumar Ramani <sramani@mellanox.com>
 +S:    Supported
 +F:    drivers/edac/bluefield_edac.c
 +
  EDAC-CALXEDA
  M:    Robert Richter <rric@kernel.org>
  L:    linux-edac@vger.kernel.org
@@@ -5781,11 -5793,10 +5789,11 @@@ F:   drivers/edac/thunderx_edac
  EDAC-CORE
  M:    Borislav Petkov <bp@alien8.de>
  M:    Mauro Carvalho Chehab <mchehab@kernel.org>
 +M:    Tony Luck <tony.luck@intel.com>
  R:    James Morse <james.morse@arm.com>
 +R:    Robert Richter <rrichter@marvell.com>
  L:    linux-edac@vger.kernel.org
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp.git for-next
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac.git linux_next
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras.git edac-for-next
  S:    Supported
  F:    Documentation/admin-guide/ras.rst
  F:    Documentation/driver-api/edac.rst
@@@ -6062,7 -6073,7 +6070,7 @@@ M:      Florian Fainelli <f.fainelli@gmail.c
  M:    Heiner Kallweit <hkallweit1@gmail.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
 -F:    Documentation/ABI/testing/sysfs-bus-mdio
 +F:    Documentation/ABI/testing/sysfs-class-net-phydev
  F:    Documentation/devicetree/bindings/net/ethernet-phy.yaml
  F:    Documentation/devicetree/bindings/net/mdio*
  F:    Documentation/networking/phy.rst
@@@ -6328,11 -6339,20 +6336,11 @@@ S:   Odd Fixe
  L:    linux-block@vger.kernel.org
  F:    drivers/block/floppy.c
  
 -FMC SUBSYSTEM
 -M:    Alessandro Rubini <rubini@gnudd.com>
 -W:    http://www.ohwr.org/projects/fmc-bus
 -S:    Supported
 -F:    drivers/fmc/
 -F:    include/linux/fmc*.h
 -F:    include/linux/ipmi-fru.h
 -K:    fmc_d.*register
 -
  FPGA MANAGER FRAMEWORK
  M:    Moritz Fischer <mdf@kernel.org>
  L:    linux-fpga@vger.kernel.org
  S:    Maintained
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/atull/linux-fpga.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mdf/linux-fpga.git
  Q:    http://patchwork.kernel.org/project/linux-fpga/list/
  F:    Documentation/fpga/
  F:    Documentation/driver-api/fpga/
@@@ -6365,7 -6385,7 +6373,7 @@@ FRAMEBUFFER LAYE
  M:    Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
  L:    dri-devel@lists.freedesktop.org
  L:    linux-fbdev@vger.kernel.org
 -T:    git git://github.com/bzolnier/linux.git
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
  Q:    http://patchwork.kernel.org/project/linux-fbdev/list/
  S:    Maintained
  F:    Documentation/fb/
@@@ -6427,16 -6447,9 +6435,17 @@@ M:    Frank Li <Frank.li@nxp.com
  L:    linux-arm-kernel@lists.infradead.org
  S:    Maintained
  F:    drivers/perf/fsl_imx8_ddr_perf.c
+ F:    Documentation/admin-guide/perf/imx-ddr.rst
  F:    Documentation/devicetree/bindings/perf/fsl-imx-ddr.txt
  
 +FREESCALE IMX I2C DRIVER
 +M:    Oleksij Rempel <o.rempel@pengutronix.de>
 +R:    Pengutronix Kernel Team <kernel@pengutronix.de>
 +L:    linux-i2c@vger.kernel.org
 +S:    Maintained
 +F:    drivers/i2c/busses/i2c-imx.c
 +F:    Documentation/devicetree/bindings/i2c/i2c-imx.txt
 +
  FREESCALE IMX LPI2C DRIVER
  M:    Dong Aisheng <aisheng.dong@nxp.com>
  L:    linux-i2c@vger.kernel.org
@@@ -6720,6 -6733,13 +6729,13 @@@ W:    https://linuxtv.or
  S:    Maintained
  F:    drivers/media/radio/radio-gemtek*
  
+ GENERIC ARCHITECTURE TOPOLOGY
+ M:    Sudeep Holla <sudeep.holla@arm.com>
+ L:    linux-kernel@vger.kernel.org
+ S:    Maintained
+ F:    drivers/base/arch_topology.c
+ F:    include/linux/arch_topology.h
  GENERIC GPIO I2C DRIVER
  M:    Wolfram Sang <wsa+renesas@sang-engineering.com>
  S:    Supported
@@@ -6823,6 -6843,13 +6839,6 @@@ F:     Documentation/filesystems/gfs2*.tx
  F:    fs/gfs2/
  F:    include/uapi/linux/gfs2_ondisk.h
  
 -GIGASET ISDN DRIVERS
 -M:    Paul Bolle <pebolle@tiscali.nl>
 -L:    gigaset307x-common@lists.sourceforge.net
 -W:    http://gigaset307x.sourceforge.net/
 -S:    Odd Fixes
 -F:    drivers/staging/isdn/gigaset/
 -
  GNSS SUBSYSTEM
  M:    Johan Hovold <johan@kernel.org>
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/johan/gnss.git
@@@ -7448,7 -7475,7 +7464,7 @@@ F:      drivers/net/hyperv
  F:    drivers/scsi/storvsc_drv.c
  F:    drivers/uio/uio_hv_generic.c
  F:    drivers/video/fbdev/hyperv_fb.c
 -F:    drivers/iommu/hyperv_iommu.c
 +F:    drivers/iommu/hyperv-iommu.c
  F:    net/vmw_vsock/hyperv_transport.c
  F:    include/clocksource/hyperv_timer.h
  F:    include/linux/hyperv.h
@@@ -7501,7 -7528,7 +7517,7 @@@ I2C MV64XXX MARVELL AND ALLWINNER DRIVE
  M:    Gregory CLEMENT <gregory.clement@bootlin.com>
  L:    linux-i2c@vger.kernel.org
  S:    Maintained
 -F:    Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt
 +F:    Documentation/devicetree/bindings/i2c/marvell,mv64xxx-i2c.yaml
  F:    drivers/i2c/busses/i2c-mv64xxx.c
  
  I2C OVER PARALLEL PORT
@@@ -8038,7 -8065,6 +8054,7 @@@ S:      Maintaine
  F:    drivers/video/fbdev/i810/
  
  INTEL ASoC DRIVERS
 +M:    Cezary Rojewski <cezary.rojewski@intel.com>
  M:    Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
  M:    Liam Girdwood <liam.r.girdwood@linux.intel.com>
  M:    Jie Yang <yang.jie@linux.intel.com>
@@@ -8060,13 -8086,6 +8076,13 @@@ T:    git git://git.code.sf.net/p/intel-sa
  S:    Supported
  F:    drivers/scsi/isci/
  
 +INTEL CPU family model numbers
 +M:    Tony Luck <tony.luck@intel.com>
 +M:    x86@kernel.org
 +L:    linux-kernel@vger.kernel.org
 +S:    Supported
 +F:    arch/x86/include/asm/intel-family.h
 +
  INTEL DRM DRIVERS (excluding Poulsbo, Moorestown and derivative chipsets)
  M:    Jani Nikula <jani.nikula@linux.intel.com>
  M:    Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
@@@ -8373,6 -8392,12 +8389,6 @@@ F:     Documentation/x86/intel_txt.rs
  F:    include/linux/tboot.h
  F:    arch/x86/kernel/tboot.c
  
 -INTEL-MID GPIO DRIVER
 -M:    David Cohen <david.a.cohen@linux.intel.com>
 -L:    linux-gpio@vger.kernel.org
 -S:    Maintained
 -F:    drivers/gpio/gpio-intel-mid.c
 -
  INTERCONNECT API
  M:    Georgi Djakov <georgi.djakov@linaro.org>
  L:    linux-pm@vger.kernel.org
@@@ -8412,6 -8437,7 +8428,6 @@@ L:      linux-xfs@vger.kernel.or
  L:    linux-fsdevel@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git
  S:    Supported
 -F:    fs/iomap.c
  F:    fs/iomap/
  F:    include/linux/iomap.h
  
@@@ -8436,6 -8462,11 +8452,6 @@@ S:     Maintaine
  F:    fs/io_uring.c
  F:    include/uapi/linux/io_uring.h
  
 -IP MASQUERADING
 -M:    Juanjo Ciarlante <jjciarla@raiz.uncu.edu.ar>
 -S:    Maintained
 -F:    net/ipv4/netfilter/ipt_MASQUERADE.c
 -
  IPMI SUBSYSTEM
  M:    Corey Minyard <minyard@acm.org>
  L:    openipmi-developer@lists.sourceforge.net (moderated for non-subscribers)
@@@ -8809,6 -8840,14 +8825,6 @@@ F:     virt/kvm/
  F:    tools/kvm/
  F:    tools/testing/selftests/kvm/
  
 -KERNEL VIRTUAL MACHINE FOR AMD-V (KVM/amd)
 -M:    Joerg Roedel <joro@8bytes.org>
 -L:    kvm@vger.kernel.org
 -W:    http://www.linux-kvm.org/
 -S:    Maintained
 -F:    arch/x86/include/asm/svm.h
 -F:    arch/x86/kvm/svm.c
 -
  KERNEL VIRTUAL MACHINE FOR ARM/ARM64 (KVM/arm, KVM/arm64)
  M:    Marc Zyngier <maz@kernel.org>
  R:    James Morse <james.morse@arm.com>
@@@ -8851,7 -8890,7 +8867,7 @@@ M:      Christian Borntraeger <borntraeger@d
  M:    Janosch Frank <frankja@linux.ibm.com>
  R:    David Hildenbrand <david@redhat.com>
  R:    Cornelia Huck <cohuck@redhat.com>
 -L:    linux-s390@vger.kernel.org
 +L:    kvm@vger.kernel.org
  W:    http://www.ibm.com/developerworks/linux/linux390/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux.git
  S:    Supported
@@@ -8866,11 -8905,6 +8882,11 @@@ 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>
 +R:    Jim Mattson <jmattson@google.com>
 +R:    Joerg Roedel <joro@8bytes.org>
  L:    kvm@vger.kernel.org
  W:    http://www.linux-kvm.org
  T:    git git://git.kernel.org/pub/scm/virt/kvm/kvm.git
@@@ -8878,12 -8912,8 +8894,12 @@@ S:    Supporte
  F:    arch/x86/kvm/
  F:    arch/x86/kvm/*/
  F:    arch/x86/include/uapi/asm/kvm*
 +F:    arch/x86/include/uapi/asm/vmx.h
 +F:    arch/x86/include/uapi/asm/svm.h
  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/kernel/kvm.c
  F:    arch/x86/kernel/kvmclock.c
  
@@@ -8915,7 -8945,7 +8931,7 @@@ F:      security/keys/encrypted-keys
  
  KEYS-TRUSTED
  M:    James Bottomley <jejb@linux.ibm.com>
 -M:      Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
 +M:    Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
  M:    Mimi Zohar <zohar@linux.ibm.com>
  L:    linux-integrity@vger.kernel.org
  L:    keyrings@vger.kernel.org
@@@ -9211,18 -9241,6 +9227,18 @@@ F:    include/linux/nd.
  F:    include/linux/libnvdimm.h
  F:    include/uapi/linux/ndctl.h
  
 +LICENSES and SPDX stuff
 +M:    Thomas Gleixner <tglx@linutronix.de>
 +M:    Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 +L:    linux-spdx@vger.kernel.org
 +S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/spdx.git
 +F:    COPYING
 +F:    Documentation/process/license-rules.rst
 +F:    LICENSES/
 +F:    scripts/spdxcheck-test.sh
 +F:    scripts/spdxcheck.py
 +
  LIGHTNVM PLATFORM SUPPORT
  M:    Matias Bjorling <mb@lightnvm.io>
  W:    http://github/OpenChannelSSD
@@@ -11075,7 -11093,7 +11091,7 @@@ NET_FAILOVER MODUL
  M:    Sridhar Samudrala <sridhar.samudrala@intel.com>
  L:    netdev@vger.kernel.org
  S:    Supported
 -F:    driver/net/net_failover.c
 +F:    drivers/net/net_failover.c
  F:    include/net/net_failover.h
  F:    Documentation/networking/net_failover.rst
  
@@@ -11147,7 -11165,6 +11163,7 @@@ L:   netdev@vger.kernel.or
  S:    Maintained
  W:    https://fedorahosted.org/dropwatch/
  F:    net/core/drop_monitor.c
 +F:    include/uapi/linux/net_dropmon.h
  
  NETWORKING DRIVERS
  M:    "David S. Miller" <davem@davemloft.net>
@@@ -11286,7 -11303,6 +11302,7 @@@ 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>
 +M:    Jakub Kicinski <jakub.kicinski@netronome.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    net/tls/*
@@@ -14467,7 -14483,6 +14483,7 @@@ F:   drivers/net/phy/phylink.
  F:    drivers/net/phy/sfp*
  F:    include/linux/phylink.h
  F:    include/linux/sfp.h
 +K:    phylink
  
  SGI GRU DRIVER
  M:    Dimitri Sivanich <sivanich@sgi.com>
@@@ -14873,9 -14888,9 +14889,9 @@@ F:   include/linux/arm_sdei.
  F:    include/uapi/linux/arm_sdei.h
  
  SOFTWARE RAID (Multiple Disks) SUPPORT
 -M:    Shaohua Li <shli@kernel.org>
 +M:    Song Liu <song@kernel.org>
  L:    linux-raid@vger.kernel.org
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/shli/md.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/song/md.git
  S:    Supported
  F:    drivers/md/Makefile
  F:    drivers/md/Kconfig
@@@ -16090,7 -16105,7 +16106,7 @@@ S:   Maintaine
  F:    drivers/net/ethernet/ti/netcp*
  
  TI PCM3060 ASoC CODEC DRIVER
 -M:    Kirill Marinushkin <kmarinushkin@birdec.tech>
 +M:    Kirill Marinushkin <kmarinushkin@birdec.com>
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
  S:    Maintained
  F:    Documentation/devicetree/bindings/sound/pcm3060.txt
@@@ -17245,7 -17260,6 +17261,7 @@@ F:   Documentation/power/regulator
  F:    drivers/regulator/
  F:    include/dt-bindings/regulator/
  F:    include/linux/regulator/
 +K:    regulator_get_optional
  
  VRF
  M:    David Ahern <dsa@cumulusnetworks.com>
@@@ -17567,6 -17581,7 +17583,6 @@@ M:   Jakub Kicinski <jakub.kicinski@netro
  M:    Jesper Dangaard Brouer <hawk@kernel.org>
  M:    John Fastabend <john.fastabend@gmail.com>
  L:    netdev@vger.kernel.org
 -L:    xdp-newbies@vger.kernel.org
  L:    bpf@vger.kernel.org
  S:    Supported
  F:    net/core/xdp.c
@@@ -17682,7 -17697,8 +17698,7 @@@ F:   include/uapi/linux/dqblk_xfs.
  F:    include/uapi/linux/fsmap.h
  
  XILINX AXI ETHERNET DRIVER
 -M:    Anirudha Sarangi <anirudh@xilinx.com>
 -M:    John Linn <John.Linn@xilinx.com>
 +M:    Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
  S:    Maintained
  F:    drivers/net/ethernet/xilinx/xilinx_axienet*
  
diff --combined Makefile
index 6886f22902c9cbff2f5640f0f72bfc08d0ef4356,9e6ec0c9962cd18ab866ae3b7275bba1549c828c..4262ef93a294f4a8dd18c7a8d810e00444ee8c09
+++ b/Makefile
@@@ -2,7 -2,7 +2,7 @@@
  VERSION = 5
  PATCHLEVEL = 3
  SUBLEVEL = 0
 -EXTRAVERSION = -rc3
 +EXTRAVERSION =
  NAME = Bobtail Squid
  
  # *DOCUMENTATION*
@@@ -419,7 -419,6 +419,7 @@@ NM         = $(CROSS_COMPILE)n
  STRIP         = $(CROSS_COMPILE)strip
  OBJCOPY               = $(CROSS_COMPILE)objcopy
  OBJDUMP               = $(CROSS_COMPILE)objdump
 +OBJSIZE               = $(CROSS_COMPILE)size
  PAHOLE                = pahole
  LEX           = flex
  YACC          = bison
@@@ -476,9 -475,9 +476,9 @@@ GCC_PLUGINS_CFLAGS :
  CLANG_FLAGS :=
  
  export ARCH SRCARCH CONFIG_SHELL HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE AS LD CC
 -export CPP AR NM STRIP OBJCOPY OBJDUMP PAHOLE KBUILD_HOSTLDFLAGS KBUILD_HOSTLDLIBS
 -export MAKE LEX YACC AWK INSTALLKERNEL PERL PYTHON PYTHON2 PYTHON3 UTS_MACHINE
 -export HOSTCXX KBUILD_HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS
 +export CPP AR NM STRIP OBJCOPY OBJDUMP OBJSIZE PAHOLE LEX YACC AWK INSTALLKERNEL
 +export PERL PYTHON PYTHON2 PYTHON3 CHECK CHECKFLAGS MAKE UTS_MACHINE HOSTCXX
 +export KBUILD_HOSTCXXFLAGS KBUILD_HOSTLDFLAGS KBUILD_HOSTLDLIBS LDFLAGS_MODULE
  
  export KBUILD_CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS KBUILD_LDFLAGS
  export KBUILD_CFLAGS CFLAGS_KERNEL CFLAGS_MODULE
@@@ -846,7 -845,7 +846,7 @@@ NOSTDINC_FLAGS += -nostdinc -isystem $(
  KBUILD_CFLAGS += -Wdeclaration-after-statement
  
  # Warn about unmarked fall-throughs in switch statement.
 -KBUILD_CFLAGS += $(call cc-option,-Wimplicit-fallthrough=3,)
 +KBUILD_CFLAGS += $(call cc-option,-Wimplicit-fallthrough,)
  
  # Variable Length Arrays (VLAs) should not be used anywhere in the kernel
  KBUILD_CFLAGS += -Wvla
@@@ -913,6 -912,10 +913,10 @@@ ifeq ($(CONFIG_STRIP_ASM_SYMS),y
  LDFLAGS_vmlinux       += $(call ld-option, -X,)
  endif
  
+ ifeq ($(CONFIG_RELR),y)
+ LDFLAGS_vmlinux       += --pack-dyn-relocs=relr
+ endif
  # insure the checker run with the right endianness
  CHECKFLAGS += $(if $(CONFIG_CPU_BIG_ENDIAN),-mbig-endian,-mlittle-endian)
  
@@@ -1003,8 -1006,6 +1007,8 @@@ endi
  
  PHONY += prepare0
  
 +export MODORDER := $(if $(KBUILD_EXTMOD),$(KBUILD_EXTMOD)/)modules.order
 +
  ifeq ($(KBUILD_EXTMOD),)
  core-y                += kernel/ certs/ mm/ fs/ ipc/ security/ crypto/ block/
  
@@@ -1774,22 -1775,13 +1778,22 @@@ build-dir = $(patsubst %/,%,$(dir $(bui
        $(Q)$(MAKE) $(build)=$(build-dir) $(build-target)
  %.symtypes: prepare FORCE
        $(Q)$(MAKE) $(build)=$(build-dir) $(build-target)
 +ifeq ($(KBUILD_EXTMOD),)
 +# For the single build of an in-tree module, use a temporary file to avoid
 +# the situation of modules_install installing an invalid modules.order.
 +%.ko: MODORDER := .modules.tmp
 +endif
 +%.ko: prepare FORCE
 +      $(Q)$(MAKE) $(build)=$(build-dir) $(build-target:.ko=.mod)
 +      $(Q)echo $(build-target) > $(MODORDER)
 +      $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
  
  # Modules
  PHONY += /
  /: ./
  
  %/: prepare FORCE
 -      $(Q)$(MAKE) KBUILD_MODULES=1 $(build)=$(build-dir)
 +      $(Q)$(MAKE) KBUILD_MODULES=1 $(build)=$(build-dir) need-modorder=1
  
  # FIXME Should go into a make.lib or something
  # ===========================================================================
index e09760ece844fe55cbd39dc8c32910a7bfdb6708,9a8f7e51c2b137a125dedcd397a8e1a3841602ce..470ba7ae88218272c2567e5fb22197d4ea06e8b6
@@@ -21,9 -21,7 +21,7 @@@
   *    and fixed mappings
   */
  #define VMALLOC_START         (MODULES_END)
- #define VMALLOC_END           (PAGE_OFFSET - PUD_SIZE - VMEMMAP_SIZE - SZ_64K)
- #define vmemmap                       ((struct page *)VMEMMAP_START - (memstart_addr >> PAGE_SHIFT))
+ #define VMALLOC_END           (- PUD_SIZE - VMEMMAP_SIZE - SZ_64K)
  
  #define FIRST_USER_ADDRESS    0UL
  
@@@ -35,6 -33,8 +33,8 @@@
  #include <linux/mm_types.h>
  #include <linux/sched.h>
  
+ extern struct page *vmemmap;
  extern void __pte_error(const char *file, int line, unsigned long val);
  extern void __pmd_error(const char *file, int line, unsigned long val);
  extern void __pud_error(const char *file, int line, unsigned long val);
@@@ -209,7 -209,7 +209,7 @@@ static inline pmd_t pmd_mkcont(pmd_t pm
  
  static inline pte_t pte_mkdevmap(pte_t pte)
  {
 -      return set_pte_bit(pte, __pgprot(PTE_DEVMAP));
 +      return set_pte_bit(pte, __pgprot(PTE_DEVMAP | PTE_SPECIAL));
  }
  
  static inline void set_pte(pte_t *ptep, pte_t pte)
         * Only if the new pte is valid and kernel, otherwise TLB maintenance
         * or update_mmu_cache() have the necessary barriers.
         */
-       if (pte_valid_not_user(pte))
+       if (pte_valid_not_user(pte)) {
                dsb(ishst);
+               isb();
+       }
  }
  
  extern void __sync_icache_dcache(pte_t pteval);
@@@ -396,10 -398,7 +398,10 @@@ static inline int pmd_protnone(pmd_t pm
  #ifdef CONFIG_TRANSPARENT_HUGEPAGE
  #define pmd_devmap(pmd)               pte_devmap(pmd_pte(pmd))
  #endif
 -#define pmd_mkdevmap(pmd)     pte_pmd(pte_mkdevmap(pmd_pte(pmd)))
 +static inline pmd_t pmd_mkdevmap(pmd_t pmd)
 +{
 +      return pte_pmd(set_pte_bit(pmd_pte(pmd), __pgprot(PTE_DEVMAP)));
 +}
  
  #define __pmd_to_phys(pmd)    __pte_to_phys(pmd_pte(pmd))
  #define __phys_to_pmd_val(phys)       __phys_to_pte_val(phys)
@@@ -484,8 -483,10 +486,10 @@@ static inline void set_pmd(pmd_t *pmdp
  
        WRITE_ONCE(*pmdp, pmd);
  
-       if (pmd_valid(pmd))
+       if (pmd_valid(pmd)) {
                dsb(ishst);
+               isb();
+       }
  }
  
  static inline void pmd_clear(pmd_t *pmdp)
@@@ -543,8 -544,10 +547,10 @@@ static inline void set_pud(pud_t *pudp
  
        WRITE_ONCE(*pudp, pud);
  
-       if (pud_valid(pud))
+       if (pud_valid(pud)) {
                dsb(ishst);
+               isb();
+       }
  }
  
  static inline void pud_clear(pud_t *pudp)
@@@ -602,6 -605,7 +608,7 @@@ static inline void set_pgd(pgd_t *pgdp
  
        WRITE_ONCE(*pgdp, pgd);
        dsb(ishst);
+       isb();
  }
  
  static inline void pgd_clear(pgd_t *pgdp)
@@@ -859,8 -863,8 +866,8 @@@ static inline void update_mmu_cache(str
  
  #define update_mmu_cache_pmd(vma, address, pmd) do { } while (0)
  
- #define kc_vaddr_to_offset(v) ((v) & ~VA_START)
- #define kc_offset_to_vaddr(o) ((o) | VA_START)
+ #define kc_vaddr_to_offset(v) ((v) & ~PAGE_END)
+ #define kc_offset_to_vaddr(o) ((o) | PAGE_END)
  
  #ifdef CONFIG_ARM64_PA_BITS_52
  #define phys_to_ttbr(addr)    (((addr) | ((addr) >> 46)) & TTBR_BADDR_MASK_52)
index b1fdc486aed8239c681acdcab1d98550bbdf60d9,95201e5ff5e1efdd0e2eb6496c1acd7a35b89ad5..9323bcc40a58a7c34d2ec502c35fad4633a5d118
@@@ -184,17 -184,9 +184,17 @@@ static const struct arm64_ftr_bits ftr_
  };
  
  static const struct arm64_ftr_bits ftr_id_aa64mmfr0[] = {
 -      S_ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64MMFR0_TGRAN4_SHIFT, 4, ID_AA64MMFR0_TGRAN4_NI),
 -      S_ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64MMFR0_TGRAN64_SHIFT, 4, ID_AA64MMFR0_TGRAN64_NI),
 -      ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64MMFR0_TGRAN16_SHIFT, 4, ID_AA64MMFR0_TGRAN16_NI),
 +      /*
 +       * We already refuse to boot CPUs that don't support our configured
 +       * page size, so we can only detect mismatches for a page size other
 +       * than the one we're currently using. Unfortunately, SoCs like this
 +       * exist in the wild so, even though we don't like it, we'll have to go
 +       * along with it and treat them as non-strict.
 +       */
 +      S_ARM64_FTR_BITS(FTR_HIDDEN, FTR_NONSTRICT, FTR_LOWER_SAFE, ID_AA64MMFR0_TGRAN4_SHIFT, 4, ID_AA64MMFR0_TGRAN4_NI),
 +      S_ARM64_FTR_BITS(FTR_HIDDEN, FTR_NONSTRICT, FTR_LOWER_SAFE, ID_AA64MMFR0_TGRAN64_SHIFT, 4, ID_AA64MMFR0_TGRAN64_NI),
 +      ARM64_FTR_BITS(FTR_HIDDEN, FTR_NONSTRICT, FTR_LOWER_SAFE, ID_AA64MMFR0_TGRAN16_SHIFT, 4, ID_AA64MMFR0_TGRAN16_NI),
 +
        ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64MMFR0_BIGENDEL0_SHIFT, 4, 0),
        /* Linux shouldn't care about secure memory */
        ARM64_FTR_BITS(FTR_HIDDEN, FTR_NONSTRICT, FTR_LOWER_SAFE, ID_AA64MMFR0_SNSMEM_SHIFT, 4, 0),
@@@ -894,7 -886,7 +894,7 @@@ static bool has_no_hw_prefetch(const st
        u32 midr = read_cpuid_id();
  
        /* Cavium ThunderX pass 1.x and 2.x */
-       return MIDR_IS_CPU_MODEL_RANGE(midr, MIDR_THUNDERX,
+       return midr_is_cpu_model_range(midr, MIDR_THUNDERX,
                MIDR_CPU_VAR_REV(0, 0),
                MIDR_CPU_VAR_REV(1, MIDR_REVISION_MASK));
  }
index 32893b3d9164e70ec7d0dcf11619840f07def078,6e950908eb97409d60d62e034e33f0342e6fbaa5..34739e80211bc5f59f88be6793b0e4a8d15d67c8
@@@ -7,9 -7,11 +7,11 @@@
   */
  
  #include <linux/bug.h>
+ #include <linux/context_tracking.h>
  #include <linux/signal.h>
  #include <linux/personality.h>
  #include <linux/kallsyms.h>
+ #include <linux/kprobes.h>
  #include <linux/spinlock.h>
  #include <linux/uaccess.h>
  #include <linux/hardirq.h>
@@@ -511,7 -513,7 +513,7 @@@ struct sys64_hook 
        void (*handler)(unsigned int esr, struct pt_regs *regs);
  };
  
- static struct sys64_hook sys64_hooks[] = {
+ static const struct sys64_hook sys64_hooks[] = {
        {
                .esr_mask = ESR_ELx_SYS64_ISS_EL0_CACHE_OP_MASK,
                .esr_val = ESR_ELx_SYS64_ISS_EL0_CACHE_OP_VAL,
@@@ -636,7 -638,7 +638,7 @@@ static void compat_cntfrq_read_handler(
        arm64_compat_skip_faulting_instruction(regs, 4);
  }
  
- static struct sys64_hook cp15_32_hooks[] = {
+ static const struct sys64_hook cp15_32_hooks[] = {
        {
                .esr_mask = ESR_ELx_CP15_32_ISS_SYS_MASK,
                .esr_val = ESR_ELx_CP15_32_ISS_SYS_CNTFRQ,
@@@ -656,7 -658,7 +658,7 @@@ static void compat_cntvct_read_handler(
        arm64_compat_skip_faulting_instruction(regs, 4);
  }
  
- static struct sys64_hook cp15_64_hooks[] = {
+ static const struct sys64_hook cp15_64_hooks[] = {
        {
                .esr_mask = ESR_ELx_CP15_64_ISS_SYS_MASK,
                .esr_val = ESR_ELx_CP15_64_ISS_SYS_CNTVCT,
  
  asmlinkage void __exception do_cp15instr(unsigned int esr, struct pt_regs *regs)
  {
-       struct sys64_hook *hook, *hook_base;
+       const struct sys64_hook *hook, *hook_base;
  
        if (!cp15_cond_valid(esr, regs)) {
                /*
  
  asmlinkage void __exception do_sysinstr(unsigned int esr, struct pt_regs *regs)
  {
-       struct sys64_hook *hook;
+       const struct sys64_hook *hook;
  
        for (hook = sys64_hooks; hook->handler; hook++)
                if ((hook->esr_mask & esr) == hook->esr_val) {
@@@ -733,7 -735,6 +735,7 @@@ static const char *esr_class_str[] = 
        [ESR_ELx_EC_CP14_LS]            = "CP14 LDC/STC",
        [ESR_ELx_EC_FP_ASIMD]           = "ASIMD",
        [ESR_ELx_EC_CP10_ID]            = "CP10 MRC/VMRS",
 +      [ESR_ELx_EC_PAC]                = "PAC",
        [ESR_ELx_EC_CP14_64]            = "CP14 MCRR/MRRC",
        [ESR_ELx_EC_ILL]                = "PSTATE.IL",
        [ESR_ELx_EC_SVC32]              = "SVC (AArch32)",
        [ESR_ELx_EC_SMC64]              = "SMC (AArch64)",
        [ESR_ELx_EC_SYS64]              = "MSR/MRS (AArch64)",
        [ESR_ELx_EC_SVE]                = "SVE",
+       [ESR_ELx_EC_ERET]               = "ERET/ERETAA/ERETAB",
        [ESR_ELx_EC_IMP_DEF]            = "EL3 IMP DEF",
        [ESR_ELx_EC_IABT_LOW]           = "IABT (lower EL)",
        [ESR_ELx_EC_IABT_CUR]           = "IABT (current EL)",
@@@ -900,6 -902,13 +903,13 @@@ asmlinkage void do_serror(struct pt_reg
                nmi_exit();
  }
  
+ asmlinkage void enter_from_user_mode(void)
+ {
+       CT_WARN_ON(ct_state() != CONTEXT_USER);
+       user_exit_irqoff();
+ }
+ NOKPROBE_SYMBOL(enter_from_user_mode);
  void __pte_error(const char *file, int line, unsigned long val)
  {
        pr_err("%s:%d: bad pte %016lx.\n", file, line, val);
diff --combined include/linux/acpi.h
index e40e1e27ed8e28b9751b9e228f14e0654be434d1,9d0e20a2ac831ab8bb0352c7aa968517780d98ff..0fecacca51e889f6d05966b0e843fd84cb638f60
@@@ -994,11 -994,62 +994,11 @@@ void __acpi_handle_debug(struct _ddebu
  #endif
  #endif
  
 -struct acpi_gpio_params {
 -      unsigned int crs_entry_index;
 -      unsigned int line_index;
 -      bool active_low;
 -};
 -
 -struct acpi_gpio_mapping {
 -      const char *name;
 -      const struct acpi_gpio_params *data;
 -      unsigned int size;
 -
 -/* Ignore IoRestriction field */
 -#define ACPI_GPIO_QUIRK_NO_IO_RESTRICTION     BIT(0)
 -/*
 - * When ACPI GPIO mapping table is in use the index parameter inside it
 - * refers to the GPIO resource in _CRS method. That index has no
 - * distinction of actual type of the resource. When consumer wants to
 - * get GpioIo type explicitly, this quirk may be used.
 - */
 -#define ACPI_GPIO_QUIRK_ONLY_GPIOIO           BIT(1)
 -
 -      unsigned int quirks;
 -};
 -
  #if defined(CONFIG_ACPI) && defined(CONFIG_GPIOLIB)
 -int acpi_dev_add_driver_gpios(struct acpi_device *adev,
 -                            const struct acpi_gpio_mapping *gpios);
 -
 -static inline void acpi_dev_remove_driver_gpios(struct acpi_device *adev)
 -{
 -      if (adev)
 -              adev->driver_gpios = NULL;
 -}
 -
 -int devm_acpi_dev_add_driver_gpios(struct device *dev,
 -                                 const struct acpi_gpio_mapping *gpios);
 -void devm_acpi_dev_remove_driver_gpios(struct device *dev);
 -
  bool acpi_gpio_get_irq_resource(struct acpi_resource *ares,
                                struct acpi_resource_gpio **agpio);
  int acpi_dev_gpio_irq_get(struct acpi_device *adev, int index);
  #else
 -static inline int acpi_dev_add_driver_gpios(struct acpi_device *adev,
 -                            const struct acpi_gpio_mapping *gpios)
 -{
 -      return -ENXIO;
 -}
 -static inline void acpi_dev_remove_driver_gpios(struct acpi_device *adev) {}
 -
 -static inline int devm_acpi_dev_add_driver_gpios(struct device *dev,
 -                            const struct acpi_gpio_mapping *gpios)
 -{
 -      return -ENXIO;
 -}
 -static inline void devm_acpi_dev_remove_driver_gpios(struct device *dev) {}
 -
  static inline bool acpi_gpio_get_irq_resource(struct acpi_resource *ares,
                                              struct acpi_resource_gpio **agpio)
  {
@@@ -1251,11 -1302,16 +1251,16 @@@ static inline int lpit_read_residency_c
  #endif
  
  #ifdef CONFIG_ACPI_PPTT
+ int acpi_pptt_cpu_is_thread(unsigned int cpu);
  int find_acpi_cpu_topology(unsigned int cpu, int level);
  int find_acpi_cpu_topology_package(unsigned int cpu);
  int find_acpi_cpu_topology_hetero_id(unsigned int cpu);
  int find_acpi_cpu_cache_topology(unsigned int cpu, int level);
  #else
+ static inline int acpi_pptt_cpu_is_thread(unsigned int cpu)
+ {
+       return -EINVAL;
+ }
  static inline int find_acpi_cpu_topology(unsigned int cpu, int level)
  {
        return -EINVAL;