Merge tag 'kbuild-v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy...
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 3 Sep 2021 22:33:47 +0000 (15:33 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 3 Sep 2021 22:33:47 +0000 (15:33 -0700)
Pull Kbuild updates from Masahiro Yamada:

 - Add -s option (strict mode) to merge_config.sh to make it fail when
   any symbol is redefined.

 - Show a warning if a different compiler is used for building external
   modules.

 - Infer --target from ARCH for CC=clang to let you cross-compile the
   kernel without CROSS_COMPILE.

 - Make the integrated assembler default (LLVM_IAS=1) for CC=clang.

 - Add <linux/stdarg.h> to the kernel source instead of borrowing
   <stdarg.h> from the compiler.

 - Add Nick Desaulniers as a Kbuild reviewer.

 - Drop stale cc-option tests.

 - Fix the combination of CONFIG_TRIM_UNUSED_KSYMS and CONFIG_LTO_CLANG
   to handle symbols in inline assembly.

 - Show a warning if 'FORCE' is missing for if_changed rules.

 - Various cleanups

* tag 'kbuild-v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (39 commits)
  kbuild: redo fake deps at include/ksym/*.h
  kbuild: clean up objtool_args slightly
  modpost: get the *.mod file path more simply
  checkkconfigsymbols.py: Fix the '--ignore' option
  kbuild: merge vmlinux_link() between ARCH=um and other architectures
  kbuild: do not remove 'linux' link in scripts/link-vmlinux.sh
  kbuild: merge vmlinux_link() between the ordinary link and Clang LTO
  kbuild: remove stale *.symversions
  kbuild: remove unused quiet_cmd_update_lto_symversions
  gen_compile_commands: extract compiler command from a series of commands
  x86: remove cc-option-yn test for -mtune=
  arc: replace cc-option-yn uses with cc-option
  s390: replace cc-option-yn uses with cc-option
  ia64: move core-y in arch/ia64/Makefile to arch/ia64/Kbuild
  sparc: move the install rule to arch/sparc/Makefile
  security: remove unneeded subdir-$(CONFIG_...)
  kbuild: sh: remove unused install script
  kbuild: Fix 'no symbols' warning when CONFIG_TRIM_UNUSD_KSYMS=y
  kbuild: Switch to 'f' variants of integrated assembler flag
  kbuild: Shuffle blank line to improve comment meaning
  ...

17 files changed:
1  2 
MAINTAINERS
Makefile
arch/arm64/kernel/process.c
arch/mips/Makefile
arch/powerpc/kernel/prom.c
arch/powerpc/kernel/prom_init.c
arch/s390/Makefile
arch/s390/boot/pgm_check_info.c
arch/sparc/kernel/process_64.c
arch/x86/Makefile
drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h
drivers/gpu/drm/msm/disp/msm_disp_snapshot.h
include/linux/filter.h
include/linux/printk.h
lib/Kconfig.debug
scripts/Makefile.lib
scripts/mod/modpost.c

diff --combined MAINTAINERS
@@@ -459,12 -459,6 +459,12 @@@ S:       Maintaine
  W:    https://parisc.wiki.kernel.org/index.php/AD1889
  F:    sound/pci/ad1889.*
  
 +AD5110 ANALOG DEVICES DIGITAL POTENTIOMETERS DRIVER
 +M:    Mugilraj Dhavachelvan <dmugil2000@gmail.com>
 +L:    linux-iio@vger.kernel.org
 +S:    Supported
 +F:    drivers/iio/potentiometer/ad5110.c
 +
  AD525X ANALOG DEVICES DIGITAL POTENTIOMETERS DRIVER
  M:    Michael Hennerich <michael.hennerich@analog.com>
  S:    Supported
@@@ -798,7 -792,7 +798,7 @@@ F: Documentation/devicetree/bindings/i2
  F:    drivers/i2c/busses/i2c-altera.c
  
  ALTERA MAILBOX DRIVER
 -M:    Ley Foon Tan <ley.foon.tan@intel.com>
 +M:    Joyce Ooi <joyce.ooi@intel.com>
  S:    Maintained
  F:    drivers/mailbox/mailbox-altera.c
  
@@@ -1268,13 -1262,6 +1268,13 @@@ L:    linux-input@vger.kernel.or
  S:    Odd fixes
  F:    drivers/input/mouse/bcm5974.c
  
 +APPLE DART IOMMU DRIVER
 +M:    Sven Peter <sven@svenpeter.dev>
 +L:    iommu@lists.linux-foundation.org
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/iommu/apple,dart.yaml
 +F:    drivers/iommu/apple-dart.c
 +
  APPLE SMC DRIVER
  M:    Henrik Rydberg <rydberg@bitmath.org>
  L:    linux-hwmon@vger.kernel.org
@@@ -1329,13 -1316,6 +1329,13 @@@ L:    linux-media@vger.kernel.or
  S:    Maintained
  F:    drivers/media/i2c/aptina-pll.*
  
 +AQUACOMPUTER D5 NEXT PUMP SENSOR DRIVER
 +M:    Aleksa Savic <savicaleksa83@gmail.com>
 +L:    linux-hwmon@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/hwmon/aquacomputer_d5next.rst
 +F:    drivers/hwmon/aquacomputer_d5next.c
 +
  AQUANTIA ETHERNET DRIVER (atlantic)
  M:    Igor Russkikh <irusskikh@marvell.com>
  L:    netdev@vger.kernel.org
@@@ -1402,7 -1382,7 +1402,7 @@@ F:      Documentation/devicetree/bindings/ar
  F:    Documentation/devicetree/bindings/arm/arm,realview.yaml
  F:    Documentation/devicetree/bindings/arm/arm,versatile.yaml
  F:    Documentation/devicetree/bindings/arm/arm,vexpress-juno.yaml
 -F:    Documentation/devicetree/bindings/auxdisplay/arm-charlcd.txt
 +F:    Documentation/devicetree/bindings/auxdisplay/arm,versatile-lcd.yaml
  F:    Documentation/devicetree/bindings/clock/arm,syscon-icst.yaml
  F:    Documentation/devicetree/bindings/i2c/i2c-versatile.txt
  F:    Documentation/devicetree/bindings/interrupt-controller/arm,versatile-fpga-irq.txt
@@@ -1508,7 -1488,7 +1508,7 @@@ M:      Miquel Raynal <miquel.raynal@bootlin
  M:    Naga Sureshkumar Relli <nagasure@xilinx.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
 -F:    Documentation/devicetree/bindings/mtd/arm,pl353-smc.yaml
 +F:    Documentation/devicetree/bindings/memory-controllers/arm,pl353-smc.yaml
  F:    drivers/memory/pl353-smc.c
  
  ARM PRIMECELL CLCD PL110 DRIVER
@@@ -1710,7 -1690,7 +1710,7 @@@ L:      linux-arm-kernel@lists.infradead.or
  S:    Maintained
  W:    https://asahilinux.org
  B:    https://github.com/AsahiLinux/linux/issues
 -C:    irc://chat.freenode.net/asahi-dev
 +C:    irc://irc.oftc.net/asahi-dev
  T:    git https://github.com/AsahiLinux/linux.git
  F:    Documentation/devicetree/bindings/arm/apple.yaml
  F:    Documentation/devicetree/bindings/interrupt-controller/apple,aic.yaml
@@@ -2030,12 -2010,10 +2030,12 @@@ M:   Krzysztof Halasa <khalasa@piap.pl
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  F:    Documentation/devicetree/bindings/arm/intel-ixp4xx.yaml
 +F:    Documentation/devicetree/bindings/bus/intel,ixp4xx-expansion-bus-controller.yaml
  F:    Documentation/devicetree/bindings/gpio/intel,ixp4xx-gpio.txt
  F:    Documentation/devicetree/bindings/interrupt-controller/intel,ixp4xx-interrupt.yaml
  F:    Documentation/devicetree/bindings/timer/intel,ixp4xx-timer.yaml
  F:    arch/arm/mach-ixp4xx/
 +F:    drivers/bus/intel-ixp4xx-eb.c
  F:    drivers/clocksource/timer-ixp4xx.c
  F:    drivers/crypto/ixp4xx_crypto.c
  F:    drivers/gpio/gpio-ixp4xx.c
@@@ -2864,7 -2842,7 +2864,7 @@@ AS3645A LED FLASH CONTROLLER DRIVE
  M:    Sakari Ailus <sakari.ailus@iki.fi>
  L:    linux-leds@vger.kernel.org
  S:    Maintained
 -F:    drivers/leds/leds-as3645a.c
 +F:    drivers/leds/flash/leds-as3645a.c
  
  ASAHI KASEI AK7375 LENS VOICE COIL DRIVER
  M:    Tianshu Qiu <tian.shu.qiu@intel.com>
@@@ -3219,7 -3197,7 +3219,7 @@@ S:      Maintaine
  W:    https://www.open-mesh.org/
  Q:    https://patchwork.open-mesh.org/project/batman/list/
  B:    https://www.open-mesh.org/projects/batman-adv/issues
 -C:    irc://chat.freenode.net/batman
 +C:    ircs://irc.hackint.org/batadv
  T:    git https://git.open-mesh.org/linux-merge.git
  F:    Documentation/networking/batman-adv.rst
  F:    include/uapi/linux/batadv_packet.h
@@@ -3431,6 -3409,7 +3431,6 @@@ F:      drivers/net/ethernet/netronome/nfp/b
  
  BPF JIT for POWERPC (32-BIT AND 64-BIT)
  M:    Naveen N. Rao <naveen.n.rao@linux.ibm.com>
 -M:    Sandipan Das <sandipan@linux.ibm.com>
  L:    netdev@vger.kernel.org
  L:    bpf@vger.kernel.org
  S:    Maintained
@@@ -3876,7 -3855,7 +3876,7 @@@ M:      Markus Mayer <mmayer@broadcom.com
  M:    bcm-kernel-feedback-list@broadcom.com
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
 -F:    Documentation/devicetree/bindings/memory-controllers/brcm,dpfe-cpu.txt
 +F:    Documentation/devicetree/bindings/memory-controllers/brcm,dpfe-cpu.yaml
  F:    drivers/memory/brcmstb_dpfe.c
  
  BROADCOM STB NAND FLASH DRIVER
@@@ -3887,16 -3866,6 +3887,16 @@@ L:    bcm-kernel-feedback-list@broadcom.co
  S:    Maintained
  F:    drivers/mtd/nand/raw/brcmnand/
  
 +BROADCOM STB PCIE DRIVER
 +M:    Jim Quinlan <jim2101024@gmail.com>
 +M:    Nicolas Saenz Julienne <nsaenz@kernel.org>
 +M:    Florian Fainelli <f.fainelli@gmail.com>
 +M:    bcm-kernel-feedback-list@broadcom.com
 +L:    linux-pci@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml
 +F:    drivers/pci/controller/pcie-brcmstb.c
 +
  BROADCOM SYSTEMPORT ETHERNET DRIVER
  M:    Florian Fainelli <f.fainelli@gmail.com>
  L:    bcm-kernel-feedback-list@broadcom.com
@@@ -4529,9 -4498,10 +4529,10 @@@ L:    clang-built-linux@googlegroups.co
  S:    Supported
  W:    https://clangbuiltlinux.github.io/
  B:    https://github.com/ClangBuiltLinux/linux/issues
 -C:    irc://chat.freenode.net/clangbuiltlinux
 +C:    irc://irc.libera.chat/clangbuiltlinux
  F:    Documentation/kbuild/llvm.rst
  F:    include/linux/compiler-clang.h
+ F:    scripts/Makefile.clang
  F:    scripts/clang-tools/
  K:    \b(?i:clang|llvm)\b
  
@@@ -4641,7 -4611,7 +4642,7 @@@ F:      include/linux/clk
  F:    include/linux/of_clk.h
  X:    drivers/clk/clkdev.c
  
 -COMMON INTERNET FILE SYSTEM (CIFS)
 +COMMON INTERNET FILE SYSTEM CLIENT (CIFS)
  M:    Steve French <sfrench@samba.org>
  L:    linux-cifs@vger.kernel.org
  L:    samba-technical@lists.samba.org (moderated for non-subscribers)
@@@ -4650,7 -4620,6 +4651,7 @@@ W:      http://linux-cifs.samba.org
  T:    git git://git.samba.org/sfrench/cifs-2.6.git
  F:    Documentation/admin-guide/cifs/
  F:    fs/cifs/
 +F:    fs/cifs_common/
  
  COMPACTPCI HOTPLUG CORE
  M:    Scott Murray <scott@spiteful.org>
@@@ -5602,7 -5571,7 +5603,7 @@@ M:      Lukasz Luba <lukasz.luba@arm.com
  L:    linux-pm@vger.kernel.org
  L:    linux-samsung-soc@vger.kernel.org
  S:    Maintained
 -F:    Documentation/devicetree/bindings/memory-controllers/exynos5422-dmc.txt
 +F:    Documentation/devicetree/bindings/memory-controllers/samsung,exynos5422-dmc.yaml
  F:    drivers/memory/samsung/exynos5422-dmc.c
  
  DME1737 HARDWARE MONITOR DRIVER
@@@ -5716,7 -5685,6 +5717,7 @@@ DPAA2 ETHERNET SWITCH DRIVE
  M:    Ioana Ciornei <ioana.ciornei@nxp.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
 +F:    Documentation/networking/device_drivers/ethernet/freescale/dpaa2/switch-driver.rst
  F:    drivers/net/ethernet/freescale/dpaa2/dpaa2-switch*
  F:    drivers/net/ethernet/freescale/dpaa2/dpsw*
  
@@@ -5740,11 -5708,6 +5741,11 @@@ F:    Documentation/admin-guide/blockdev
  F:    drivers/block/drbd/
  F:    lib/lru_cache.c
  
 +DRIVER COMPONENT FRAMEWORK
 +L:    dri-devel@lists.freedesktop.org
 +F:    drivers/base/component.c
 +F:    include/linux/component.h
 +
  DRIVER CORE, KOBJECTS, DEBUGFS AND SYSFS
  M:    Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  R:    "Rafael J. Wysocki" <rafael@kernel.org>
@@@ -5808,7 -5771,7 +5809,7 @@@ M:      Gerd Hoffmann <kraxel@redhat.com
  L:    virtualization@lists.linux-foundation.org
  S:    Maintained
  T:    git git://anongit.freedesktop.org/drm/drm-misc
 -F:    drivers/gpu/drm/bochs/
 +F:    drivers/gpu/drm/tiny/bochs.c
  
  DRM DRIVER FOR BOE HIMAX8279D PANELS
  M:    Jerry Han <hanxu5@huaqin.corp-partner.google.com>
@@@ -5993,13 -5956,6 +5994,13 @@@ S:    Maintaine
  F:    Documentation/devicetree/bindings/display/panel/raydium,rm67191.yaml
  F:    drivers/gpu/drm/panel/panel-raydium-rm67191.c
  
 +DRM DRIVER FOR SAMSUNG DB7430 PANELS
 +M:    Linus Walleij <linus.walleij@linaro.org>
 +S:    Maintained
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
 +F:    Documentation/devicetree/bindings/display/panel/samsung,lms397kf04.yaml
 +F:    drivers/gpu/drm/panel/panel-samsung-db7430.c
 +
  DRM DRIVER FOR SITRONIX ST7703 PANELS
  M:    Guido Günther <agx@sigxcpu.org>
  R:    Purism Kernel Team <kernel@puri.sm>
@@@ -6098,27 -6054,21 +6099,27 @@@ F:   drivers/gpu/drm/vboxvideo
  
  DRM DRIVER FOR VMWARE VIRTUAL GPU
  M:    "VMware Graphics" <linux-graphics-maintainer@vmware.com>
 -M:    Roland Scheidegger <sroland@vmware.com>
  M:    Zack Rusin <zackr@vmware.com>
  L:    dri-devel@lists.freedesktop.org
  S:    Supported
 -T:    git git://people.freedesktop.org/~sroland/linux
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
  F:    drivers/gpu/drm/vmwgfx/
  F:    include/uapi/drm/vmwgfx_drm.h
  
 +DRM DRIVER FOR WIDECHIPS WS2401 PANELS
 +M:    Linus Walleij <linus.walleij@linaro.org>
 +S:    Maintained
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
 +F:    Documentation/devicetree/bindings/display/panel/samsung,lms380kf01.yaml
 +F:    drivers/gpu/drm/panel/panel-widechips-ws2401.c
 +
  DRM DRIVERS
  M:    David Airlie <airlied@linux.ie>
  M:    Daniel Vetter <daniel@ffwll.ch>
  L:    dri-devel@lists.freedesktop.org
  S:    Maintained
  B:    https://gitlab.freedesktop.org/drm
 -C:    irc://chat.freenode.net/dri-devel
 +C:    irc://irc.oftc.net/dri-devel
  T:    git git://anongit.freedesktop.org/drm/drm
  F:    Documentation/devicetree/bindings/display/
  F:    Documentation/devicetree/bindings/gpu/
@@@ -6611,7 -6561,6 +6612,7 @@@ EDAC-ARMAD
  M:    Jan Luebbe <jlu@pengutronix.de>
  L:    linux-edac@vger.kernel.org
  S:    Maintained
 +F:    Documentation/devicetree/bindings/memory-controllers/marvell,mvebu-sdram-controller.yaml
  F:    drivers/edac/armada_xp_*
  
  EDAC-AST2500
@@@ -6853,6 -6802,7 +6854,6 @@@ F:      Documentation/admin-guide/media/em28
  F:    drivers/media/usb/em28xx/
  
  EMBEDDED LINUX
 -M:    Paul Gortmaker <paul.gortmaker@windriver.com>
  M:    Matt Mackall <mpm@selenic.com>
  M:    David Woodhouse <dwmw2@infradead.org>
  L:    linux-embedded@vger.kernel.org
@@@ -6955,12 -6905,6 +6956,12 @@@ M:    Mark Einon <mark.einon@gmail.com
  S:    Odd Fixes
  F:    drivers/net/ethernet/agere/
  
 +ETAS ES58X CAN/USB DRIVER
 +M:    Vincent Mailhol <mailhol.vincent@wanadoo.fr>
 +L:    linux-can@vger.kernel.org
 +S:    Maintained
 +F:    drivers/net/can/usb/etas_es58x/
 +
  ETHERNET BRIDGE
  M:    Roopa Prabhu <roopa@nvidia.com>
  M:    Nikolay Aleksandrov <nikolay@nvidia.com>
@@@ -7002,7 -6946,7 +7003,7 @@@ F:      include/uapi/linux/mdio.
  F:    include/uapi/linux/mii.h
  
  EXFAT FILE SYSTEM
 -M:    Namjae Jeon <namjae.jeon@samsung.com>
 +M:    Namjae Jeon <linkinjeon@kernel.org>
  M:    Sungjong Seo <sj1557.seo@samsung.com>
  L:    linux-fsdevel@vger.kernel.org
  S:    Maintained
@@@ -8452,7 -8396,7 +8453,7 @@@ F:      drivers/crypto/hisilicon/sgl.
  F:    drivers/crypto/hisilicon/zip/
  
  HISILICON ROCE DRIVER
 -M:    Lijun Ou <oulijun@huawei.com>
 +M:    Wenpeng Liang <liangwenpeng@huawei.com>
  M:    Weihang Li <liweihang@huawei.com>
  L:    linux-rdma@vger.kernel.org
  S:    Maintained
@@@ -8490,12 -8434,10 +8491,12 @@@ S:   Maintaine
  F:    Documentation/devicetree/bindings/spmi/hisilicon,hisi-spmi-controller.yaml
  F:    drivers/spmi/hisi-spmi-controller.c
  
 -HISILICON STAGING DRIVERS FOR HIKEY 960/970
 +HISILICON SPMI PMIC DRIVER FOR HIKEY 6421v600
  M:    Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
 +L:    linux-kernel@vger.kernel.org
  S:    Maintained
 -F:    drivers/staging/hikey9xx/
 +F:    Documentation/devicetree/bindings/mfd/hisilicon,hi6421-spmi-pmic.yaml
 +F:    drivers/mfd/hi6421-spmi-pmic.c
  
  HISILICON TRUE RANDOM NUMBER GENERATOR V2 SUPPORT
  M:    Zaibo Xu <xuzaibo@huawei.com>
@@@ -8654,9 -8596,6 +8655,9 @@@ T:      git git://git.kernel.org/pub/scm/lin
  F:    Documentation/ABI/stable/sysfs-bus-vmbus
  F:    Documentation/ABI/testing/debugfs-hyperv
  F:    Documentation/networking/device_drivers/ethernet/microsoft/netvsc.rst
 +F:    arch/arm64/hyperv
 +F:    arch/arm64/include/asm/hyperv-tlfs.h
 +F:    arch/arm64/include/asm/mshyperv.h
  F:    arch/x86/hyperv
  F:    arch/x86/include/asm/hyperv-tlfs.h
  F:    arch/x86/include/asm/mshyperv.h
@@@ -9103,7 -9042,7 +9104,7 @@@ F:      drivers/usb/atm/ueagle-atm.
  IMGTEC ASCII LCD DRIVER
  M:    Paul Burton <paulburton@kernel.org>
  S:    Maintained
 -F:    Documentation/devicetree/bindings/auxdisplay/img-ascii-lcd.txt
 +F:    Documentation/devicetree/bindings/auxdisplay/img,ascii-lcd.yaml
  F:    drivers/auxdisplay/img-ascii-lcd.c
  
  IMGTEC IR DECODER DRIVER
@@@ -9275,20 -9214,13 +9276,20 @@@ INTEL ATOMISP2 DUMMY / POWER-MANAGEMEN
  M:    Hans de Goede <hdegoede@redhat.com>
  L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
 -F:    drivers/platform/x86/intel_atomisp2_pm.c
 +F:    drivers/platform/x86/intel/atomisp2/pm.c
  
  INTEL ATOMISP2 LED DRIVER
  M:    Hans de Goede <hdegoede@redhat.com>
  L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
 -F:    drivers/platform/x86/intel_atomisp2_led.c
 +F:    drivers/platform/x86/intel/atomisp2/led.c
 +
 +INTEL BIOS SAR INT1092 DRIVER
 +M:    Shravan S <s.shravan@intel.com>
 +M:    Intel Corporation <linuxwwan@intel.com>
 +L:    platform-driver-x86@vger.kernel.org
 +S:    Maintained
 +F:    drivers/platform/x86/intel/int1092/
  
  INTEL BROXTON PMC DRIVER
  M:    Mika Westerberg <mika.westerberg@linux.intel.com>
@@@ -9320,7 -9252,7 +9321,7 @@@ S:      Supporte
  W:    https://01.org/linuxgraphics/
  Q:    http://patchwork.freedesktop.org/project/intel-gfx/
  B:    https://gitlab.freedesktop.org/drm/intel/-/wikis/How-to-file-i915-bugs
 -C:    irc://chat.freenode.net/intel-gfx
 +C:    irc://irc.oftc.net/intel-gfx
  T:    git git://anongit.freedesktop.org/drm-intel
  F:    Documentation/gpu/i915.rst
  F:    drivers/gpu/drm/i915/
@@@ -9384,7 -9316,7 +9385,7 @@@ INTEL HID EVENT DRIVE
  M:    Alex Hung <alex.hung@canonical.com>
  L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
 -F:    drivers/platform/x86/intel-hid.c
 +F:    drivers/platform/x86/intel/hid.c
  
  INTEL I/OAT DMA DRIVER
  M:    Dave Jiang <dave.jiang@intel.com>
@@@ -9528,17 -9460,17 +9529,17 @@@ F:   include/linux/mfd/intel-m10-bmc.
  
  INTEL MENLOW THERMAL DRIVER
  M:    Sujith Thomas <sujith.thomas@intel.com>
 -L:    platform-driver-x86@vger.kernel.org
 +L:    linux-pm@vger.kernel.org
  S:    Supported
  W:    https://01.org/linux-acpi
 -F:    drivers/platform/x86/intel_menlow.c
 +F:    drivers/thermal/intel/intel_menlow.c
  
  INTEL P-Unit IPC DRIVER
  M:    Zha Qipeng <qipeng.zha@intel.com>
  L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
  F:    arch/x86/include/asm/intel_punit_ipc.h
 -F:    drivers/platform/x86/intel_punit_ipc.c
 +F:    drivers/platform/x86/intel/punit_ipc.c
  
  INTEL PMC CORE DRIVER
  M:    Rajneesh Bhardwaj <irenic.rajneesh@gmail.com>
@@@ -9546,7 -9478,7 +9547,7 @@@ M:      David E Box <david.e.box@intel.com
  L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
  F:    Documentation/ABI/testing/sysfs-platform-intel-pmc
 -F:    drivers/platform/x86/intel_pmc_core*
 +F:    drivers/platform/x86/intel/pmc/
  
  INTEL PMIC GPIO DRIVERS
  M:    Andy Shevchenko <andy@kernel.org>
@@@ -9564,7 -9496,7 +9565,7 @@@ INTEL PMT DRIVE
  M:    "David E. Box" <david.e.box@linux.intel.com>
  S:    Maintained
  F:    drivers/mfd/intel_pmt.c
 -F:    drivers/platform/x86/intel_pmt_*
 +F:    drivers/platform/x86/intel/pmt/
  
  INTEL PRO/WIRELESS 2100, 2200BG, 2915ABG NETWORK CONNECTION SUPPORT
  M:    Stanislav Yakovlev <stas.yakovlev@gmail.com>
@@@ -9601,7 -9533,7 +9602,7 @@@ INTEL SPEED SELECT TECHNOLOG
  M:    Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
  L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
 -F:    drivers/platform/x86/intel_speed_select_if/
 +F:    drivers/platform/x86/intel/speed_select_if/
  F:    include/uapi/linux/isst_if.h
  F:    tools/power/x86/intel-speed-select/
  
@@@ -9622,19 -9554,19 +9623,19 @@@ M:   "David E. Box" <david.e.box@linux.in
  L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
  F:    arch/x86/include/asm/intel_telemetry.h
 -F:    drivers/platform/x86/intel_telemetry*
 +F:    drivers/platform/x86/intel/telemetry/
  
  INTEL UNCORE FREQUENCY CONTROL
  M:    Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
  L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
 -F:    drivers/platform/x86/intel-uncore-frequency.c
 +F:    drivers/platform/x86/intel/uncore-frequency.c
  
  INTEL VIRTUAL BUTTON DRIVER
  M:    AceLan Kao <acelan.kao@canonical.com>
  L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
 -F:    drivers/platform/x86/intel-vbtn.c
 +F:    drivers/platform/x86/intel/vbtn.c
  
  INTEL WIRELESS 3945ABG/BG, 4965AGN (iwlegacy)
  M:    Stanislaw Gruszka <stf_xl@wp.pl>
@@@ -9655,12 -9587,12 +9656,12 @@@ M:   Jithu Joseph <jithu.joseph@intel.com
  R:    Maurice Ma <maurice.ma@intel.com>
  S:    Maintained
  W:    https://slimbootloader.github.io/security/firmware-update.html
 -F:    drivers/platform/x86/intel-wmi-sbl-fw-update.c
 +F:    drivers/platform/x86/intel/wmi/sbl-fw-update.c
  
  INTEL WMI THUNDERBOLT FORCE POWER DRIVER
  L:    Dell.Client.Kernel@dell.com
  S:    Maintained
 -F:    drivers/platform/x86/intel-wmi-thunderbolt.c
 +F:    drivers/platform/x86/intel/wmi/thunderbolt.c
  
  INTEL WWAN IOSM DRIVER
  M:    M Chetan Kumar <m.chetan.kumar@intel.com>
@@@ -9818,6 -9750,11 +9819,6 @@@ M:     David Sterba <dsterba@suse.com
  S:    Odd Fixes
  F:    drivers/tty/ipwireless/
  
 -IPX NETWORK LAYER
 -L:    netdev@vger.kernel.org
 -S:    Obsolete
 -F:    include/uapi/linux/ipx.h
 -
  IRQ DOMAINS (IRQ NUMBER MAPPING LIBRARY)
  M:    Marc Zyngier <maz@kernel.org>
  S:    Maintained
@@@ -10116,6 -10053,7 +10117,7 @@@ F:   fs/autofs
  KERNEL BUILD + files below scripts/ (unless maintained elsewhere)
  M:    Masahiro Yamada <masahiroy@kernel.org>
  M:    Michal Marek <michal.lkml@markovi.net>
+ R:    Nick Desaulniers <ndesaulniers@google.com>
  L:    linux-kbuild@vger.kernel.org
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git
@@@ -10167,17 -10105,6 +10169,17 @@@ T: git git://git.kernel.org/pub/scm/lin
  F:    Documentation/dev-tools/kselftest*
  F:    tools/testing/selftests/
  
 +KERNEL SMB3 SERVER (KSMBD)
 +M:    Namjae Jeon <linkinjeon@kernel.org>
 +M:    Sergey Senozhatsky <senozhatsky@chromium.org>
 +M:    Steve French <sfrench@samba.org>
 +M:    Hyunchul Lee <hyc.lee@gmail.com>
 +L:    linux-cifs@vger.kernel.org
 +S:    Maintained
 +T:    git git://git.samba.org/ksmbd.git
 +F:    fs/cifs_common/
 +F:    fs/ksmbd/
 +
  KERNEL UNIT TESTING FRAMEWORK (KUnit)
  M:    Brendan Higgins <brendanhiggins@google.com>
  L:    linux-kselftest@vger.kernel.org
@@@ -10463,7 -10390,6 +10465,7 @@@ F:   net/core/skmsg.
  F:    net/core/sock_map.c
  F:    net/ipv4/tcp_bpf.c
  F:    net/ipv4/udp_bpf.c
 +F:    net/unix/unix_bpf.c
  
  LANDLOCK SECURITY MODULE
  M:    Mickaël Salaün <mic@digikod.net>
@@@ -10685,6 -10611,15 +10687,6 @@@ F:  LICENSES
  F:    scripts/spdxcheck-test.sh
  F:    scripts/spdxcheck.py
  
 -LIGHTNVM PLATFORM SUPPORT
 -M:    Matias Bjorling <mb@lightnvm.io>
 -L:    linux-block@vger.kernel.org
 -S:    Maintained
 -W:    http://github/OpenChannelSSD
 -F:    drivers/lightnvm/
 -F:    include/linux/lightnvm.h
 -F:    include/uapi/linux/lightnvm.h
 -
  LINEAR RANGES HELPERS
  M:    Mark Brown <broonie@kernel.org>
  R:    Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
@@@ -11097,18 -11032,6 +11099,18 @@@ F: drivers/mailbox/arm_mhuv2.
  F:    include/linux/mailbox/arm_mhuv2_message.h
  F:    Documentation/devicetree/bindings/mailbox/arm,mhuv2.yaml
  
 +MANAGEMENT COMPONENT TRANSPORT PROTOCOL (MCTP)
 +M:    Jeremy Kerr <jk@codeconstruct.com.au>
 +M:    Matt Johnston <matt@codeconstruct.com.au>
 +L:    netdev@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/networking/mctp.rst
 +F:    drivers/net/mctp/
 +F:    include/net/mctp.h
 +F:    include/net/mctpdevice.h
 +F:    include/net/netns/mctp.h
 +F:    net/mctp/
 +
  MAN-PAGES: MANUAL PAGES FOR LINUX -- Sections 2, 3, 4, 5, and 7
  M:    Michael Kerrisk <mtk.manpages@gmail.com>
  L:    linux-man@vger.kernel.org
@@@ -11119,7 -11042,7 +11121,7 @@@ MARDUK (CREATOR CI40) DEVICE TREE SUPPO
  M:    Rahul Bedarkar <rahulbedarkar89@gmail.com>
  L:    linux-mips@vger.kernel.org
  S:    Maintained
 -F:    arch/mips/boot/dts/img/pistachio_marduk.dts
 +F:    arch/mips/boot/dts/img/pistachio*
  
  MARVELL 88E6XXX ETHERNET SWITCH FABRIC DRIVER
  M:    Andrew Lunn <andrew@lunn.ch>
@@@ -11406,13 -11329,7 +11408,13 @@@ W: https://linuxtv.or
  T:    git git://linuxtv.org/media_tree.git
  F:    drivers/media/radio/radio-maxiradio*
  
 -MCAB MICROCHIP CAN BUS ANALYZER TOOL DRIVER
 +MAXLINEAR ETHERNET PHY DRIVER
 +M:    Xu Liang <lxu@maxlinear.com>
 +L:    netdev@vger.kernel.org
 +S:    Supported
 +F:    drivers/net/phy/mxl-gpy.c
 +
 +MCBA MICROCHIP CAN BUS ANALYZER TOOL DRIVER
  R:    Yasushi SHOJI <yashi@spacecubics.com>
  L:    linux-can@vger.kernel.org
  S:    Maintained
@@@ -13865,15 -13782,6 +13867,15 @@@ T: git git://linuxtv.org/media_tree.gi
  F:    Documentation/devicetree/bindings/media/i2c/ov8856.yaml
  F:    drivers/media/i2c/ov8856.c
  
 +OMNIVISION OV9282 SENSOR DRIVER
 +M:    Paul J. Murphy <paul.j.murphy@intel.com>
 +M:    Daniele Alessandrelli <daniele.alessandrelli@intel.com>
 +L:    linux-media@vger.kernel.org
 +S:    Maintained
 +T:    git git://linuxtv.org/media_tree.git
 +F:    Documentation/devicetree/bindings/media/i2c/ovti,ov9282.yaml
 +F:    drivers/media/i2c/ov9282.c
 +
  OMNIVISION OV9640 SENSOR DRIVER
  M:    Petr Cvek <petrcvekcz@gmail.com>
  L:    linux-media@vger.kernel.org
@@@ -13964,12 -13872,6 +13966,12 @@@ F: Documentation/devicetree
  F:    arch/*/boot/dts/
  F:    include/dt-bindings/
  
 +OPENCOMPUTE PTP CLOCK DRIVER
 +M:    Jonathan Lemon <jonathan.lemon@gmail.com>
 +L:    netdev@vger.kernel.org
 +S:    Maintained
 +F:    drivers/ptp/ptp_ocp.c
 +
  OPENCORES I2C BUS DRIVER
  M:    Peter Korsgaard <peter@korsgaard.com>
  M:    Andrew Lunn <andrew@lunn.ch>
@@@ -14295,7 -14197,7 +14297,7 @@@ M:   Lucas Stach <l.stach@pengutronix.de
  L:    linux-pci@vger.kernel.org
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
 -F:    Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt
 +F:    Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml
  F:    drivers/pci/controller/dwc/*imx6*
  
  PCI DRIVER FOR FU740
@@@ -14383,8 -14285,7 +14385,8 @@@ M:   Jingoo Han <jingoohan1@gmail.com
  M:    Gustavo Pimentel <gustavo.pimentel@synopsys.com>
  L:    linux-pci@vger.kernel.org
  S:    Maintained
 -F:    Documentation/devicetree/bindings/pci/designware-pcie.txt
 +F:    Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml
 +F:    Documentation/devicetree/bindings/pci/snps,dw-pcie-ep.yaml
  F:    drivers/pci/controller/dwc/*designware*
  
  PCI DRIVER FOR TI DRA7XX/J721E
@@@ -14521,7 -14422,7 +14523,7 @@@ M:   Xiaowei Song <songxiaowei@hisilicon.
  M:    Binghui Wang <wangbinghui@hisilicon.com>
  L:    linux-pci@vger.kernel.org
  S:    Maintained
 -F:    Documentation/devicetree/bindings/pci/kirin-pcie.txt
 +F:    Documentation/devicetree/bindings/pci/hisilicon,kirin-pcie.yaml
  F:    drivers/pci/controller/dwc/pcie-kirin.c
  
  PCIE DRIVER FOR HISILICON STB
@@@ -14531,13 -14432,6 +14533,13 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/pci/hisilicon-histb-pcie.txt
  F:    drivers/pci/controller/dwc/pcie-histb.c
  
 +PCIE DRIVER FOR INTEL LGM GW SOC
 +M:    Rahul Tanwar <rtanwar@maxlinear.com>
 +L:    linux-pci@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/pci/intel-gw-pcie.yaml
 +F:    drivers/pci/controller/dwc/pcie-intel-gw.c
 +
  PCIE DRIVER FOR MEDIATEK
  M:    Ryder Lee <ryder.lee@mediatek.com>
  M:    Jianjun Wang <jianjun.wang@mediatek.com>
@@@ -14733,12 -14627,6 +14735,12 @@@ F: Documentation/driver-api/pin-control
  F:    drivers/pinctrl/
  F:    include/linux/pinctrl/
  
 +PIN CONTROLLER - AMD
 +M:    Basavaraj Natikar <Basavaraj.Natikar@amd.com>
 +M:    Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
 +S:    Maintained
 +F:    drivers/pinctrl/pinctrl-amd.c
 +
  PIN CONTROLLER - FREESCALE
  M:    Dong Aisheng <aisheng.dong@nxp.com>
  M:    Fabio Estevam <festevam@gmail.com>
@@@ -14757,19 -14645,12 +14759,19 @@@ S:        Maintaine
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pinctrl/intel.git
  F:    drivers/pinctrl/intel/
  
 +PIN CONTROLLER - KEEMBAY
 +M:    Lakshmi Sowjanya D <lakshmi.sowjanya.d@intel.com>
 +S:    Supported
 +F:    drivers/pinctrl/pinctrl-keembay*
 +
  PIN CONTROLLER - MEDIATEK
  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:    Documentation/devicetree/bindings/pinctrl/mediatek,mt65xx-pinctrl.yaml
 +F:    Documentation/devicetree/bindings/pinctrl/mediatek,mt6797-pinctrl.yaml
 +F:    Documentation/devicetree/bindings/pinctrl/mediatek,mt7622-pinctrl.yaml
 +F:    Documentation/devicetree/bindings/pinctrl/mediatek,mt8183-pinctrl.yaml
  F:    drivers/pinctrl/mediatek/
  
  PIN CONTROLLER - MICROCHIP AT91
@@@ -14823,6 -14704,14 +14825,6 @@@ S:  Maintaine
  W:    http://www.st.com/spear
  F:    drivers/pinctrl/spear/
  
 -PISTACHIO SOC SUPPORT
 -M:    James Hartley <james.hartley@sondrel.com>
 -L:    linux-mips@vger.kernel.org
 -S:    Odd Fixes
 -F:    arch/mips/boot/dts/img/pistachio*
 -F:    arch/mips/configs/pistachio*_defconfig
 -F:    arch/mips/pistachio/
 -
  PKTCDVD DRIVER
  M:    linux-block@vger.kernel.org
  S:    Orphan
@@@ -15039,10 -14928,12 +15041,10 @@@ S:        Maintaine
  F:    include/linux/printk.h
  F:    kernel/printk/
  
 -PRISM54 WIRELESS DRIVER
 -M:    Luis Chamberlain <mcgrof@kernel.org>
 -L:    linux-wireless@vger.kernel.org
 -S:    Obsolete
 -W:    https://wireless.wiki.kernel.org/en/users/Drivers/p54
 -F:    drivers/net/wireless/intersil/prism54/
 +PRINTK INDEXING
 +R:    Chris Down <chris@chrisdown.name>
 +S:    Maintained
 +F:    kernel/printk/index.c
  
  PROC FILESYSTEM
  L:    linux-kernel@vger.kernel.org
@@@ -15914,7 -15805,7 +15916,7 @@@ F:   Documentation/devicetree/bindings/i2
  F:    drivers/i2c/busses/i2c-emev2.c
  
  RENESAS ETHERNET DRIVERS
 -R:    Sergei Shtylyov <sergei.shtylyov@gmail.com>
 +R:    Sergey Shtylyov <s.shtylyov@omp.ru>
  L:    netdev@vger.kernel.org
  L:    linux-renesas-soc@vger.kernel.org
  F:    Documentation/devicetree/bindings/net/renesas,*.yaml
@@@ -15959,14 -15850,6 +15961,14 @@@ L: linux-renesas-soc@vger.kernel.or
  S:    Maintained
  F:    drivers/phy/renesas/phy-rcar-gen3-usb*.c
  
 +RENESAS RZ/G2L A/D DRIVER
 +M:    Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
 +L:    linux-iio@vger.kernel.org
 +L:    linux-renesas-soc@vger.kernel.org
 +S:    Supported
 +F:    Documentation/devicetree/bindings/iio/adc/renesas,rzg2l-adc.yaml
 +F:    drivers/iio/adc/rzg2l_adc.c
 +
  RESET CONTROLLER FRAMEWORK
  M:    Philipp Zabel <p.zabel@pengutronix.de>
  S:    Maintained
@@@ -16437,7 -16320,7 +16439,7 @@@ SAMSUNG EXYNOS TRUE RANDOM NUMBER GENER
  M:    Łukasz Stelmach <l.stelmach@samsung.com>
  L:    linux-samsung-soc@vger.kernel.org
  S:    Maintained
 -F:    Documentation/devicetree/bindings/rng/samsung,exynos5250-trng.txt
 +F:    Documentation/devicetree/bindings/rng/samsung,exynos5250-trng.yaml
  F:    drivers/char/hw_random/exynos-trng.c
  
  SAMSUNG FRAMEBUFFER DRIVER
@@@ -16530,14 -16413,10 +16532,14 @@@ L:        linux-samsung-soc@vger.kernel.or
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/snawrocki/clk.git
  F:    Documentation/devicetree/bindings/clock/exynos*.txt
 +F:    Documentation/devicetree/bindings/clock/samsung,*.yaml
  F:    Documentation/devicetree/bindings/clock/samsung,s3c*
  F:    Documentation/devicetree/bindings/clock/samsung,s5p*
  F:    drivers/clk/samsung/
  F:    include/dt-bindings/clock/exynos*.h
 +F:    include/dt-bindings/clock/s3c*.h
 +F:    include/dt-bindings/clock/s5p*.h
 +F:    include/dt-bindings/clock/samsung,*.h
  F:    include/linux/clk/samsung.h
  F:    include/linux/platform_data/clk-s3c2410.h
  
@@@ -16579,12 -16458,6 +16581,12 @@@ F: drivers/phy/samsung/phy-s5pv210-usb2
  F:    drivers/phy/samsung/phy-samsung-usb2.c
  F:    drivers/phy/samsung/phy-samsung-usb2.h
  
 +SANCLOUD BEAGLEBONE ENHANCED DEVICE TREE
 +M:    Paul Barker <paul.barker@sancloud.com>
 +R:    Marc Murphy <marc.murphy@sancloud.com>
 +S:    Supported
 +F:    arch/arm/boot/dts/am335x-sancloud*
 +
  SC1200 WDT DRIVER
  M:    Zwane Mwaikambo <zwanem@gmail.com>
  S:    Maintained
@@@ -16844,12 -16717,6 +16846,12 @@@ F: drivers/iio/chemical/scd30_core.
  F:    drivers/iio/chemical/scd30_i2c.c
  F:    drivers/iio/chemical/scd30_serial.c
  
 +SENSIRION SGP40 GAS SENSOR DRIVER
 +M:    Andreas Klinger <ak@it-klinger.de>
 +S:    Maintained
 +F:    Documentation/ABI/testing/sysfs-bus-iio-chemical-sgp40
 +F:    drivers/iio/chemical/sgp40.c
 +
  SENSIRION SPS30 AIR POLLUTION SENSOR DRIVER
  M:    Tomasz Duszynski <tduszyns@gmail.com>
  S:    Maintained
@@@ -17428,15 -17295,6 +17430,15 @@@ T: git git://linuxtv.org/media_tree.gi
  F:    Documentation/devicetree/bindings/media/i2c/sony,imx334.yaml
  F:    drivers/media/i2c/imx334.c
  
 +SONY IMX335 SENSOR DRIVER
 +M:    Paul J. Murphy <paul.j.murphy@intel.com>
 +M:    Daniele Alessandrelli <daniele.alessandrelli@intel.com>
 +L:    linux-media@vger.kernel.org
 +S:    Maintained
 +T:    git git://linuxtv.org/media_tree.git
 +F:    Documentation/devicetree/bindings/media/i2c/sony,imx335.yaml
 +F:    drivers/media/i2c/imx335.c
 +
  SONY IMX355 SENSOR DRIVER
  M:    Tianshu Qiu <tian.shu.qiu@intel.com>
  L:    linux-media@vger.kernel.org
@@@ -17444,15 -17302,6 +17446,15 @@@ S: Maintaine
  T:    git git://linuxtv.org/media_tree.git
  F:    drivers/media/i2c/imx355.c
  
 +SONY IMX412 SENSOR DRIVER
 +M:    Paul J. Murphy <paul.j.murphy@intel.com>
 +M:    Daniele Alessandrelli <daniele.alessandrelli@intel.com>
 +L:    linux-media@vger.kernel.org
 +S:    Maintained
 +T:    git git://linuxtv.org/media_tree.git
 +F:    Documentation/devicetree/bindings/media/i2c/sony,imx412.yaml
 +F:    drivers/media/i2c/imx412.c
 +
  SONY MEMORYSTICK SUBSYSTEM
  M:    Maxim Levitsky <maximlevitsky@gmail.com>
  M:    Alex Dubov <oakad@yahoo.com>
@@@ -17772,9 -17621,8 +17774,9 @@@ F:   drivers/staging/olpc_dcon
  
  STAGING - REALTEK RTL8188EU DRIVERS
  M:    Larry Finger <Larry.Finger@lwfinger.net>
 -S:    Odd Fixes
 -F:    drivers/staging/rtl8188eu/
 +M:    Phillip Potter <phil@philpotter.co.uk>
 +S:    Supported
 +F:    drivers/staging/r8188eu/
  
  STAGING - REALTEK RTL8712U DRIVERS
  M:    Larry Finger <Larry.Finger@lwfinger.net>
@@@ -17969,7 -17817,7 +17971,7 @@@ F:   include/linux/sync_file.
  F:    include/uapi/linux/sync_file.h
  
  SYNOPSYS ARC ARCHITECTURE
 -M:    Vineet Gupta <vgupta@synopsys.com>
 +M:    Vineet Gupta <vgupta@kernel.org>
  L:    linux-snps-arc@lists.infradead.org
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc.git
@@@ -18111,7 -17959,6 +18113,7 @@@ F:   drivers/regulator/scmi-regulator.
  F:    drivers/reset/reset-scmi.c
  F:    include/linux/sc[mp]i_protocol.h
  F:    include/trace/events/scmi.h
 +F:    include/uapi/linux/virtio_scmi.h
  
  SYSTEM RESET/SHUTDOWN DRIVERS
  M:    Sebastian Reichel <sre@kernel.org>
@@@ -18962,14 -18809,6 +18964,14 @@@ F: arch/x86/mm/testmmiotrace.
  F:    include/linux/mmiotrace.h
  F:    kernel/trace/trace_mmiotrace.c
  
 +TRADITIONAL CHINESE DOCUMENTATION
 +M:    Hu Haowen <src.res@email.cn>
 +L:    linux-doc-tw-discuss@lists.sourceforge.net
 +S:    Maintained
 +W:    https://github.com/srcres258/linux-doc
 +T:    git git://github.com/srcres258/linux-doc.git doc-zh-tw
 +F:    Documentation/translations/zh_TW/
 +
  TRIVIAL PATCHES
  M:    Jiri Kosina <trivial@kernel.org>
  S:    Maintained
@@@ -19629,7 -19468,6 +19631,7 @@@ T:   git git://github.com/awilliam/linux-
  F:    Documentation/driver-api/vfio.rst
  F:    drivers/vfio/
  F:    include/linux/vfio.h
 +F:    include/linux/vfio_pci_core.h
  F:    include/uapi/linux/vfio.h
  
  VFIO FSL-MC DRIVER
@@@ -19880,15 -19718,6 +19882,15 @@@ S: Maintaine
  F:    include/uapi/linux/virtio_snd.h
  F:    sound/virtio/*
  
 +VIRTIO I2C DRIVER
 +M:    Jie Deng <jie.deng@intel.com>
 +M:    Viresh Kumar <viresh.kumar@linaro.org>
 +L:    linux-i2c@vger.kernel.org
 +L:    virtualization@lists.linux-foundation.org
 +S:    Maintained
 +F:    drivers/i2c/busses/i2c-virtio.c
 +F:    include/uapi/linux/virtio_i2c.h
 +
  VIRTUAL BOX GUEST DEVICE DRIVER
  M:    Hans de Goede <hdegoede@redhat.com>
  M:    Arnd Bergmann <arnd@arndb.de>
@@@ -20190,8 -20019,7 +20192,8 @@@ F:   Documentation/devicetree/bindings/ex
  F:    Documentation/devicetree/bindings/mfd/wlf,arizona.yaml
  F:    Documentation/devicetree/bindings/mfd/wm831x.txt
  F:    Documentation/devicetree/bindings/regulator/wlf,arizona.yaml
 -F:    Documentation/devicetree/bindings/sound/wlf,arizona.yaml
 +F:    Documentation/devicetree/bindings/sound/wlf,*.yaml
 +F:    Documentation/devicetree/bindings/sound/wm*
  F:    Documentation/hwmon/wm83??.rst
  F:    arch/arm/mach-s3c/mach-crag6410*
  F:    drivers/clk/clk-wm83*.c
diff --combined Makefile
+++ b/Makefile
@@@ -2,7 -2,7 +2,7 @@@
  VERSION = 5
  PATCHLEVEL = 14
  SUBLEVEL = 0
 -EXTRAVERSION = -rc5
 +EXTRAVERSION =
  NAME = Opossums on Parade
  
  # *DOCUMENTATION*
@@@ -191,10 -191,9 +191,9 @@@ endi
  ifneq ($(abs_srctree),$(abs_objtree))
  # Look for make include files relative to root of kernel src
  #
- # This does not become effective immediately because MAKEFLAGS is re-parsed
- # once after the Makefile is read. We need to invoke sub-make.
+ # --included-dir is added for backward compatibility, but you should not rely on
+ # it. Please add $(srctree)/ prefix to include Makefiles in the source tree.
  MAKEFLAGS += --include-dir=$(abs_srctree)
- need-sub-make := 1
  endif
  
  ifneq ($(filter 3.%,$(MAKE_VERSION)),)
@@@ -404,11 -403,6 +403,11 @@@ ifeq ($(ARCH),sparc64
         SRCARCH := sparc
  endif
  
 +# Additional ARCH settings for parisc
 +ifeq ($(ARCH),parisc64)
 +       SRCARCH := parisc
 +endif
 +
  export cross_compiling :=
  ifneq ($(SRCARCH),$(SUBARCH))
  cross_compiling := 1
@@@ -587,23 -581,10 +586,10 @@@ endi
  # Some architectures define CROSS_COMPILE in arch/$(SRCARCH)/Makefile.
  # CC_VERSION_TEXT is referenced from Kconfig (so it needs export),
  # and from include/config/auto.conf.cmd to detect the compiler upgrade.
- CC_VERSION_TEXT = $(subst $(pound),,$(shell $(CC) --version 2>/dev/null | head -n 1))
+ CC_VERSION_TEXT = $(subst $(pound),,$(shell LC_ALL=C $(CC) --version 2>/dev/null | head -n 1))
  
  ifneq ($(findstring clang,$(CC_VERSION_TEXT)),)
- ifneq ($(CROSS_COMPILE),)
- CLANG_FLAGS   += --target=$(notdir $(CROSS_COMPILE:%-=%))
- endif
- ifeq ($(LLVM_IAS),1)
- CLANG_FLAGS   += -integrated-as
- else
- CLANG_FLAGS   += -no-integrated-as
- GCC_TOOLCHAIN_DIR := $(dir $(shell which $(CROSS_COMPILE)elfedit))
- CLANG_FLAGS   += --prefix=$(GCC_TOOLCHAIN_DIR)$(notdir $(CROSS_COMPILE))
- endif
- CLANG_FLAGS   += -Werror=unknown-warning-option
- KBUILD_CFLAGS += $(CLANG_FLAGS)
- KBUILD_AFLAGS += $(CLANG_FLAGS)
- export CLANG_FLAGS
+ include $(srctree)/scripts/Makefile.clang
  endif
  
  # Include this also for config targets because some architectures need
@@@ -688,9 -669,10 +674,10 @@@ endif # KBUILD_EXTMO
  # Defaults to vmlinux, but the arch makefile usually adds further targets
  all: vmlinux
  
- CFLAGS_GCOV   := -fprofile-arcs -ftest-coverage \
-       $(call cc-option,-fno-tree-loop-im) \
-       $(call cc-disable-warning,maybe-uninitialized,)
+ CFLAGS_GCOV   := -fprofile-arcs -ftest-coverage
+ ifdef CONFIG_CC_IS_GCC
+ CFLAGS_GCOV   += -fno-tree-loop-im
+ endif
  export CFLAGS_GCOV
  
  # The arch Makefiles can override CC_FLAGS_FTRACE. We may also append it later.
@@@ -698,12 -680,14 +685,14 @@@ ifdef CONFIG_FUNCTION_TRACE
    CC_FLAGS_FTRACE := -pg
  endif
  
- RETPOLINE_CFLAGS_GCC := -mindirect-branch=thunk-extern -mindirect-branch-register
- RETPOLINE_VDSO_CFLAGS_GCC := -mindirect-branch=thunk-inline -mindirect-branch-register
- RETPOLINE_CFLAGS_CLANG := -mretpoline-external-thunk
- RETPOLINE_VDSO_CFLAGS_CLANG := -mretpoline
- RETPOLINE_CFLAGS := $(call cc-option,$(RETPOLINE_CFLAGS_GCC),$(call cc-option,$(RETPOLINE_CFLAGS_CLANG)))
- RETPOLINE_VDSO_CFLAGS := $(call cc-option,$(RETPOLINE_VDSO_CFLAGS_GCC),$(call cc-option,$(RETPOLINE_VDSO_CFLAGS_CLANG)))
+ ifdef CONFIG_CC_IS_GCC
+ RETPOLINE_CFLAGS      := $(call cc-option,-mindirect-branch=thunk-extern -mindirect-branch-register)
+ RETPOLINE_VDSO_CFLAGS := $(call cc-option,-mindirect-branch=thunk-inline -mindirect-branch-register)
+ endif
+ ifdef CONFIG_CC_IS_CLANG
+ RETPOLINE_CFLAGS      := -mretpoline-external-thunk
+ RETPOLINE_VDSO_CFLAGS := -mretpoline
+ endif
  export RETPOLINE_CFLAGS
  export RETPOLINE_VDSO_CFLAGS
  
@@@ -756,7 -740,7 +745,7 @@@ include/config/auto.conf
  endif # may-sync-config
  endif # need-config
  
- KBUILD_CFLAGS += $(call cc-option,-fno-delete-null-pointer-checks,)
+ KBUILD_CFLAGS += -fno-delete-null-pointer-checks
  KBUILD_CFLAGS += $(call cc-disable-warning,frame-address,)
  KBUILD_CFLAGS += $(call cc-disable-warning, format-truncation)
  KBUILD_CFLAGS += $(call cc-disable-warning, format-overflow)
@@@ -771,17 -755,19 +760,19 @@@ KBUILD_CFLAGS += -O
  endif
  
  # Tell gcc to never replace conditional load with a non-conditional one
+ ifdef CONFIG_CC_IS_GCC
+ # gcc-10 renamed --param=allow-store-data-races=0 to
+ # -fno-allow-store-data-races.
  KBUILD_CFLAGS += $(call cc-option,--param=allow-store-data-races=0)
  KBUILD_CFLAGS += $(call cc-option,-fno-allow-store-data-races)
+ endif
  
  ifdef CONFIG_READABLE_ASM
  # Disable optimizations that make assembler listings hard to read.
  # reorder blocks reorders the control in the function
  # ipa clone creates specialized cloned functions
  # partial inlining inlines only parts of functions
- KBUILD_CFLAGS += $(call cc-option,-fno-reorder-blocks,) \
-                  $(call cc-option,-fno-ipa-cp-clone,) \
-                  $(call cc-option,-fno-partial-inlining)
+ KBUILD_CFLAGS += -fno-reorder-blocks -fno-ipa-cp-clone -fno-partial-inlining
  endif
  
  ifneq ($(CONFIG_FRAME_WARN),0)
@@@ -796,7 -782,7 +787,7 @@@ KBUILD_CFLAGS += $(stackp-flags-y
  
  ifdef CONFIG_CC_IS_CLANG
  KBUILD_CPPFLAGS += -Qunused-arguments
- KBUILD_CFLAGS += -Wno-format-invalid-specifier
+ # The kernel builds with '-std=gnu89' so use of GNU extensions is acceptable.
  KBUILD_CFLAGS += -Wno-gnu
  # CLANG uses a _MergedGlobals as optimization, but this breaks modpost, as the
  # source of a reference will be _MergedGlobals and not on of the whitelisted names.
@@@ -813,8 -799,8 +804,8 @@@ endi
  # These warnings generated too much noise in a regular build.
  # Use make W=1 to enable them (see scripts/Makefile.extrawarn)
  KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable)
  KBUILD_CFLAGS += $(call cc-disable-warning, unused-const-variable)
  ifdef CONFIG_FRAME_POINTER
  KBUILD_CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls
  else
@@@ -846,11 -832,6 +837,11 @@@ endi
  # for the randomize_kstack_offset feature. Disable it for all compilers.
  KBUILD_CFLAGS += $(call cc-option, -fno-stack-clash-protection)
  
 +# Clear used registers at func exit (to reduce data lifetime and ROP gadgets).
 +ifdef CONFIG_ZERO_CALL_USED_REGS
 +KBUILD_CFLAGS += -fzero-call-used-regs=used-gpr
 +endif
 +
  DEBUG_CFLAGS  :=
  
  # Workaround for GCC versions < 5.0
@@@ -867,7 -848,7 +858,7 @@@ els
  DEBUG_CFLAGS  += -g
  endif
  
- ifneq ($(LLVM_IAS),1)
+ ifndef CONFIG_AS_IS_LLVM
  KBUILD_AFLAGS += -Wa,-gdwarf-2
  endif
  
@@@ -878,8 -859,10 +869,10 @@@ DEBUG_CFLAGS     += -gdwarf-$(dwarf-version
  endif
  
  ifdef CONFIG_DEBUG_INFO_REDUCED
- DEBUG_CFLAGS  += $(call cc-option, -femit-struct-debug-baseonly) \
-                  $(call cc-option,-fno-var-tracking)
+ DEBUG_CFLAGS  += -fno-var-tracking
+ ifdef CONFIG_CC_IS_GCC
+ DEBUG_CFLAGS  += -femit-struct-debug-baseonly
+ endif
  endif
  
  ifdef CONFIG_DEBUG_INFO_COMPRESSED
@@@ -913,6 -896,7 +906,7 @@@ ifdef CONFIG_FTRACE_MCOUNT_USE_RECORDMC
    endif
  endif
  ifdef CONFIG_HAVE_FENTRY
+   # s390-linux-gnu-gcc did not support -mfentry until gcc-9.
    ifeq ($(call cc-option-yn, -mfentry),y)
      CC_FLAGS_FTRACE   += -mfentry
      CC_FLAGS_USING    += -DCC_USING_FENTRY
@@@ -925,7 -909,7 +919,7 @@@ endi
  
  # We trigger additional mismatches with less inlining
  ifdef CONFIG_DEBUG_SECTION_MISMATCH
- KBUILD_CFLAGS += $(call cc-option, -fno-inline-functions-called-once)
+ KBUILD_CFLAGS += -fno-inline-functions-called-once
  endif
  
  ifdef CONFIG_LD_DEAD_CODE_DATA_ELIMINATION
@@@ -1004,14 -988,16 +998,16 @@@ KBUILD_CFLAGS += $(call cc-disable-warn
  
  # We'll want to enable this eventually, but it's not going away for 5.7 at least
  KBUILD_CFLAGS += $(call cc-disable-warning, zero-length-bounds)
- KBUILD_CFLAGS += $(call cc-disable-warning, array-bounds)
+ KBUILD_CFLAGS += -Wno-array-bounds
  KBUILD_CFLAGS += $(call cc-disable-warning, stringop-overflow)
  
  # Another good warning that we'll want to enable eventually
  KBUILD_CFLAGS += $(call cc-disable-warning, restrict)
  
  # Enabled with W=2, disabled by default as noisy
- KBUILD_CFLAGS += $(call cc-disable-warning, maybe-uninitialized)
+ ifdef CONFIG_CC_IS_GCC
+ KBUILD_CFLAGS += -Wno-maybe-uninitialized
+ endif
  
  # disable invalid "can't wrap" optimizations for signed / pointers
  KBUILD_CFLAGS += -fno-strict-overflow
  KBUILD_CFLAGS  += -fno-stack-check
  
  # conserve stack if available
- KBUILD_CFLAGS   += $(call cc-option,-fconserve-stack)
+ ifdef CONFIG_CC_IS_GCC
+ KBUILD_CFLAGS   += -fconserve-stack
+ endif
  
  # Prohibit date/time macros, which would make the build non-deterministic
  KBUILD_CFLAGS   += -Werror=date-time
@@@ -1750,6 -1738,16 +1748,16 @@@ clean-dirs := $(KBUILD_EXTMOD
  clean: rm-files := $(KBUILD_EXTMOD)/Module.symvers $(KBUILD_EXTMOD)/modules.nsdeps \
        $(KBUILD_EXTMOD)/compile_commands.json $(KBUILD_EXTMOD)/.thinlto-cache
  
+ PHONY += prepare
+ # now expand this into a simple variable to reduce the cost of shell evaluations
+ prepare: CC_VERSION_TEXT := $(CC_VERSION_TEXT)
+ prepare:
+       @if [ "$(CC_VERSION_TEXT)" != $(CONFIG_CC_VERSION_TEXT) ]; then \
+               echo >&2 "warning: the compiler differs from the one used to build the kernel"; \
+               echo >&2 "  The kernel was built by: "$(CONFIG_CC_VERSION_TEXT); \
+               echo >&2 "  You are using:           $(CC_VERSION_TEXT)"; \
+       fi
  PHONY += help
  help:
        @echo  '  Building external modules.'
        @echo  ''
  
  # no-op for external module builds
- PHONY += prepare modules_prepare
+ PHONY += modules_prepare
  
  endif # KBUILD_EXTMOD
  
@@@ -6,9 -6,6 +6,6 @@@
   * Copyright (C) 1996-2000 Russell King - Converted to ARM.
   * Copyright (C) 2012 ARM Ltd.
   */
- #include <stdarg.h>
  #include <linux/compat.h>
  #include <linux/efi.h>
  #include <linux/elf.h>
@@@ -21,7 -18,6 +18,7 @@@
  #include <linux/mman.h>
  #include <linux/mm.h>
  #include <linux/nospec.h>
 +#include <linux/sched.h>
  #include <linux/stddef.h>
  #include <linux/sysctl.h>
  #include <linux/unistd.h>
@@@ -164,7 -160,7 +161,7 @@@ static void print_pstate(struct pt_reg
        u64 pstate = regs->pstate;
  
        if (compat_user_mode(regs)) {
 -              printk("pstate: %08llx (%c%c%c%c %c %s %s %c%c%c)\n",
 +              printk("pstate: %08llx (%c%c%c%c %c %s %s %c%c%c %cDIT %cSSBS)\n",
                        pstate,
                        pstate & PSR_AA32_N_BIT ? 'N' : 'n',
                        pstate & PSR_AA32_Z_BIT ? 'Z' : 'z',
                        pstate & PSR_AA32_E_BIT ? "BE" : "LE",
                        pstate & PSR_AA32_A_BIT ? 'A' : 'a',
                        pstate & PSR_AA32_I_BIT ? 'I' : 'i',
 -                      pstate & PSR_AA32_F_BIT ? 'F' : 'f');
 +                      pstate & PSR_AA32_F_BIT ? 'F' : 'f',
 +                      pstate & PSR_AA32_DIT_BIT ? '+' : '-',
 +                      pstate & PSR_AA32_SSBS_BIT ? '+' : '-');
        } else {
                const char *btype_str = btypes[(pstate & PSR_BTYPE_MASK) >>
                                               PSR_BTYPE_SHIFT];
  
 -              printk("pstate: %08llx (%c%c%c%c %c%c%c%c %cPAN %cUAO %cTCO BTYPE=%s)\n",
 +              printk("pstate: %08llx (%c%c%c%c %c%c%c%c %cPAN %cUAO %cTCO %cDIT %cSSBS BTYPE=%s)\n",
                        pstate,
                        pstate & PSR_N_BIT ? 'N' : 'n',
                        pstate & PSR_Z_BIT ? 'Z' : 'z',
                        pstate & PSR_PAN_BIT ? '+' : '-',
                        pstate & PSR_UAO_BIT ? '+' : '-',
                        pstate & PSR_TCO_BIT ? '+' : '-',
 +                      pstate & PSR_DIT_BIT ? '+' : '-',
 +                      pstate & PSR_SSBS_BIT ? '+' : '-',
                        btype_str);
        }
  }
@@@ -473,13 -465,16 +470,13 @@@ static void erratum_1418040_thread_swit
        write_sysreg(val, cntkctl_el1);
  }
  
 -static void compat_thread_switch(struct task_struct *next)
 -{
 -      if (!is_compat_thread(task_thread_info(next)))
 -              return;
 -
 -      if (static_branch_unlikely(&arm64_mismatched_32bit_el0))
 -              set_tsk_thread_flag(next, TIF_NOTIFY_RESUME);
 -}
 -
 -static void update_sctlr_el1(u64 sctlr)
 +/*
 + * __switch_to() checks current->thread.sctlr_user as an optimisation. Therefore
 + * this function must be called with preemption disabled and the update to
 + * sctlr_user must be made in the same preemption disabled block so that
 + * __switch_to() does not see the variable update before the SCTLR_EL1 one.
 + */
 +void update_sctlr_el1(u64 sctlr)
  {
        /*
         * EnIA must not be cleared while in the kernel as this is necessary for
        isb();
  }
  
 -void set_task_sctlr_el1(u64 sctlr)
 -{
 -      /*
 -       * __switch_to() checks current->thread.sctlr as an
 -       * optimisation. Disable preemption so that it does not see
 -       * the variable update before the SCTLR_EL1 one.
 -       */
 -      preempt_disable();
 -      current->thread.sctlr_user = sctlr;
 -      update_sctlr_el1(sctlr);
 -      preempt_enable();
 -}
 -
  /*
   * Thread switching.
   */
@@@ -507,6 -515,7 +504,6 @@@ __notrace_funcgraph struct task_struct 
        ssbs_thread_switch(next);
        erratum_1418040_thread_switch(prev, next);
        ptrauth_thread_switch_user(next);
 -      compat_thread_switch(next);
  
        /*
         * Complete any pending TLB or cache maintenance on this CPU in case
@@@ -567,28 -576,6 +564,28 @@@ unsigned long arch_align_stack(unsigne
        return sp & ~0xf;
  }
  
 +#ifdef CONFIG_COMPAT
 +int compat_elf_check_arch(const struct elf32_hdr *hdr)
 +{
 +      if (!system_supports_32bit_el0())
 +              return false;
 +
 +      if ((hdr)->e_machine != EM_ARM)
 +              return false;
 +
 +      if (!((hdr)->e_flags & EF_ARM_EABI_MASK))
 +              return false;
 +
 +      /*
 +       * Prevent execve() of a 32-bit program from a deadline task
 +       * if the restricted affinity mask would be inadmissible on an
 +       * asymmetric system.
 +       */
 +      return !static_branch_unlikely(&arm64_mismatched_32bit_el0) ||
 +             !dl_task_check_affinity(current, system_32bit_el0_cpumask());
 +}
 +#endif
 +
  /*
   * Called from setup_new_exec() after (COMPAT_)SET_PERSONALITY.
   */
@@@ -598,20 -585,8 +595,20 @@@ void arch_setup_new_exec(void
  
        if (is_compat_task()) {
                mmflags = MMCF_AARCH32;
 +
 +              /*
 +               * Restrict the CPU affinity mask for a 32-bit task so that
 +               * it contains only 32-bit-capable CPUs.
 +               *
 +               * From the perspective of the task, this looks similar to
 +               * what would happen if the 64-bit-only CPUs were hot-unplugged
 +               * at the point of execve(), although we try a bit harder to
 +               * honour the cpuset hierarchy.
 +               */
                if (static_branch_unlikely(&arm64_mismatched_32bit_el0))
 -                      set_tsk_thread_flag(current, TIF_NOTIFY_RESUME);
 +                      force_compatible_cpus_allowed_ptr(current);
 +      } else if (static_branch_unlikely(&arm64_mismatched_32bit_el0)) {
 +              relax_compatible_cpus_allowed_ptr(current);
        }
  
        current->mm->context.flags = mmflags;
diff --combined arch/mips/Makefile
@@@ -254,7 -254,7 +254,7 @@@ endi
  #
  # Board-dependent options and extra files
  #
- include arch/mips/Kbuild.platforms
+ include $(srctree)/arch/mips/Kbuild.platforms
  
  ifdef CONFIG_PHYSICAL_START
  load-y                                        = $(CONFIG_PHYSICAL_START)
@@@ -560,9 -560,6 +560,9 @@@ sead3micro_defconfig-y             := micro32r2el_
  legacy_defconfigs             += xilfpga_defconfig
  xilfpga_defconfig-y           := 32r2el_defconfig BOARDS=xilfpga
  
 +legacy_defconfigs             += pistachio_defconfig
 +pistachio_defconfig-y         := 32r2el_defconfig BOARDS=marduk
 +
  .PHONY: $(legacy_defconfigs)
  $(legacy_defconfigs):
        $(Q)$(MAKE) -f $(srctree)/Makefile $($@-y)
@@@ -11,7 -11,6 +11,6 @@@
  
  #undef DEBUG
  
- #include <stdarg.h>
  #include <linux/kernel.h>
  #include <linux/string.h>
  #include <linux/init.h>
@@@ -640,9 -639,7 +639,9 @@@ static void __init early_reserve_mem(vo
        }
  #endif /* CONFIG_BLK_DEV_INITRD */
  
 -#ifdef CONFIG_PPC32
 +      if (!IS_ENABLED(CONFIG_PPC32))
 +              return;
 +
        /* 
         * Handle the case where we might be booting from an old kexec
         * image that setup the mem_rsvmap as pairs of 32-bit values
                }
                return;
        }
 -#endif
  }
  
  #ifdef CONFIG_PPC_TRANSACTIONAL_MEM
@@@ -14,7 -14,7 +14,7 @@@
  /* we cannot use FORTIFY as it brings in new symbols */
  #define __NO_FORTIFY
  
- #include <stdarg.h>
+ #include <linux/stdarg.h>
  #include <linux/kernel.h>
  #include <linux/string.h>
  #include <linux/init.h>
@@@ -1096,8 -1096,7 +1096,8 @@@ static const struct ibm_arch_vec ibm_ar
  #else
                0,
  #endif
 -              .associativity = OV5_FEAT(OV5_TYPE1_AFFINITY) | OV5_FEAT(OV5_PRRN),
 +              .associativity = OV5_FEAT(OV5_FORM1_AFFINITY) | OV5_FEAT(OV5_PRRN) |
 +              OV5_FEAT(OV5_FORM2_AFFINITY),
                .bin_opts = OV5_FEAT(OV5_RESIZE_HPT) | OV5_FEAT(OV5_HP_EVT),
                .micro_checkpoint = 0,
                .reserved0 = 0,
diff --combined arch/s390/Makefile
@@@ -70,7 -70,7 +70,7 @@@ cflags-y += -Wa,-I$(srctree)/arch/$(ARC
  #
  cflags-$(CONFIG_FRAME_POINTER) += -fno-optimize-sibling-calls
  
- ifeq ($(call cc-option-yn,-mpacked-stack -mbackchain -msoft-float),y)
+ ifneq ($(call cc-option,-mpacked-stack -mbackchain -msoft-float),)
  cflags-$(CONFIG_PACK_STACK)  += -mpacked-stack -D__PACK_STACK
  aflags-$(CONFIG_PACK_STACK)  += -D__PACK_STACK
  endif
  KBUILD_AFLAGS_DECOMPRESSOR += $(aflags-y)
  KBUILD_CFLAGS_DECOMPRESSOR += $(cflags-y)
  
- ifeq ($(call cc-option-yn,-mstack-size=8192 -mstack-guard=128),y)
+ ifneq ($(call cc-option,-mstack-size=8192 -mstack-guard=128),)
  cflags-$(CONFIG_CHECK_STACK) += -mstack-size=$(STACK_SIZE)
- ifneq ($(call cc-option-yn,-mstack-size=8192),y)
+ ifeq ($(call cc-option,-mstack-size=8192),)
  cflags-$(CONFIG_CHECK_STACK) += -mstack-guard=$(CONFIG_STACK_GUARD)
  endif
  endif
  
  ifdef CONFIG_WARN_DYNAMIC_STACK
-   ifeq ($(call cc-option-yn,-mwarn-dynamicstack),y)
+   ifneq ($(call cc-option,-mwarn-dynamicstack),)
      KBUILD_CFLAGS += -mwarn-dynamicstack
      KBUILD_CFLAGS_DECOMPRESSOR += -mwarn-dynamicstack
    endif
  endif
  
  ifdef CONFIG_EXPOLINE
-   ifeq ($(call cc-option-yn,$(CC_FLAGS_MARCH) -mindirect-branch=thunk),y)
+   ifneq ($(call cc-option,$(CC_FLAGS_MARCH) -mindirect-branch=thunk),)
      CC_FLAGS_EXPOLINE := -mindirect-branch=thunk
      CC_FLAGS_EXPOLINE += -mfunction-return=thunk
      CC_FLAGS_EXPOLINE += -mindirect-branch-table
  endif
  
  ifdef CONFIG_FUNCTION_TRACER
-   ifeq ($(call cc-option-yn,-mfentry -mnop-mcount),n)
+   ifeq ($(call cc-option,-mfentry -mnop-mcount),)
      # make use of hotpatch feature if the compiler supports it
      cc_hotpatch       := -mhotpatch=0,3
-     ifeq ($(call cc-option-yn,$(cc_hotpatch)),y)
+     ifneq ($(call cc-option,$(cc_hotpatch)),)
        CC_FLAGS_FTRACE := $(cc_hotpatch)
        KBUILD_AFLAGS   += -DCC_USING_HOTPATCH
        KBUILD_CFLAGS   += -DCC_USING_HOTPATCH
@@@ -142,8 -142,7 +142,8 @@@ all: bzImag
  KBUILD_IMAGE  := $(boot)/bzImage
  
  install:
 -      $(Q)$(MAKE) $(build)=$(boot) $@
 +      sh -x $(srctree)/$(boot)/install.sh $(KERNELRELEASE) $(KBUILD_IMAGE) \
 +            System.map "$(INSTALL_PATH)"
  
  bzImage: vmlinux
        $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
@@@ -1,5 -1,6 +1,6 @@@
  // SPDX-License-Identifier: GPL-2.0
  #include <linux/kernel.h>
+ #include <linux/stdarg.h>
  #include <linux/string.h>
  #include <linux/ctype.h>
  #include <asm/stacktrace.h>
@@@ -8,7 -9,6 +9,6 @@@
  #include <asm/setup.h>
  #include <asm/sclp.h>
  #include <asm/uv.h>
- #include <stdarg.h>
  #include "boot.h"
  
  const char hex_asc[] = "0123456789abcdef";
@@@ -29,6 -29,7 +29,6 @@@ static char *symstart(char *p
        return p + 1;
  }
  
 -extern char _decompressor_syms_start[], _decompressor_syms_end[];
  static noinline char *findsym(unsigned long ip, unsigned short *off, unsigned short *len)
  {
        /* symbol entries are in a form "10000 c4 startup\0" */
@@@ -125,8 -126,8 +125,8 @@@ out
  
  static noinline void print_stacktrace(void)
  {
 -      struct stack_info boot_stack = { STACK_TYPE_TASK, BOOT_STACK_OFFSET,
 -                                       BOOT_STACK_OFFSET + BOOT_STACK_SIZE };
 +      struct stack_info boot_stack = { STACK_TYPE_TASK, (unsigned long)_stack_start,
 +                                       (unsigned long)_stack_end };
        unsigned long sp = S390_lowcore.gpregs_save_area[15];
        bool first = true;
  
@@@ -9,9 -9,6 +9,6 @@@
  /*
   * This file handles the architecture-dependent parts of process handling..
   */
- #include <stdarg.h>
  #include <linux/errno.h>
  #include <linux/export.h>
  #include <linux/sched.h>
@@@ -518,7 -515,7 +515,7 @@@ void synchronize_user_stack(void
  
  static void stack_unaligned(unsigned long sp)
  {
 -      force_sig_fault(SIGBUS, BUS_ADRALN, (void __user *) sp, 0);
 +      force_sig_fault(SIGBUS, BUS_ADRALN, (void __user *) sp);
  }
  
  static const char uwfault32[] = KERN_INFO \
diff --combined arch/x86/Makefile
@@@ -31,8 -31,8 +31,8 @@@ REALMODE_CFLAGS       := -m16 -g -Os -DDISABL
  
  REALMODE_CFLAGS += -ffreestanding
  REALMODE_CFLAGS += -fno-stack-protector
 -REALMODE_CFLAGS += $(call __cc-option, $(CC), $(REALMODE_CFLAGS), -Wno-address-of-packed-member)
 -REALMODE_CFLAGS += $(call __cc-option, $(CC), $(REALMODE_CFLAGS), $(cc_stack_align4))
 +REALMODE_CFLAGS += -Wno-address-of-packed-member
 +REALMODE_CFLAGS += $(cc_stack_align4)
  REALMODE_CFLAGS += $(CLANG_FLAGS)
  export REALMODE_CFLAGS
  
@@@ -48,7 -48,8 +48,7 @@@ export BIT
  #
  #    https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53383
  #
 -KBUILD_CFLAGS += -mno-sse -mno-mmx -mno-sse2 -mno-3dnow
 -KBUILD_CFLAGS += $(call cc-option,-mno-avx,)
 +KBUILD_CFLAGS += -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx
  
  # Intel CET isn't enabled in the kernel
  KBUILD_CFLAGS += $(call cc-option,-fcf-protection=none)
@@@ -58,8 -59,9 +58,8 @@@ ifeq ($(CONFIG_X86_32),y
          UTS_MACHINE := i386
          CHECKFLAGS += -D__i386__
  
 -        biarch := $(call cc-option,-m32)
 -        KBUILD_AFLAGS += $(biarch)
 -        KBUILD_CFLAGS += $(biarch)
 +        KBUILD_AFLAGS += -m32
 +        KBUILD_CFLAGS += -m32
  
          KBUILD_CFLAGS += -msoft-float -mregparm=3 -freg-struct-return
  
          # Align the stack to the register width instead of using the default
          # alignment of 16 bytes. This reduces stack usage and the number of
          # alignment instructions.
 -        KBUILD_CFLAGS += $(call cc-option,$(cc_stack_align4))
 +        KBUILD_CFLAGS += $(cc_stack_align4)
  
          # CPU-specific tuning. Anything which can be shared with UML should go here.
-         include arch/x86/Makefile_32.cpu
+         include $(srctree)/arch/x86/Makefile_32.cpu
          KBUILD_CFLAGS += $(cflags-y)
  
          # temporary until string.h is fixed
@@@ -91,6 -93,7 +91,6 @@@ els
          UTS_MACHINE := x86_64
          CHECKFLAGS += -D__x86_64__
  
 -        biarch := -m64
          KBUILD_AFLAGS += -m64
          KBUILD_CFLAGS += -m64
  
          KBUILD_CFLAGS += $(call cc-option,-falign-loops=1)
  
          # Don't autogenerate traditional x87 instructions
 -        KBUILD_CFLAGS += $(call cc-option,-mno-80387)
 +        KBUILD_CFLAGS += -mno-80387
          KBUILD_CFLAGS += $(call cc-option,-mno-fp-ret-in-387)
  
          # By default gcc and clang use a stack alignment of 16 bytes for x86.
          # default alignment which keep the stack *mis*aligned.
          # Furthermore an alignment to the register width reduces stack usage
          # and the number of alignment instructions.
 -        KBUILD_CFLAGS += $(call cc-option,$(cc_stack_align8))
 +        KBUILD_CFLAGS += $(cc_stack_align8)
  
        # Use -mskip-rax-setup if supported.
        KBUILD_CFLAGS += $(call cc-option,-mskip-rax-setup)
  
          # FIXME - should be integrated in Makefile.cpu (Makefile_32.cpu)
 -        cflags-$(CONFIG_MK8) += $(call cc-option,-march=k8)
 -        cflags-$(CONFIG_MPSC) += $(call cc-option,-march=nocona)
 -
 -        cflags-$(CONFIG_MCORE2) += \
 -                $(call cc-option,-march=core2,$(call cc-option,-mtune=generic))
 -      cflags-$(CONFIG_MATOM) += $(call cc-option,-march=atom) \
 -              $(call cc-option,-mtune=atom,$(call cc-option,-mtune=generic))
 -        cflags-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mtune=generic)
 +        cflags-$(CONFIG_MK8)          += -march=k8
 +        cflags-$(CONFIG_MPSC)         += -march=nocona
 +        cflags-$(CONFIG_MCORE2)               += -march=core2
 +        cflags-$(CONFIG_MATOM)                += -march=atom
 +        cflags-$(CONFIG_GENERIC_CPU)  += -mtune=generic
          KBUILD_CFLAGS += $(cflags-y)
  
          KBUILD_CFLAGS += -mno-red-zone
@@@ -152,6 -158,18 +152,6 @@@ export CONFIG_X86_X32_AB
  ifdef CONFIG_FUNCTION_GRAPH_TRACER
    ifndef CONFIG_HAVE_FENTRY
        ACCUMULATE_OUTGOING_ARGS := 1
 -  else
 -    ifeq ($(call cc-option-yn, -mfentry), n)
 -      ACCUMULATE_OUTGOING_ARGS := 1
 -
 -      # GCC ignores '-maccumulate-outgoing-args' when used with '-Os'.
 -      # If '-Os' is enabled, disable it and print a warning.
 -        ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
 -          undefine CONFIG_CC_OPTIMIZE_FOR_SIZE
 -          $(warning Disabling CONFIG_CC_OPTIMIZE_FOR_SIZE.  Your compiler does not have -mfentry so you cannot optimize for size with CONFIG_FUNCTION_GRAPH_TRACER.)
 -        endif
 -
 -    endif
    endif
  endif
  
@@@ -175,7 -193,7 +175,7 @@@ ifdef CONFIG_RETPOLIN
    # only been fixed starting from gcc stable version 8.4.0 and
    # onwards, but not for older ones. See gcc bug #86952.
    ifndef CONFIG_CC_IS_CLANG
 -    KBUILD_CFLAGS += $(call cc-option,-fno-jump-tables)
 +    KBUILD_CFLAGS += -fno-jump-tables
    endif
  endif
  
@@@ -257,10 -275,9 +257,10 @@@ endi
  $(BOOT_TARGETS): vmlinux
        $(Q)$(MAKE) $(build)=$(boot) $@
  
 -PHONY += install bzlilo
 -install bzlilo:
 -      $(Q)$(MAKE) $(build)=$(boot) $@
 +PHONY += install
 +install:
 +      $(CONFIG_SHELL) $(srctree)/$(boot)/install.sh $(KERNELRELEASE) \
 +              $(KBUILD_IMAGE) System.map "$(INSTALL_PATH)"
  
  PHONY += vdso_install
  vdso_install:
@@@ -23,8 -23,8 +23,8 @@@
   *
   */
  
 -#ifndef _DMUB_CMD_H_
 -#define _DMUB_CMD_H_
 +#ifndef DMUB_CMD_H
 +#define DMUB_CMD_H
  
  #if defined(_TEST_HARNESS) || defined(FPGA_USB4)
  #include "dmub_fw_types.h"
@@@ -39,7 -39,6 +39,6 @@@
  #include <linux/types.h>
  #include <linux/string.h>
  #include <linux/delay.h>
- #include <stdarg.h>
  
  #include "atomfirmware.h"
  
  
  /* Firmware versioning. */
  #ifdef DMUB_EXPOSE_VERSION
 -#define DMUB_FW_VERSION_GIT_HASH 0xf3da2b656
 +#define DMUB_FW_VERSION_GIT_HASH 0x7383caadc
  #define DMUB_FW_VERSION_MAJOR 0
  #define DMUB_FW_VERSION_MINOR 0
 -#define DMUB_FW_VERSION_REVISION 71
 +#define DMUB_FW_VERSION_REVISION 79
  #define DMUB_FW_VERSION_TEST 0
  #define DMUB_FW_VERSION_VBIOS 0
  #define DMUB_FW_VERSION_HOTFIX 0
@@@ -322,10 -321,6 +321,10 @@@ union dmub_fw_boot_status 
                uint32_t mailbox_rdy : 1; /**< 1 if mailbox ready */
                uint32_t optimized_init_done : 1; /**< 1 if optimized init done */
                uint32_t restore_required : 1; /**< 1 if driver should call restore */
 +              uint32_t defer_load : 1; /**< 1 if VBIOS data is deferred programmed */
 +              uint32_t reserved : 1;
 +              uint32_t detection_required: 1; /**<  if detection need to be triggered by driver */
 +
        } bits; /**< status bits */
        uint32_t all; /**< 32-bit access to status bits */
  };
@@@ -338,8 -333,6 +337,8 @@@ enum dmub_fw_boot_status_bit 
        DMUB_FW_BOOT_STATUS_BIT_MAILBOX_READY = (1 << 1), /**< 1 if mailbox ready */
        DMUB_FW_BOOT_STATUS_BIT_OPTIMIZED_INIT_DONE = (1 << 2), /**< 1 if init done */
        DMUB_FW_BOOT_STATUS_BIT_RESTORE_REQUIRED = (1 << 3), /**< 1 if driver should call restore */
 +      DMUB_FW_BOOT_STATUS_BIT_DEFERRED_LOADED = (1 << 4), /**< 1 if VBIOS data is deferred programmed */
 +      DMUB_FW_BOOT_STATUS_BIT_DETECTION_REQUIRED = (1 << 6), /**< 1 if detection need to be triggered by driver*/
  };
  
  /* Register bit definition for SCRATCH5 */
@@@ -358,7 -351,7 +357,7 @@@ enum dmub_lvtma_status_bit 
  };
  
  /**
 - * union dmub_fw_boot_options - Boot option definitions for SCRATCH15
 + * union dmub_fw_boot_options - Boot option definitions for SCRATCH14
   */
  union dmub_fw_boot_options {
        struct {
                uint32_t disable_clk_gate: 1; /**< 1 if clock gating should be disabled */
                uint32_t skip_phy_init_panel_sequence: 1; /**< 1 to skip panel init seq */
                uint32_t z10_disable: 1; /**< 1 to disable z10 */
 -              uint32_t reserved : 25; /**< reserved */
 +              uint32_t reserved2: 1; /**< reserved for an unreleased feature */
 +              uint32_t reserved_unreleased1: 1; /**< reserved for an unreleased feature */
 +              uint32_t invalid_vbios_data: 1; /**< 1 if VBIOS data table is invalid */
 +              uint32_t reserved : 23; /**< reserved */
        } bits; /**< boot bits */
        uint32_t all; /**< 32-bit access to bits */
  };
@@@ -494,11 -484,6 +493,11 @@@ enum dmub_gpint_command 
         * RETURN: PSR residency in milli-percent.
         */
        DMUB_GPINT__PSR_RESIDENCY = 9,
 +
 +      /**
 +       * DESC: Notifies DMCUB detection is done so detection required can be cleared.
 +       */
 +      DMUB_GPINT__NOTIFY_DETECTION_DONE = 12,
  };
  
  /**
@@@ -870,11 -855,6 +869,11 @@@ enum dmub_cmd_idle_opt_type 
         * DCN hardware restore.
         */
        DMUB_CMD__IDLE_OPT_DCN_RESTORE = 0,
 +
 +      /**
 +       * DCN hardware save.
 +       */
 +      DMUB_CMD__IDLE_OPT_DCN_SAVE_INIT = 1
  };
  
  /**
@@@ -1425,10 -1405,6 +1424,10 @@@ struct dmub_cmd_psr_copy_settings_data 
         * Currently the support is only for 0 or 1
         */
        uint8_t panel_inst;
 +      /**
 +       * Explicit padding to 4 byte boundary.
 +       */
 +      uint8_t pad3[4];
  };
  
  /**
@@@ -1453,7 -1429,7 +1452,7 @@@ struct dmub_cmd_psr_set_level_data 
         * 16-bit value dicated by driver that will enable/disable different functionality.
         */
        uint16_t psr_level;
 -              /**
 +      /**
         * PSR control version.
         */
        uint8_t cmd_version;
@@@ -2485,14 -2461,16 +2484,14 @@@ static inline bool dmub_rb_full(struct 
  static inline bool dmub_rb_push_front(struct dmub_rb *rb,
                                      const union dmub_rb_cmd *cmd)
  {
 -      uint64_t volatile *dst = (uint64_t volatile *)(rb->base_address) + rb->wrpt / sizeof(uint64_t);
 -      const uint64_t *src = (const uint64_t *)cmd;
 -      uint8_t i;
 +      uint8_t *dst = (uint8_t *)(rb->base_address) + rb->wrpt;
 +      const uint8_t *src = (const uint8_t *)cmd;
  
        if (dmub_rb_full(rb))
                return false;
  
        // copying data
 -      for (i = 0; i < DMUB_RB_CMD_SIZE / sizeof(uint64_t); i++)
 -              *dst++ = *src++;
 +      dmub_memcpy(dst, src, DMUB_RB_CMD_SIZE);
  
        rb->wrpt += DMUB_RB_CMD_SIZE;
  
@@@ -2514,7 -2492,7 +2513,7 @@@ static inline bool dmub_rb_out_push_fro
                                      const union dmub_rb_out_cmd *cmd)
  {
        uint8_t *dst = (uint8_t *)(rb->base_address) + rb->wrpt;
 -      const uint8_t *src = (uint8_t *)cmd;
 +      const uint8_t *src = (const uint8_t *)cmd;
  
        if (dmub_rb_full(rb))
                return false;
@@@ -2599,16 -2577,18 +2598,16 @@@ static inline bool dmub_rb_peek_offset(
   * @return false otherwise
   */
  static inline bool dmub_rb_out_front(struct dmub_rb *rb,
 -                               union dmub_rb_out_cmd  *cmd)
 +                               union dmub_rb_out_cmd *cmd)
  {
 -      const uint64_t volatile *src = (const uint64_t volatile *)(rb->base_address) + rb->rptr / sizeof(uint64_t);
 -      uint64_t *dst = (uint64_t *)cmd;
 -      uint8_t i;
 +      const uint8_t *src = (const uint8_t *)(rb->base_address) + rb->rptr;
 +      uint8_t *dst = (uint8_t *)cmd;
  
        if (dmub_rb_empty(rb))
                return false;
  
        // copying data
 -      for (i = 0; i < DMUB_RB_CMD_SIZE / sizeof(uint64_t); i++)
 -              *dst++ = *src++;
 +      dmub_memcpy(dst, src, DMUB_RB_CMD_SIZE);
  
        return true;
  }
@@@ -2643,14 -2623,15 +2642,14 @@@ static inline bool dmub_rb_pop_front(st
   */
  static inline void dmub_rb_flush_pending(const struct dmub_rb *rb)
  {
 +      uint8_t buf[DMUB_RB_CMD_SIZE];
        uint32_t rptr = rb->rptr;
        uint32_t wptr = rb->wrpt;
  
        while (rptr != wptr) {
 -              uint64_t volatile *data = (uint64_t volatile *)rb->base_address + rptr / sizeof(uint64_t);
 -              uint8_t i;
 +              const uint8_t *data = (const uint8_t *)rb->base_address + rptr;
  
 -              for (i = 0; i < DMUB_RB_CMD_SIZE / sizeof(uint64_t); i++)
 -                      *data++;
 +              dmub_memcpy(buf, data, DMUB_RB_CMD_SIZE);
  
                rptr += DMUB_RB_CMD_SIZE;
                if (rptr >= rb->capacity)
@@@ -16,6 -16,7 +16,6 @@@
  #include <linux/delay.h>
  #include <linux/spinlock.h>
  #include <linux/ktime.h>
 -#include <linux/debugfs.h>
  #include <linux/uaccess.h>
  #include <linux/dma-buf.h>
  #include <linux/slab.h>
@@@ -24,7 -25,6 +24,6 @@@
  #include <linux/pm_runtime.h>
  #include <linux/kthread.h>
  #include <linux/devcoredump.h>
- #include <stdarg.h>
  #include "msm_kms.h"
  
  #define MSM_DISP_SNAPSHOT_MAX_BLKS            10
diff --combined include/linux/filter.h
@@@ -5,8 -5,6 +5,6 @@@
  #ifndef __LINUX_FILTER_H__
  #define __LINUX_FILTER_H__
  
- #include <stdarg.h>
  #include <linux/atomic.h>
  #include <linux/refcount.h>
  #include <linux/compat.h>
@@@ -574,8 -572,7 +572,8 @@@ struct bpf_prog 
                                kprobe_override:1, /* Do we override a kprobe? */
                                has_callchain_buf:1, /* callchain buffer allocated? */
                                enforce_expected_attach_type:1, /* Enforce expected_attach_type checking at attach time */
 -                              call_get_stack:1; /* Do we call bpf_get_stack() or bpf_get_stackid() */
 +                              call_get_stack:1, /* Do we call bpf_get_stack() or bpf_get_stackid() */
 +                              call_get_func_ip:1; /* Do we call get_func_ip() */
        enum bpf_prog_type      type;           /* Type of BPF program */
        enum bpf_attach_type    expected_attach_type; /* For some prog types */
        u32                     len;            /* Number of filter blocks */
@@@ -600,38 -597,25 +598,38 @@@ struct sk_filter 
  
  DECLARE_STATIC_KEY_FALSE(bpf_stats_enabled_key);
  
 -#define __BPF_PROG_RUN(prog, ctx, dfunc)      ({                      \
 -      u32 __ret;                                                      \
 -      cant_migrate();                                                 \
 -      if (static_branch_unlikely(&bpf_stats_enabled_key)) {           \
 -              struct bpf_prog_stats *__stats;                         \
 -              u64 __start = sched_clock();                            \
 -              __ret = dfunc(ctx, (prog)->insnsi, (prog)->bpf_func);   \
 -              __stats = this_cpu_ptr(prog->stats);                    \
 -              u64_stats_update_begin(&__stats->syncp);                \
 -              __stats->cnt++;                                         \
 -              __stats->nsecs += sched_clock() - __start;              \
 -              u64_stats_update_end(&__stats->syncp);                  \
 -      } else {                                                        \
 -              __ret = dfunc(ctx, (prog)->insnsi, (prog)->bpf_func);   \
 -      }                                                               \
 -      __ret; })
 -
 -#define BPF_PROG_RUN(prog, ctx)                                               \
 -      __BPF_PROG_RUN(prog, ctx, bpf_dispatcher_nop_func)
 +typedef unsigned int (*bpf_dispatcher_fn)(const void *ctx,
 +                                        const struct bpf_insn *insnsi,
 +                                        unsigned int (*bpf_func)(const void *,
 +                                                                 const struct bpf_insn *));
 +
 +static __always_inline u32 __bpf_prog_run(const struct bpf_prog *prog,
 +                                        const void *ctx,
 +                                        bpf_dispatcher_fn dfunc)
 +{
 +      u32 ret;
 +
 +      cant_migrate();
 +      if (static_branch_unlikely(&bpf_stats_enabled_key)) {
 +              struct bpf_prog_stats *stats;
 +              u64 start = sched_clock();
 +
 +              ret = dfunc(ctx, prog->insnsi, prog->bpf_func);
 +              stats = this_cpu_ptr(prog->stats);
 +              u64_stats_update_begin(&stats->syncp);
 +              stats->cnt++;
 +              stats->nsecs += sched_clock() - start;
 +              u64_stats_update_end(&stats->syncp);
 +      } else {
 +              ret = dfunc(ctx, prog->insnsi, prog->bpf_func);
 +      }
 +      return ret;
 +}
 +
 +static __always_inline u32 bpf_prog_run(const struct bpf_prog *prog, const void *ctx)
 +{
 +      return __bpf_prog_run(prog, ctx, bpf_dispatcher_nop_func);
 +}
  
  /*
   * Use in preemptible and therefore migratable context to make sure that
@@@ -650,7 -634,7 +648,7 @@@ static inline u32 bpf_prog_run_pin_on_c
        u32 ret;
  
        migrate_disable();
 -      ret = __BPF_PROG_RUN(prog, ctx, bpf_dispatcher_nop_func);
 +      ret = bpf_prog_run(prog, ctx);
        migrate_enable();
        return ret;
  }
@@@ -723,7 -707,7 +721,7 @@@ static inline void bpf_restore_data_end
        cb->data_end = saved_data_end;
  }
  
 -static inline u8 *bpf_skb_cb(struct sk_buff *skb)
 +static inline u8 *bpf_skb_cb(const struct sk_buff *skb)
  {
        /* eBPF programs may read/write skb->cb[] area to transfer meta
         * data between tail calls. Since this also needs to work with
  
  /* Must be invoked with migration disabled */
  static inline u32 __bpf_prog_run_save_cb(const struct bpf_prog *prog,
 -                                       struct sk_buff *skb)
 +                                       const void *ctx)
  {
 +      const struct sk_buff *skb = ctx;
        u8 *cb_data = bpf_skb_cb(skb);
        u8 cb_saved[BPF_SKB_CB_LEN];
        u32 res;
                memset(cb_data, 0, sizeof(cb_saved));
        }
  
 -      res = BPF_PROG_RUN(prog, skb);
 +      res = bpf_prog_run(prog, skb);
  
        if (unlikely(prog->cb_access))
                memcpy(cb_data, cb_saved, sizeof(cb_saved));
@@@ -790,10 -773,6 +788,10 @@@ static inline u32 bpf_prog_run_clear_cb
  
  DECLARE_BPF_DISPATCHER(xdp)
  
 +DECLARE_STATIC_KEY_FALSE(bpf_master_redirect_enabled_key);
 +
 +u32 xdp_master_redirect(struct xdp_buff *xdp);
 +
  static __always_inline u32 bpf_prog_run_xdp(const struct bpf_prog *prog,
                                            struct xdp_buff *xdp)
  {
         * under local_bh_disable(), which provides the needed RCU protection
         * for accessing map entries.
         */
 -      return __BPF_PROG_RUN(prog, xdp, BPF_DISPATCHER_FUNC(xdp));
 +      u32 act = __bpf_prog_run(prog, xdp, BPF_DISPATCHER_FUNC(xdp));
 +
 +      if (static_branch_unlikely(&bpf_master_redirect_enabled_key)) {
 +              if (act == XDP_TX && netif_is_bond_slave(xdp->rxq->dev))
 +                      act = xdp_master_redirect(xdp);
 +      }
 +
 +      return act;
  }
  
  void bpf_prog_change_xdp(struct bpf_prog *prev_prog, struct bpf_prog *prog);
@@@ -1454,7 -1426,7 +1452,7 @@@ static inline bool bpf_sk_lookup_run_v4
                };
                u32 act;
  
 -              act = BPF_PROG_SK_LOOKUP_RUN_ARRAY(run_array, ctx, BPF_PROG_RUN);
 +              act = BPF_PROG_SK_LOOKUP_RUN_ARRAY(run_array, ctx, bpf_prog_run);
                if (act == SK_PASS) {
                        selected_sk = ctx.selected_sk;
                        no_reuseport = ctx.no_reuseport;
@@@ -1492,7 -1464,7 +1490,7 @@@ static inline bool bpf_sk_lookup_run_v6
                };
                u32 act;
  
 -              act = BPF_PROG_SK_LOOKUP_RUN_ARRAY(run_array, ctx, BPF_PROG_RUN);
 +              act = BPF_PROG_SK_LOOKUP_RUN_ARRAY(run_array, ctx, bpf_prog_run);
                if (act == SK_PASS) {
                        selected_sk = ctx.selected_sk;
                        no_reuseport = ctx.no_reuseport;
diff --combined include/linux/printk.h
@@@ -2,7 -2,7 +2,7 @@@
  #ifndef __KERNEL_PRINTK__
  #define __KERNEL_PRINTK__
  
- #include <stdarg.h>
+ #include <linux/stdarg.h>
  #include <linux/init.h>
  #include <linux/kern_levels.h>
  #include <linux/linkage.h>
@@@ -70,7 -70,16 +70,7 @@@ extern int console_printk[]
  #define minimum_console_loglevel (console_printk[2])
  #define default_console_loglevel (console_printk[3])
  
 -static inline void console_silent(void)
 -{
 -      console_loglevel = CONSOLE_LOGLEVEL_SILENT;
 -}
 -
 -static inline void console_verbose(void)
 -{
 -      if (console_loglevel)
 -              console_loglevel = CONSOLE_LOGLEVEL_MOTORMOUTH;
 -}
 +extern void console_verbose(void);
  
  /* strlen("ratelimit") + 1 */
  #define DEVKMSG_STR_MAX_SIZE 10
@@@ -141,6 -150,18 +141,6 @@@ static inline __printf(1, 2) __col
  void early_printk(const char *s, ...) { }
  #endif
  
 -#ifdef CONFIG_PRINTK_NMI
 -extern void printk_nmi_enter(void);
 -extern void printk_nmi_exit(void);
 -extern void printk_nmi_direct_enter(void);
 -extern void printk_nmi_direct_exit(void);
 -#else
 -static inline void printk_nmi_enter(void) { }
 -static inline void printk_nmi_exit(void) { }
 -static inline void printk_nmi_direct_enter(void) { }
 -static inline void printk_nmi_direct_exit(void) { }
 -#endif /* PRINTK_NMI */
 -
  struct dev_printk_info;
  
  #ifdef CONFIG_PRINTK
@@@ -153,22 -174,12 +153,22 @@@ asmlinkage __printf(1, 0
  int vprintk(const char *fmt, va_list args);
  
  asmlinkage __printf(1, 2) __cold
 -int printk(const char *fmt, ...);
 +int _printk(const char *fmt, ...);
  
  /*
   * Special printk facility for scheduler/timekeeping use only, _DO_NOT_USE_ !
   */
 -__printf(1, 2) __cold int printk_deferred(const char *fmt, ...);
 +__printf(1, 2) __cold int _printk_deferred(const char *fmt, ...);
 +
 +extern void __printk_safe_enter(void);
 +extern void __printk_safe_exit(void);
 +/*
 + * The printk_deferred_enter/exit macros are available only as a hack for
 + * some code paths that need to defer all printk console printing. Interrupts
 + * must be disabled for the deferred duration.
 + */
 +#define printk_deferred_enter __printk_safe_enter
 +#define printk_deferred_exit __printk_safe_exit
  
  /*
   * Please don't use printk_ratelimit(), because it shares ratelimiting state
@@@ -198,6 -209,8 +198,6 @@@ void dump_stack_print_info(const char *
  void show_regs_print_info(const char *log_lvl);
  extern asmlinkage void dump_stack_lvl(const char *log_lvl) __cold;
  extern asmlinkage void dump_stack(void) __cold;
 -extern void printk_safe_flush(void);
 -extern void printk_safe_flush_on_panic(void);
  #else
  static inline __printf(1, 0)
  int vprintk(const char *s, va_list args)
        return 0;
  }
  static inline __printf(1, 2) __cold
 -int printk(const char *s, ...)
 +int _printk(const char *s, ...)
  {
        return 0;
  }
  static inline __printf(1, 2) __cold
 -int printk_deferred(const char *s, ...)
 +int _printk_deferred(const char *s, ...)
  {
        return 0;
  }
 +
 +static inline void printk_deferred_enter(void)
 +{
 +}
 +
 +static inline void printk_deferred_exit(void)
 +{
 +}
 +
  static inline int printk_ratelimit(void)
  {
        return 0;
@@@ -274,6 -278,14 +274,6 @@@ static inline void dump_stack_lvl(cons
  static inline void dump_stack(void)
  {
  }
 -
 -static inline void printk_safe_flush(void)
 -{
 -}
 -
 -static inline void printk_safe_flush_on_panic(void)
 -{
 -}
  #endif
  
  #ifdef CONFIG_SMP
@@@ -336,117 -348,6 +336,117 @@@ extern int kptr_restrict
  #define pr_fmt(fmt) fmt
  #endif
  
 +struct module;
 +
 +#ifdef CONFIG_PRINTK_INDEX
 +struct pi_entry {
 +      const char *fmt;
 +      const char *func;
 +      const char *file;
 +      unsigned int line;
 +
 +      /*
 +       * While printk and pr_* have the level stored in the string at compile
 +       * time, some subsystems dynamically add it at runtime through the
 +       * format string. For these dynamic cases, we allow the subsystem to
 +       * tell us the level at compile time.
 +       *
 +       * NULL indicates that the level, if any, is stored in fmt.
 +       */
 +      const char *level;
 +
 +      /*
 +       * The format string used by various subsystem specific printk()
 +       * wrappers to prefix the message.
 +       *
 +       * Note that the static prefix defined by the pr_fmt() macro is stored
 +       * directly in the message format (@fmt), not here.
 +       */
 +      const char *subsys_fmt_prefix;
 +} __packed;
 +
 +#define __printk_index_emit(_fmt, _level, _subsys_fmt_prefix)         \
 +      do {                                                            \
 +              if (__builtin_constant_p(_fmt) && __builtin_constant_p(_level)) { \
 +                      /*
 +                       * We check __builtin_constant_p multiple times here
 +                       * for the same input because GCC will produce an error
 +                       * if we try to assign a static variable to fmt if it
 +                       * is not a constant, even with the outer if statement.
 +                       */                                             \
 +                      static const struct pi_entry _entry             \
 +                      __used = {                                      \
 +                              .fmt = __builtin_constant_p(_fmt) ? (_fmt) : NULL, \
 +                              .func = __func__,                       \
 +                              .file = __FILE__,                       \
 +                              .line = __LINE__,                       \
 +                              .level = __builtin_constant_p(_level) ? (_level) : NULL, \
 +                              .subsys_fmt_prefix = _subsys_fmt_prefix,\
 +                      };                                              \
 +                      static const struct pi_entry *_entry_ptr        \
 +                      __used __section(".printk_index") = &_entry;    \
 +              }                                                       \
 +      } while (0)
 +
 +#else /* !CONFIG_PRINTK_INDEX */
 +#define __printk_index_emit(...) do {} while (0)
 +#endif /* CONFIG_PRINTK_INDEX */
 +
 +/*
 + * Some subsystems have their own custom printk that applies a va_format to a
 + * generic format, for example, to include a device number or other metadata
 + * alongside the format supplied by the caller.
 + *
 + * In order to store these in the way they would be emitted by the printk
 + * infrastructure, the subsystem provides us with the start, fixed string, and
 + * any subsequent text in the format string.
 + *
 + * We take a variable argument list as pr_fmt/dev_fmt/etc are sometimes passed
 + * as multiple arguments (eg: `"%s: ", "blah"`), and we must only take the
 + * first one.
 + *
 + * subsys_fmt_prefix must be known at compile time, or compilation will fail
 + * (since this is a mistake). If fmt or level is not known at compile time, no
 + * index entry will be made (since this can legitimately happen).
 + */
 +#define printk_index_subsys_emit(subsys_fmt_prefix, level, fmt, ...) \
 +      __printk_index_emit(fmt, level, subsys_fmt_prefix)
 +
 +#define printk_index_wrap(_p_func, _fmt, ...)                         \
 +      ({                                                              \
 +              __printk_index_emit(_fmt, NULL, NULL);                  \
 +              _p_func(_fmt, ##__VA_ARGS__);                           \
 +      })
 +
 +
 +/**
 + * printk - print a kernel message
 + * @fmt: format string
 + *
 + * This is printk(). It can be called from any context. We want it to work.
 + *
 + * If printk indexing is enabled, _printk() is called from printk_index_wrap.
 + * Otherwise, printk is simply #defined to _printk.
 + *
 + * We try to grab the console_lock. If we succeed, it's easy - we log the
 + * output and call the console drivers.  If we fail to get the semaphore, we
 + * place the output into the log buffer and return. The current holder of
 + * the console_sem will notice the new output in console_unlock(); and will
 + * send it to the consoles before releasing the lock.
 + *
 + * One effect of this deferred printing is that code which calls printk() and
 + * then changes console_loglevel may break. This is because console_loglevel
 + * is inspected when the actual printing occurs.
 + *
 + * See also:
 + * printf(3)
 + *
 + * See the vsnprintf() documentation for format string extensions over C99.
 + */
 +#define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__)
 +#define printk_deferred(fmt, ...)                                     \
 +      printk_index_wrap(_printk_deferred, fmt, ##__VA_ARGS__)
 +
  /**
   * pr_emerg - Print an emergency-level message
   * @fmt: format string
diff --combined lib/Kconfig.debug
@@@ -346,7 -346,7 +346,7 @@@ config FRAME_WAR
        int "Warn for stack frames larger than"
        range 0 8192
        default 2048 if GCC_PLUGIN_LATENT_ENTROPY
 -      default 1280 if (!64BIT && PARISC)
 +      default 1536 if (!64BIT && PARISC)
        default 1024 if (!64BIT && !PARISC)
        default 2048 if 64BIT
        help
@@@ -365,6 -365,7 +365,7 @@@ config STRIP_ASM_SYM
  config READABLE_ASM
        bool "Generate readable assembler code"
        depends on DEBUG_KERNEL
+       depends on CC_IS_GCC
        help
          Disable some compiler optimizations that tend to generate human unreadable
          assembler output. This may make the kernel slightly slower, but it helps
@@@ -383,6 -384,7 +384,7 @@@ config HEADERS_INSTAL
  
  config DEBUG_SECTION_MISMATCH
        bool "Enable full Section mismatch analysis"
+       depends on CC_IS_GCC
        help
          The section mismatch analysis checks if there are illegal
          references from one section to another section.
@@@ -1235,7 -1237,7 +1237,7 @@@ config PROVE_LOCKIN
        depends on DEBUG_KERNEL && LOCK_DEBUGGING_SUPPORT
        select LOCKDEP
        select DEBUG_SPINLOCK
 -      select DEBUG_MUTEXES
 +      select DEBUG_MUTEXES if !PREEMPT_RT
        select DEBUG_RT_MUTEXES if RT_MUTEXES
        select DEBUG_RWSEMS
        select DEBUG_WW_MUTEX_SLOWPATH
@@@ -1299,7 -1301,7 +1301,7 @@@ config LOCK_STA
        depends on DEBUG_KERNEL && LOCK_DEBUGGING_SUPPORT
        select LOCKDEP
        select DEBUG_SPINLOCK
 -      select DEBUG_MUTEXES
 +      select DEBUG_MUTEXES if !PREEMPT_RT
        select DEBUG_RT_MUTEXES if RT_MUTEXES
        select DEBUG_LOCK_ALLOC
        default n
@@@ -1335,7 -1337,7 +1337,7 @@@ config DEBUG_SPINLOC
  
  config DEBUG_MUTEXES
        bool "Mutex debugging: basic checks"
 -      depends on DEBUG_KERNEL
 +      depends on DEBUG_KERNEL && !PREEMPT_RT
        help
         This feature allows mutex semantics violations to be detected and
         reported.
@@@ -1345,8 -1347,7 +1347,8 @@@ config DEBUG_WW_MUTEX_SLOWPAT
        depends on DEBUG_KERNEL && LOCK_DEBUGGING_SUPPORT
        select DEBUG_LOCK_ALLOC
        select DEBUG_SPINLOCK
 -      select DEBUG_MUTEXES
 +      select DEBUG_MUTEXES if !PREEMPT_RT
 +      select DEBUG_RT_MUTEXES if PREEMPT_RT
        help
         This feature enables slowpath testing for w/w mutex users by
         injecting additional -EDEADLK wound/backoff cases. Together with
@@@ -1369,7 -1370,7 +1371,7 @@@ config DEBUG_LOCK_ALLO
        bool "Lock debugging: detect incorrect freeing of live locks"
        depends on DEBUG_KERNEL && LOCK_DEBUGGING_SUPPORT
        select DEBUG_SPINLOCK
 -      select DEBUG_MUTEXES
 +      select DEBUG_MUTEXES if !PREEMPT_RT
        select DEBUG_RT_MUTEXES if RT_MUTEXES
        select LOCKDEP
        help
@@@ -1680,6 -1681,33 +1682,6 @@@ config DEBUG_WQ_FORCE_RR_CP
          feature by default.  When enabled, memory and cache locality will
          be impacted.
  
 -config DEBUG_BLOCK_EXT_DEVT
 -      bool "Force extended block device numbers and spread them"
 -      depends on DEBUG_KERNEL
 -      depends on BLOCK
 -      default n
 -      help
 -        BIG FAT WARNING: ENABLING THIS OPTION MIGHT BREAK BOOTING ON
 -        SOME DISTRIBUTIONS.  DO NOT ENABLE THIS UNLESS YOU KNOW WHAT
 -        YOU ARE DOING.  Distros, please enable this and fix whatever
 -        is broken.
 -
 -        Conventionally, block device numbers are allocated from
 -        predetermined contiguous area.  However, extended block area
 -        may introduce non-contiguous block device numbers.  This
 -        option forces most block device numbers to be allocated from
 -        the extended space and spreads them to discover kernel or
 -        userland code paths which assume predetermined contiguous
 -        device number allocation.
 -
 -        Note that turning on this debug option shuffles all the
 -        device numbers for all IDE and SCSI devices including libata
 -        ones, so root partition specified using device number
 -        directly (via rdev or root=MAJ:MIN) won't work anymore.
 -        Textual device names (root=/dev/sdXn) will continue to work.
 -
 -        Say N if you are unsure.
 -
  config CPU_HOTPLUG_STATE_CONTROL
        bool "Enable CPU hotplug state control"
        depends on DEBUG_KERNEL
@@@ -1945,13 -1973,6 +1947,13 @@@ config FAIL_MMC_REQUES
          and to test how the mmc host driver handles retries from
          the block device.
  
 +config FAIL_SUNRPC
 +      bool "Fault-injection capability for SunRPC"
 +      depends on FAULT_INJECTION_DEBUG_FS && SUNRPC_DEBUG
 +      help
 +        Provide fault-injection capability for SunRPC and
 +        its consumers.
 +
  config FAULT_INJECTION_STACKTRACE_FILTER
        bool "stacktrace filter for fault-injection capabilities"
        depends on FAULT_INJECTION_DEBUG_FS && STACKTRACE_SUPPORT
diff --combined scripts/Makefile.lib
@@@ -225,17 -225,23 +225,23 @@@ dtc_cpp_flags  = -Wp,-MMD,$(depfile).pr
                 $(addprefix -I,$(DTC_INCLUDE))                          \
                 -undef -D__DTS__
  
+ ifeq ($(CONFIG_LTO_CLANG),y)
+ # With CONFIG_LTO_CLANG, .o files in modules might be LLVM bitcode, so we
+ # need to run LTO to compile them into native code (.lto.o) before further
+ # processing.
+ mod-prelink-ext := .lto
+ endif
  # Objtool arguments are also needed for modfinal with LTO, so we define
  # then here to avoid duplication.
  objtool_args =                                                                \
        $(if $(CONFIG_UNWINDER_ORC),orc generate,check)                 \
-       $(if $(part-of-module), --module,)                              \
+       $(if $(part-of-module), --module                              \
        $(if $(CONFIG_FRAME_POINTER),, --no-fp)                         \
-       $(if $(or $(CONFIG_GCOV_KERNEL),$(CONFIG_LTO_CLANG)),           \
-               --no-unreachable,)                                      \
-       $(if $(CONFIG_RETPOLINE), --retpoline,)                         \
-       $(if $(CONFIG_X86_SMAP), --uaccess,)                            \
-       $(if $(CONFIG_FTRACE_MCOUNT_USE_OBJTOOL), --mcount,)
+       $(if $(CONFIG_GCOV_KERNEL)$(CONFIG_LTO_CLANG), --no-unreachable)\
+       $(if $(CONFIG_RETPOLINE), --retpoline)                          \
+       $(if $(CONFIG_X86_SMAP), --uaccess)                             \
+       $(if $(CONFIG_FTRACE_MCOUNT_USE_OBJTOOL), --mcount)
  
  # Useful for describing the dependency of composite objects
  # Usage:
@@@ -309,7 -315,8 +315,7 @@@ DTC_FLAGS += -Wno-unit_address_vs_reg 
        -Wno-alias_paths \
        -Wno-graph_child_address \
        -Wno-simple_bus_reg \
 -      -Wno-unique_unit_address \
 -      -Wno-pci_device_reg
 +      -Wno-unique_unit_address
  endif
  
  ifneq ($(findstring 2,$(KBUILD_EXTRA_WARN)),)
diff --combined scripts/mod/modpost.c
@@@ -17,6 -17,7 +17,7 @@@
  #include <ctype.h>
  #include <string.h>
  #include <limits.h>
+ #include <stdbool.h>
  #include <errno.h>
  #include "modpost.h"
  #include "../../include/linux/license.h"
@@@ -89,6 -90,14 +90,14 @@@ modpost_log(enum loglevel loglevel, con
                error_occurred = true;
  }
  
+ static inline bool strends(const char *str, const char *postfix)
+ {
+       if (strlen(str) < strlen(postfix))
+               return false;
+       return strcmp(str + strlen(str) - strlen(postfix), postfix) == 0;
+ }
  void *do_nofail(void *ptr, const char *expr)
  {
        if (!ptr)
@@@ -931,7 -940,7 +940,7 @@@ static void check_section(const char *m
                ".kprobes.text", ".cpuidle.text", ".noinstr.text"
  #define OTHER_TEXT_SECTIONS ".ref.text", ".head.text", ".spinlock.text", \
                ".fixup", ".entry.text", ".exception.text", ".text.*", \
 -              ".coldtext"
 +              ".coldtext", ".softirqentry.text"
  
  #define INIT_SECTIONS      ".init.*"
  #define MEM_INIT_SECTIONS  ".meminit.*"
@@@ -2060,7 -2069,7 +2069,7 @@@ static void read_symbols(const char *mo
        if (!mod->is_vmlinux) {
                version = get_modinfo(&info, "version");
                if (version || all_versions)
-                       get_src_version(modname, mod->srcversion,
+                       get_src_version(mod->name, mod->srcversion,
                                        sizeof(mod->srcversion) - 1);
        }