Merge tag 'slab-for-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka...
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 25 May 2022 17:24:04 +0000 (10:24 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 25 May 2022 17:24:04 +0000 (10:24 -0700)
Pull slab updates from Vlastimil Babka:

 - Conversion of slub_debug stack traces to stackdepot, allowing more
   useful debugfs-based inspection for e.g. memory leak debugging.
   Allocation and free debugfs info now includes full traces and is
   sorted by the unique trace frequency.

   The stackdepot conversion was already attempted last year but
   reverted by ae14c63a9f20. The memory overhead (while not actually
   enabled on boot) has been meanwhile solved by making the large
   stackdepot allocation dynamic. The xfstest issues haven't been
   reproduced on current kernel locally nor in -next, so the slab cache
   layout changes that originally made that bug manifest were probably
   not the root cause.

 - Refactoring of dma-kmalloc caches creation.

 - Trivial cleanups such as removal of unused parameters, fixes and
   clarifications of comments.

 - Hyeonggon Yoo joins as a reviewer.

* tag 'slab-for-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab:
  MAINTAINERS: add myself as reviewer for slab
  mm/slub: remove unused kmem_cache_order_objects max
  mm: slab: fix comment for __assume_kmalloc_alignment
  mm: slab: fix comment for ARCH_KMALLOC_MINALIGN
  mm/slub: remove unneeded return value of slab_pad_check
  mm/slab_common: move dma-kmalloc caches creation into new_kmalloc_cache()
  mm/slub: remove meaningless node check in ___slab_alloc()
  mm/slub: remove duplicate flag in allocate_slab()
  mm/slub: remove unused parameter in setup_object*()
  mm/slab.c: fix comments
  slab, documentation: add description of debugfs files for SLUB caches
  mm/slub: sort debugfs output by frequency of stack traces
  mm/slub: distinguish and print stack traces in debugfs files
  mm/slub: use stackdepot to save stack trace in objects
  mm/slub: move struct track init out of set_track()
  lib/stackdepot: allow requesting early initialization dynamically
  mm/slub, kunit: Make slub_kunit unaffected by user specified flags
  mm/slab: remove some unused functions

1  2 
MAINTAINERS
lib/Kconfig.debug
mm/slab.c
mm/slab.h
mm/slab_common.c
mm/slub.c

diff --combined MAINTAINERS
index 6618e9b91b6c39ff34bbf83c58d507c9d4ae5f4a,3e4a439f40ed90f277205957a042feeb1125f169..7af43b32e06d55bfd09dfd7d214f375579ef7d1c
@@@ -201,7 -201,6 +201,7 @@@ F: include/net/ieee80211_radiotap.
  F:    include/net/iw_handler.h
  F:    include/net/wext.h
  F:    include/uapi/linux/nl80211.h
 +F:    include/uapi/linux/wireless.h
  F:    net/wireless/
  
  8169 10/100/1000 GIGABIT ETHERNET DRIVER
@@@ -1044,6 -1043,7 +1044,6 @@@ F:      arch/arm64/boot/dts/amd/amd-seattle-
  F:    drivers/net/ethernet/amd/xgbe/
  
  AMD SENSOR FUSION HUB DRIVER
 -M:    Nehal Shah <nehal-bakulchandra.shah@amd.com>
  M:    Basavaraj Natikar <basavaraj.natikar@amd.com>
  L:    linux-input@vger.kernel.org
  S:    Maintained
@@@ -1446,7 -1446,6 +1446,7 @@@ F:      drivers/media/i2c/aptina-pll.
  
  AQUACOMPUTER D5 NEXT PUMP SENSOR DRIVER
  M:    Aleksa Savic <savicaleksa83@gmail.com>
 +M:    Jack Doan <me@jackdoan.com>
  L:    linux-hwmon@vger.kernel.org
  S:    Maintained
  F:    Documentation/hwmon/aquacomputer_d5next.rst
@@@ -2637,14 -2636,13 +2637,14 @@@ F:   sound/soc/rockchip
  N:    rockchip
  
  ARM/SAMSUNG S3C, S5P AND EXYNOS ARM ARCHITECTURES
 -M:    Krzysztof Kozlowski <krzk@kernel.org>
 +M:    Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  R:    Alim Akhtar <alim.akhtar@samsung.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  L:    linux-samsung-soc@vger.kernel.org
  S:    Maintained
  C:    irc://irc.libera.chat/linux-exynos
  Q:    https://patchwork.kernel.org/project/linux-samsung-soc/list/
 +B:    mailto:linux-samsung-soc@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux.git
  F:    Documentation/arm/samsung/
  F:    Documentation/devicetree/bindings/arm/samsung/
@@@ -3101,16 -3099,6 +3101,16 @@@ S:    Maintaine
  F:    Documentation/devicetree/bindings/mmc/aspeed,sdhci.yaml
  F:    drivers/mmc/host/sdhci-of-aspeed*
  
 +ASPEED SMC SPI DRIVER
 +M:    Chin-Ting Kuo <chin-ting_kuo@aspeedtech.com>
 +M:    Cédric Le Goater <clg@kaod.org>
 +L:    linux-aspeed@lists.ozlabs.org (moderated for non-subscribers)
 +L:    openbmc@lists.ozlabs.org (moderated for non-subscribers)
 +L:    linux-spi@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/spi/aspeed,ast2600-fmc.yaml
 +F:    drivers/spi/spi-aspeed-smc.c
 +
  ASPEED VIDEO ENGINE DRIVER
  M:    Eddie James <eajames@linux.ibm.com>
  L:    linux-media@vger.kernel.org
@@@ -3581,9 -3569,8 +3581,9 @@@ M:      Andy Gospodarek <andy@greyhouse.net
  L:    netdev@vger.kernel.org
  S:    Supported
  W:    http://sourceforge.net/projects/bonding/
 +F:    Documentation/networking/bonding.rst
  F:    drivers/net/bonding/
 -F:    include/net/bonding.h
 +F:    include/net/bond*
  F:    include/uapi/linux/if_bonding.h
  
  BOSCH SENSORTEC BMA400 ACCELEROMETER IIO DRIVER
@@@ -3755,7 -3742,7 +3755,7 @@@ F:      include/linux/platform_data/b53.
  
  BROADCOM BCM2711/BCM2835 ARM ARCHITECTURE
  M:    Nicolas Saenz Julienne <nsaenz@kernel.org>
 -L:    bcm-kernel-feedback-list@broadcom.com
 +R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-rpi-kernel@lists.infradead.org (moderated for non-subscribers)
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
@@@ -3770,7 -3757,7 +3770,7 @@@ BROADCOM BCM281XX/BCM11XXX/BCM216XX AR
  M:    Florian Fainelli <f.fainelli@gmail.com>
  M:    Ray Jui <rjui@broadcom.com>
  M:    Scott Branden <sbranden@broadcom.com>
 -M:    bcm-kernel-feedback-list@broadcom.com
 +R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
  S:    Maintained
  T:    git git://github.com/broadcom/mach-bcm
  F:    arch/arm/mach-bcm/
@@@ -3790,7 -3777,7 +3790,7 @@@ F:      arch/mips/include/asm/mach-bcm47xx/
  
  BROADCOM BCM4908 ETHERNET DRIVER
  M:    Rafał Miłecki <rafal@milecki.pl>
 -M:    bcm-kernel-feedback-list@broadcom.com
 +R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/net/brcm,bcm4908-enet.yaml
@@@ -3799,7 -3786,7 +3799,7 @@@ F:      drivers/net/ethernet/broadcom/unimac
  
  BROADCOM BCM4908 PINMUX DRIVER
  M:    Rafał Miłecki <rafal@milecki.pl>
 -M:    bcm-kernel-feedback-list@broadcom.com
 +R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-gpio@vger.kernel.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/pinctrl/brcm,bcm4908-pinctrl.yaml
@@@ -3809,7 -3796,7 +3809,7 @@@ BROADCOM BCM5301X ARM ARCHITECTUR
  M:    Florian Fainelli <f.fainelli@gmail.com>
  M:    Hauke Mehrtens <hauke@hauke-m.de>
  M:    Rafał Miłecki <zajec5@gmail.com>
 -M:    bcm-kernel-feedback-list@broadcom.com
 +R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm/boot/dts/bcm470*
@@@ -3820,7 -3807,7 +3820,7 @@@ F:      arch/arm/mach-bcm/bcm_5301x.
  BROADCOM BCM53573 ARM ARCHITECTURE
  M:    Florian Fainelli <f.fainelli@gmail.com>
  M:    Rafał Miłecki <rafal@milecki.pl>
 -L:    bcm-kernel-feedback-list@broadcom.com
 +R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm/boot/dts/bcm47189*
@@@ -3828,7 -3815,7 +3828,7 @@@ F:      arch/arm/boot/dts/bcm53573
  
  BROADCOM BCM63XX ARM ARCHITECTURE
  M:    Florian Fainelli <f.fainelli@gmail.com>
 -M:    bcm-kernel-feedback-list@broadcom.com
 +R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  T:    git git://github.com/broadcom/stblinux.git
@@@ -3842,7 -3829,7 +3842,7 @@@ F:      drivers/usb/gadget/udc/bcm63xx_udc.
  
  BROADCOM BCM7XXX ARM ARCHITECTURE
  M:    Florian Fainelli <f.fainelli@gmail.com>
 -M:    bcm-kernel-feedback-list@broadcom.com
 +R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  T:    git git://github.com/broadcom/stblinux.git
@@@ -3860,21 -3847,21 +3860,21 @@@ N:   bcm712
  BROADCOM BDC DRIVER
  M:    Al Cooper <alcooperx@gmail.com>
  L:    linux-usb@vger.kernel.org
 -L:    bcm-kernel-feedback-list@broadcom.com
 +R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
  S:    Maintained
  F:    Documentation/devicetree/bindings/usb/brcm,bdc.yaml
  F:    drivers/usb/gadget/udc/bdc/
  
  BROADCOM BMIPS CPUFREQ DRIVER
  M:    Markus Mayer <mmayer@broadcom.com>
 -M:    bcm-kernel-feedback-list@broadcom.com
 +R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-pm@vger.kernel.org
  S:    Maintained
  F:    drivers/cpufreq/bmips-cpufreq.c
  
  BROADCOM BMIPS MIPS ARCHITECTURE
  M:    Florian Fainelli <f.fainelli@gmail.com>
 -L:    bcm-kernel-feedback-list@broadcom.com
 +R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-mips@vger.kernel.org
  S:    Maintained
  T:    git git://github.com/broadcom/stblinux.git
@@@ -3925,9 -3912,7 +3925,9 @@@ BROADCOM BNXT_EN 50 GIGABIT ETHERNET DR
  M:    Michael Chan <michael.chan@broadcom.com>
  L:    netdev@vger.kernel.org
  S:    Supported
 +F:    drivers/firmware/broadcom/tee_bnxt_fw.c
  F:    drivers/net/ethernet/broadcom/bnxt/
 +F:    include/linux/firmware/broadcom/tee_bnxt_fw.h
  
  BROADCOM BRCM80211 IEEE802.11n WIRELESS DRIVER
  M:    Arend van Spriel <aspriel@gmail.com>
@@@ -3942,53 -3927,53 +3942,53 @@@ F:   drivers/net/wireless/broadcom/brcm80
  BROADCOM BRCMSTB GPIO DRIVER
  M:    Doug Berger <opendmb@gmail.com>
  M:    Florian Fainelli <f.fainelli@gmail.com>
 -L:    bcm-kernel-feedback-list@broadcom.com
 +R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
  S:    Supported
  F:    Documentation/devicetree/bindings/gpio/brcm,brcmstb-gpio.yaml
  F:    drivers/gpio/gpio-brcmstb.c
  
  BROADCOM BRCMSTB I2C DRIVER
  M:    Kamal Dasu <kdasu.kdev@gmail.com>
 +R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-i2c@vger.kernel.org
 -L:    bcm-kernel-feedback-list@broadcom.com
  S:    Supported
  F:    Documentation/devicetree/bindings/i2c/brcm,brcmstb-i2c.yaml
  F:    drivers/i2c/busses/i2c-brcmstb.c
  
  BROADCOM BRCMSTB UART DRIVER
  M:    Al Cooper <alcooperx@gmail.com>
 +R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-serial@vger.kernel.org
 -L:    bcm-kernel-feedback-list@broadcom.com
  S:    Maintained
  F:    Documentation/devicetree/bindings/serial/brcm,bcm7271-uart.yaml
  F:    drivers/tty/serial/8250/8250_bcm7271.c
  
  BROADCOM BRCMSTB USB EHCI DRIVER
  M:    Al Cooper <alcooperx@gmail.com>
 +R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-usb@vger.kernel.org
 -L:    bcm-kernel-feedback-list@broadcom.com
  S:    Maintained
  F:    Documentation/devicetree/bindings/usb/brcm,bcm7445-ehci.yaml
  F:    drivers/usb/host/ehci-brcm.*
  
  BROADCOM BRCMSTB USB PIN MAP DRIVER
  M:    Al Cooper <alcooperx@gmail.com>
 +R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-usb@vger.kernel.org
 -L:    bcm-kernel-feedback-list@broadcom.com
  S:    Maintained
  F:    Documentation/devicetree/bindings/usb/brcm,usb-pinmap.yaml
  F:    drivers/usb/misc/brcmstb-usb-pinmap.c
  
  BROADCOM BRCMSTB USB2 and USB3 PHY DRIVER
  M:    Al Cooper <alcooperx@gmail.com>
 +R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-kernel@vger.kernel.org
 -L:    bcm-kernel-feedback-list@broadcom.com
  S:    Maintained
  F:    drivers/phy/broadcom/phy-brcm-usb*
  
  BROADCOM ETHERNET PHY DRIVERS
  M:    Florian Fainelli <f.fainelli@gmail.com>
 -L:    bcm-kernel-feedback-list@broadcom.com
 +R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
  L:    netdev@vger.kernel.org
  S:    Supported
  F:    Documentation/devicetree/bindings/net/broadcom-bcm87xx.txt
@@@ -3999,7 -3984,7 +3999,7 @@@ F:      include/linux/brcmphy.
  BROADCOM GENET ETHERNET DRIVER
  M:    Doug Berger <opendmb@gmail.com>
  M:    Florian Fainelli <f.fainelli@gmail.com>
 -L:    bcm-kernel-feedback-list@broadcom.com
 +R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
  L:    netdev@vger.kernel.org
  S:    Supported
  F:    Documentation/devicetree/bindings/net/brcm,bcmgenet.yaml
@@@ -4013,7 -3998,7 +4013,7 @@@ F:      include/linux/platform_data/mdio-bcm
  BROADCOM IPROC ARM ARCHITECTURE
  M:    Ray Jui <rjui@broadcom.com>
  M:    Scott Branden <sbranden@broadcom.com>
 -M:    bcm-kernel-feedback-list@broadcom.com
 +R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  T:    git git://github.com/broadcom/stblinux.git
@@@ -4041,7 -4026,7 +4041,7 @@@ N:      stingra
  
  BROADCOM IPROC GBIT ETHERNET DRIVER
  M:    Rafał Miłecki <rafal@milecki.pl>
 -M:    bcm-kernel-feedback-list@broadcom.com
 +R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/net/brcm,amac.yaml
@@@ -4050,7 -4035,7 +4050,7 @@@ F:      drivers/net/ethernet/broadcom/unimac
  
  BROADCOM KONA GPIO DRIVER
  M:    Ray Jui <rjui@broadcom.com>
 -L:    bcm-kernel-feedback-list@broadcom.com
 +R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
  S:    Supported
  F:    Documentation/devicetree/bindings/gpio/brcm,kona-gpio.txt
  F:    drivers/gpio/gpio-bcm-kona.c
@@@ -4083,7 -4068,7 +4083,7 @@@ F:      drivers/firmware/broadcom/
  BROADCOM PMB (POWER MANAGEMENT BUS) DRIVER
  M:    Rafał Miłecki <rafal@milecki.pl>
  M:    Florian Fainelli <f.fainelli@gmail.com>
 -M:    bcm-kernel-feedback-list@broadcom.com
 +R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-pm@vger.kernel.org
  S:    Maintained
  T:    git git://github.com/broadcom/stblinux.git
@@@ -4099,7 -4084,7 +4099,7 @@@ F:      include/linux/bcma
  
  BROADCOM SPI DRIVER
  M:    Kamal Dasu <kdasu.kdev@gmail.com>
 -M:    bcm-kernel-feedback-list@broadcom.com
 +R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
  S:    Maintained
  F:    Documentation/devicetree/bindings/spi/brcm,spi-bcm-qspi.yaml
  F:    drivers/spi/spi-bcm-qspi.*
@@@ -4108,7 -4093,7 +4108,7 @@@ F:      drivers/spi/spi-iproc-qspi.
  
  BROADCOM STB AVS CPUFREQ DRIVER
  M:    Markus Mayer <mmayer@broadcom.com>
 -M:    bcm-kernel-feedback-list@broadcom.com
 +R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-pm@vger.kernel.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/cpufreq/brcm,stb-avs-cpu-freq.txt
@@@ -4116,7 -4101,7 +4116,7 @@@ F:      drivers/cpufreq/brcmstb
  
  BROADCOM STB AVS TMON DRIVER
  M:    Markus Mayer <mmayer@broadcom.com>
 -M:    bcm-kernel-feedback-list@broadcom.com
 +R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-pm@vger.kernel.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/thermal/brcm,avs-tmon.yaml
@@@ -4124,7 -4109,7 +4124,7 @@@ F:      drivers/thermal/broadcom/brcmstb
  
  BROADCOM STB DPFE DRIVER
  M:    Markus Mayer <mmayer@broadcom.com>
 -M:    bcm-kernel-feedback-list@broadcom.com
 +R:    Broadcom Kernel Team <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.yaml
@@@ -4133,8 -4118,8 +4133,8 @@@ F:      drivers/memory/brcmstb_dpfe.
  BROADCOM STB NAND FLASH DRIVER
  M:    Brian Norris <computersforpeace@gmail.com>
  M:    Kamal Dasu <kdasu.kdev@gmail.com>
 +R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-mtd@lists.infradead.org
 -L:    bcm-kernel-feedback-list@broadcom.com
  S:    Maintained
  F:    drivers/mtd/nand/raw/brcmnand/
  F:    include/linux/platform_data/brcmnand.h
@@@ -4143,7 -4128,7 +4143,7 @@@ BROADCOM STB PCIE DRIVE
  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
 +R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-pci@vger.kernel.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml
@@@ -4151,7 -4136,7 +4151,7 @@@ F:      drivers/pci/controller/pcie-brcmstb.
  
  BROADCOM SYSTEMPORT ETHERNET DRIVER
  M:    Florian Fainelli <f.fainelli@gmail.com>
 -L:    bcm-kernel-feedback-list@broadcom.com
 +R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
  L:    netdev@vger.kernel.org
  S:    Supported
  F:    drivers/net/ethernet/broadcom/bcmsysport.*
@@@ -4168,7 -4153,7 +4168,7 @@@ F:      drivers/net/ethernet/broadcom/tg3.
  
  BROADCOM VK DRIVER
  M:    Scott Branden <scott.branden@broadcom.com>
 -L:    bcm-kernel-feedback-list@broadcom.com
 +R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
  S:    Supported
  F:    drivers/misc/bcm-vk/
  F:    include/uapi/linux/misc/bcm_vk.h
@@@ -4585,9 -4570,7 +4585,9 @@@ L:      keyrings@vger.kernel.or
  S:    Maintained
  F:    Documentation/admin-guide/module-signing.rst
  F:    certs/
 +F:    scripts/check-blacklist-hashes.awk
  F:    scripts/sign-file.c
 +F:    tools/certs/
  
  CFAG12864B LCD DRIVER
  M:    Miguel Ojeda <ojeda@kernel.org>
@@@ -4808,7 -4791,6 +4808,7 @@@ F:      .clang-forma
  CLANG/LLVM BUILD SUPPORT
  M:    Nathan Chancellor <nathan@kernel.org>
  M:    Nick Desaulniers <ndesaulniers@google.com>
 +R:    Tom Rix <trix@redhat.com>
  L:    llvm@lists.linux.dev
  S:    Supported
  W:    https://clangbuiltlinux.github.io/
@@@ -5452,7 -5434,6 +5452,7 @@@ F:      net/ax25/sysctl_net_ax25.
  
  DATA ACCESS MONITOR
  M:    SeongJae Park <sj@kernel.org>
 +L:    damon@lists.linux.dev
  L:    linux-mm@kvack.org
  S:    Maintained
  F:    Documentation/ABI/testing/sysfs-kernel-mm-damon
@@@ -5734,7 -5715,7 +5734,7 @@@ W:      http://lanana.org/docs/device-list/i
  
  DEVICE RESOURCE MANAGEMENT HELPERS
  M:    Hans de Goede <hdegoede@redhat.com>
 -R:    Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
 +R:    Matti Vaittinen <mazziesaccount@gmail.com>
  S:    Maintained
  F:    include/linux/devm-helpers.h
  
@@@ -5931,7 -5912,7 +5931,7 @@@ R:      Benjamin Gaignard <benjamin.gaignard
  R:    Liam Mark <lmark@codeaurora.org>
  R:    Laura Abbott <labbott@redhat.com>
  R:    Brian Starkey <Brian.Starkey@arm.com>
 -R:    John Stultz <john.stultz@linaro.org>
 +R:    John Stultz <jstultz@google.com>
  L:    linux-media@vger.kernel.org
  L:    dri-devel@lists.freedesktop.org
  L:    linaro-mm-sig@lists.linaro.org (moderated for non-subscribers)
@@@ -6601,7 -6582,7 +6601,7 @@@ F:      drivers/gpu/drm/gma500
  DRM DRIVERS FOR HISILICON
  M:    Xinliang Liu <xinliang.liu@linaro.org>
  M:    Tian Tao  <tiantao6@hisilicon.com>
 -R:    John Stultz <john.stultz@linaro.org>
 +R:    John Stultz <jstultz@google.com>
  R:    Xinwei Kong <kong.kongxinwei@hisilicon.com>
  R:    Chen Feng <puck.chen@hisilicon.com>
  L:    dri-devel@lists.freedesktop.org
@@@ -7397,6 -7378,7 +7397,6 @@@ L:      linux-mm@kvack.or
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/execve
  F:    arch/alpha/kernel/binfmt_loader.c
 -F:    arch/x86/ia32/ia32_aout.c
  F:    fs/*binfmt_*.c
  F:    fs/exec.c
  F:    include/linux/binfmts.h
@@@ -7512,7 -7494,7 +7512,7 @@@ F:      Documentation/hwmon/f71805f.rs
  F:    drivers/hwmon/f71805f.c
  
  FADDR2LINE
 -M:    Josh Poimboeuf <jpoimboe@redhat.com>
 +M:    Josh Poimboeuf <jpoimboe@kernel.org>
  S:    Maintained
  F:    scripts/faddr2line
  
@@@ -8125,7 -8107,7 +8125,7 @@@ M:      Ingo Molnar <mingo@redhat.com
  R:    Peter Zijlstra <peterz@infradead.org>
  R:    Darren Hart <dvhart@infradead.org>
  R:    Davidlohr Bueso <dave@stgolabs.net>
 -R:    André Almeida <andrealmeid@collabora.com>
 +R:    André Almeida <andrealmeid@igalia.com>
  L:    linux-kernel@vger.kernel.org
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git locking/core
@@@ -8398,7 -8380,7 +8398,7 @@@ M:      Linus Walleij <linus.walleij@linaro.
  M:    Bartosz Golaszewski <brgl@bgdev.pl>
  L:    linux-gpio@vger.kernel.org
  S:    Maintained
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git
  F:    Documentation/ABI/obsolete/sysfs-gpio
  F:    Documentation/ABI/testing/gpio-cdev
  F:    Documentation/admin-guide/gpio/
@@@ -8693,6 -8675,7 +8693,6 @@@ F:      include/linux/cciss*.
  F:    include/uapi/linux/cciss*.h
  
  HFI1 DRIVER
 -M:    Mike Marciniszyn <mike.marciniszyn@cornelisnetworks.com>
  M:    Dennis Dalessandro <dennis.dalessandro@cornelisnetworks.com>
  L:    linux-rdma@vger.kernel.org
  S:    Supported
@@@ -8765,14 -8748,6 +8765,14 @@@ F:    drivers/hid/hid-sensor-
  F:    drivers/iio/*/hid-*
  F:    include/linux/hid-sensor-*
  
 +HID WACOM DRIVER
 +M:    Ping Cheng <ping.cheng@wacom.com>
 +M:    Jason Gerecke  <jason.gerecke@wacom.com>
 +L:    linux-input@vger.kernel.org
 +S:    Maintained
 +F:    drivers/hid/wacom.h
 +F:    drivers/hid/wacom_*
 +
  HIGH-RESOLUTION TIMERS, CLOCKEVENTS
  M:    Thomas Gleixner <tglx@linutronix.de>
  L:    linux-kernel@vger.kernel.org
@@@ -8869,7 -8844,7 +8869,7 @@@ F:      Documentation/devicetree/bindings/ne
  F:    drivers/net/ethernet/hisilicon/
  
  HIKEY960 ONBOARD USB GPIO HUB DRIVER
 -M:    John Stultz <john.stultz@linaro.org>
 +M:    John Stultz <jstultz@google.com>
  L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    drivers/misc/hisi_hikey_usb.c
@@@ -9361,12 -9336,14 +9361,12 @@@ F:   drivers/pci/hotplug/rpaphp
  
  IBM Power SRIOV Virtual NIC Device Driver
  M:    Dany Madden <drt@linux.ibm.com>
 -M:    Sukadev Bhattiprolu <sukadev@linux.ibm.com>
  R:    Thomas Falcon <tlfalcon@linux.ibm.com>
  L:    netdev@vger.kernel.org
  S:    Supported
  F:    drivers/net/ethernet/ibm/ibmvnic.*
  
  IBM Power Virtual Accelerator Switchboard
 -M:    Sukadev Bhattiprolu <sukadev@linux.ibm.com>
  L:    linuxppc-dev@lists.ozlabs.org
  S:    Supported
  F:    arch/powerpc/include/asm/vas.h
@@@ -9621,7 -9598,6 +9621,7 @@@ F:      drivers/iio/pressure/dps310.
  
  INFINIBAND SUBSYSTEM
  M:    Jason Gunthorpe <jgg@nvidia.com>
 +M:    Leon Romanovsky <leonro@nvidia.com>
  L:    linux-rdma@vger.kernel.org
  S:    Supported
  W:    https://github.com/linux-rdma/rdma-core
@@@ -9883,14 -9859,6 +9883,14 @@@ B:    https://bugzilla.kernel.or
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux.git
  F:    drivers/idle/intel_idle.c
  
 +INTEL IN FIELD SCAN (IFS) DEVICE
 +M:    Jithu Joseph <jithu.joseph@intel.com>
 +R:    Ashok Raj <ashok.raj@intel.com>
 +R:    Tony Luck <tony.luck@intel.com>
 +S:    Maintained
 +F:    drivers/platform/x86/intel/ifs
 +F:    include/trace/events/intel_ifs.h
 +
  INTEL INTEGRATED SENSOR HUB DRIVER
  M:    Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
  M:    Jiri Kosina <jikos@kernel.org>
@@@ -10160,7 -10128,7 +10160,7 @@@ S:   Supporte
  F:    drivers/net/wireless/intel/iwlegacy/
  
  INTEL WIRELESS WIFI LINK (iwlwifi)
 -M:    Luca Coelho <luciano.coelho@intel.com>
 +M:    Gregory Greenman <gregory.greenman@intel.com>
  L:    linux-wireless@vger.kernel.org
  S:    Supported
  W:    https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi
@@@ -10269,6 -10237,8 +10269,6 @@@ F:   drivers/net/ethernet/sgi/ioc3-eth.
  IOMAP FILESYSTEM LIBRARY
  M:    Christoph Hellwig <hch@infradead.org>
  M:    Darrick J. Wong <djwong@kernel.org>
 -M:    linux-xfs@vger.kernel.org
 -M:    linux-fsdevel@vger.kernel.org
  L:    linux-xfs@vger.kernel.org
  L:    linux-fsdevel@vger.kernel.org
  S:    Supported
@@@ -10399,7 -10369,6 +10399,7 @@@ F:   include/linux/isapnp.
  ISCSI
  M:    Lee Duncan <lduncan@suse.com>
  M:    Chris Leech <cleech@redhat.com>
 +M:    Mike Christie <michael.christie@oracle.com>
  L:    open-iscsi@googlegroups.com
  L:    linux-scsi@vger.kernel.org
  S:    Maintained
@@@ -10577,7 -10546,6 +10577,7 @@@ M:   Andrey Ryabinin <ryabinin.a.a@gmail.
  R:    Alexander Potapenko <glider@google.com>
  R:    Andrey Konovalov <andreyknvl@gmail.com>
  R:    Dmitry Vyukov <dvyukov@google.com>
 +R:    Vincenzo Frascino <vincenzo.frascino@arm.com>
  L:    kasan-dev@googlegroups.com
  S:    Maintained
  F:    Documentation/dev-tools/kasan.rst
@@@ -10885,15 -10853,6 +10885,15 @@@ S: Supporte
  F:    include/keys/trusted_tee.h
  F:    security/keys/trusted-keys/trusted_tee.c
  
 +KEYS-TRUSTED-CAAM
 +M:    Ahmad Fatoum <a.fatoum@pengutronix.de>
 +R:    Pengutronix Kernel Team <kernel@pengutronix.de>
 +L:    linux-integrity@vger.kernel.org
 +L:    keyrings@vger.kernel.org
 +S:    Maintained
 +F:    include/keys/trusted_caam.h
 +F:    security/keys/trusted-keys/trusted_caam.c
 +
  KEYS/KEYRINGS
  M:    David Howells <dhowells@redhat.com>
  M:    Jarkko Sakkinen <jarkko@kernel.org>
@@@ -11249,7 -11208,7 +11249,7 @@@ F:   scripts/spdxcheck.p
  
  LINEAR RANGES HELPERS
  M:    Mark Brown <broonie@kernel.org>
 -R:    Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
 +R:    Matti Vaittinen <mazziesaccount@gmail.com>
  F:    lib/linear_ranges.c
  F:    lib/test_linear_ranges.c
  F:    include/linux/linear_range.h
@@@ -11386,7 -11345,7 +11386,7 @@@ F:   drivers/mmc/host/litex_mmc.
  N:    litex
  
  LIVE PATCHING
 -M:    Josh Poimboeuf <jpoimboe@redhat.com>
 +M:    Josh Poimboeuf <jpoimboe@kernel.org>
  M:    Jiri Kosina <jikos@kernel.org>
  M:    Miroslav Benes <mbenes@suse.cz>
  M:    Petr Mladek <pmladek@suse.com>
@@@ -11866,7 -11825,7 +11866,7 @@@ MARVELL XENON MMC/SD/SDIO HOST CONTROLL
  M:    Hu Ziji <huziji@marvell.com>
  L:    linux-mmc@vger.kernel.org
  S:    Supported
 -F:    Documentation/devicetree/bindings/mmc/marvell,xenon-sdhci.txt
 +F:    Documentation/devicetree/bindings/mmc/marvell,xenon-sdhci.yaml
  F:    drivers/mmc/host/sdhci-xenon*
  
  MATROX FRAMEBUFFER DRIVER
@@@ -11946,7 -11905,7 +11946,7 @@@ F:   drivers/iio/proximity/mb1232.
  
  MAXIM MAX17040 FAMILY FUEL GAUGE DRIVERS
  R:    Iskren Chernev <iskren.chernev@gmail.com>
 -R:    Krzysztof Kozlowski <krzk@kernel.org>
 +R:    Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  R:    Marek Szyprowski <m.szyprowski@samsung.com>
  R:    Matheus Castello <matheus@castello.eng.br>
  L:    linux-pm@vger.kernel.org
@@@ -11956,7 -11915,7 +11956,7 @@@ F:   drivers/power/supply/max17040_batter
  
  MAXIM MAX17042 FAMILY FUEL GAUGE DRIVERS
  R:    Hans de Goede <hdegoede@redhat.com>
 -R:    Krzysztof Kozlowski <krzk@kernel.org>
 +R:    Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  R:    Marek Szyprowski <m.szyprowski@samsung.com>
  R:    Sebastian Krzyszkowiak <sebastian.krzyszkowiak@puri.sm>
  R:    Purism Kernel Team <kernel@puri.sm>
@@@ -12008,11 -11967,10 +12008,11 @@@ F:        Documentation/devicetree/bindings/po
  F:    drivers/power/supply/max77976_charger.c
  
  MAXIM MUIC CHARGER DRIVERS FOR EXYNOS BASED BOARDS
 -M:    Krzysztof Kozlowski <krzk@kernel.org>
 +M:    Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  M:    Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
  L:    linux-pm@vger.kernel.org
  S:    Supported
 +B:    mailto:linux-samsung-soc@vger.kernel.org
  F:    Documentation/devicetree/bindings/power/supply/maxim,max14577.yaml
  F:    Documentation/devicetree/bindings/power/supply/maxim,max77693.yaml
  F:    drivers/power/supply/max14577_charger.c
@@@ -12020,11 -11978,10 +12020,11 @@@ F:        drivers/power/supply/max77693_charge
  
  MAXIM PMIC AND MUIC DRIVERS FOR EXYNOS BASED BOARDS
  M:    Chanwoo Choi <cw00.choi@samsung.com>
 -M:    Krzysztof Kozlowski <krzk@kernel.org>
 +M:    Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  M:    Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
  L:    linux-kernel@vger.kernel.org
  S:    Supported
 +B:    mailto:linux-samsung-soc@vger.kernel.org
  F:    Documentation/devicetree/bindings/*/maxim,max14577.yaml
  F:    Documentation/devicetree/bindings/*/maxim,max77686.yaml
  F:    Documentation/devicetree/bindings/*/maxim,max77693.yaml
@@@ -12194,7 -12151,7 +12194,7 @@@ T:   git git://linuxtv.org/media_tree.gi
  F:    Documentation/admin-guide/media/imx7.rst
  F:    Documentation/devicetree/bindings/media/nxp,imx-mipi-csi2.yaml
  F:    Documentation/devicetree/bindings/media/nxp,imx7-csi.yaml
 -F:    drivers/media/platform/imx/imx-mipi-csis.c
 +F:    drivers/media/platform/nxp/imx-mipi-csis.c
  F:    drivers/staging/media/imx/imx7-media-csi.c
  
  MEDIA DRIVERS FOR HELENE
@@@ -12249,7 -12206,7 +12249,7 @@@ L:   linux-media@vger.kernel.or
  L:    linux-tegra@vger.kernel.org
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
 -F:    Documentation/devicetree/bindings/media/nvidia,tegra-vde.txt
 +F:    Documentation/devicetree/bindings/media/nvidia,tegra-vde.yaml
  F:    drivers/media/platform/nvidia/tegra-vde/
  
  MEDIA DRIVERS FOR RENESAS - CEU
@@@ -12412,9 -12369,10 +12412,9 @@@ F:  drivers/iommu/mtk_iommu
  F:    include/dt-bindings/memory/mt*-port.h
  
  MEDIATEK JPEG DRIVER
 -M:    Rick Chang <rick.chang@mediatek.com>
  M:    Bin Liu <bin.liu@mediatek.com>
  S:    Supported
 -F:    Documentation/devicetree/bindings/media/mediatek-jpeg-decoder.txt
 +F:    Documentation/devicetree/bindings/media/mediatek-jpeg-*.yaml
  F:    drivers/media/platform/mediatek/jpeg/
  
  MEDIATEK MDP DRIVER
@@@ -12430,7 -12388,7 +12430,7 @@@ MEDIATEK MEDIA DRIVE
  M:    Tiffany Lin <tiffany.lin@mediatek.com>
  M:    Andrew-CT Chen <andrew-ct.chen@mediatek.com>
  S:    Supported
 -F:    Documentation/devicetree/bindings/media/mediatek-vcodec.txt
 +F:    Documentation/devicetree/bindings/media/mediatek,vcodec*.yaml
  F:    Documentation/devicetree/bindings/media/mediatek-vpu.txt
  F:    drivers/media/platform/mediatek/vcodec/
  F:    drivers/media/platform/mediatek/vpu/
@@@ -12443,7 -12401,7 +12443,7 @@@ F:   drivers/mmc/host/mtk-sd.
  
  MEDIATEK MT76 WIRELESS LAN DRIVER
  M:    Felix Fietkau <nbd@nbd.name>
 -M:    Lorenzo Bianconi <lorenzo.bianconi83@gmail.com>
 +M:    Lorenzo Bianconi <lorenzo@kernel.org>
  M:    Ryder Lee <ryder.lee@mediatek.com>
  R:    Shayne Chen <shayne.chen@mediatek.com>
  R:    Sean Wang <sean.wang@mediatek.com>
@@@ -12714,10 -12672,9 +12714,10 @@@ F: mm/memblock.
  F:    tools/testing/memblock/
  
  MEMORY CONTROLLER DRIVERS
 -M:    Krzysztof Kozlowski <krzk@kernel.org>
 +M:    Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  L:    linux-kernel@vger.kernel.org
  S:    Maintained
 +B:    mailto:krzysztof.kozlowski@linaro.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-mem-ctrl.git
  F:    Documentation/devicetree/bindings/memory-controllers/
  F:    drivers/memory/
@@@ -13571,21 -13528,12 +13571,21 @@@ M:        Samuel Mendoza-Jonas <sam@mendozajon
  S:    Maintained
  F:    net/ncsi/
  
 -NCT6775 HARDWARE MONITOR DRIVER
 +NCT6775 HARDWARE MONITOR DRIVER - CORE & PLATFORM DRIVER
  M:    Guenter Roeck <linux@roeck-us.net>
  L:    linux-hwmon@vger.kernel.org
  S:    Maintained
  F:    Documentation/hwmon/nct6775.rst
 -F:    drivers/hwmon/nct6775.c
 +F:    drivers/hwmon/nct6775-core.c
 +F:    drivers/hwmon/nct6775-platform.c
 +F:    drivers/hwmon/nct6775.h
 +
 +NCT6775 HARDWARE MONITOR DRIVER - I2C DRIVER
 +M:    Zev Weiss <zev@bewilderbeest.net>
 +L:    linux-hwmon@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/hwmon/nuvoton,nct6775.yaml
 +F:    drivers/hwmon/nct6775-i2c.c
  
  NETDEVSIM
  M:    Jakub Kicinski <kuba@kernel.org>
@@@ -13675,7 -13623,6 +13675,7 @@@ F:   net/core/drop_monitor.
  
  NETWORKING DRIVERS
  M:    "David S. Miller" <davem@davemloft.net>
 +M:    Eric Dumazet <edumazet@google.com>
  M:    Jakub Kicinski <kuba@kernel.org>
  M:    Paolo Abeni <pabeni@redhat.com>
  L:    netdev@vger.kernel.org
@@@ -13723,7 -13670,6 +13723,7 @@@ F:   tools/testing/selftests/drivers/net/
  
  NETWORKING [GENERAL]
  M:    "David S. Miller" <davem@davemloft.net>
 +M:    Eric Dumazet <edumazet@google.com>
  M:    Jakub Kicinski <kuba@kernel.org>
  M:    Paolo Abeni <pabeni@redhat.com>
  L:    netdev@vger.kernel.org
@@@ -13870,11 -13816,10 +13870,11 @@@ F:        include/uapi/linux/nexthop.
  F:    net/ipv4/nexthop.c
  
  NFC SUBSYSTEM
 -M:    Krzysztof Kozlowski <krzk@kernel.org>
 +M:    Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  L:    linux-nfc@lists.01.org (subscribers-only)
  L:    netdev@vger.kernel.org
  S:    Maintained
 +B:    mailto:linux-nfc@lists.01.org
  F:    Documentation/devicetree/bindings/net/nfc/
  F:    drivers/nfc/
  F:    include/linux/platform_data/nfcmrvl.h
@@@ -14188,7 -14133,7 +14188,7 @@@ F:   Documentation/devicetree/bindings/re
  F:    drivers/regulator/pf8x00-regulator.c
  
  NXP PTN5150A CC LOGIC AND EXTCON DRIVER
 -M:    Krzysztof Kozlowski <krzk@kernel.org>
 +M:    Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  L:    linux-kernel@vger.kernel.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/extcon/extcon-ptn5150.yaml
@@@ -14245,7 -14190,7 +14245,7 @@@ R:   NXP Linux Team <linux-imx@nxp.com
  L:    linux-media@vger.kernel.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/media/nxp,imx8-jpeg.yaml
 -F:    drivers/media/platform/imx-jpeg
 +F:    drivers/media/platform/nxp/imx-jpeg
  
  NZXT-KRAKEN2 HARDWARE MONITORING DRIVER
  M:    Jonas Malaco <jonas@protocubo.io>
@@@ -14270,7 -14215,7 +14270,7 @@@ F:   lib/objagg.
  F:    lib/test_objagg.c
  
  OBJTOOL
 -M:    Josh Poimboeuf <jpoimboe@redhat.com>
 +M:    Josh Poimboeuf <jpoimboe@kernel.org>
  M:    Peter Zijlstra <peterz@infradead.org>
  S:    Supported
  F:    tools/objtool/
@@@ -14418,6 -14363,7 +14418,6 @@@ F:   arch/arm/*omap*/*pm
  F:    drivers/cpufreq/omap-cpufreq.c
  
  OMAP POWERDOMAIN SOC ADAPTATION LAYER SUPPORT
 -M:    Rajendra Nayak <rnayak@codeaurora.org>
  M:    Paul Walmsley <paul@pwsan.com>
  L:    linux-omap@vger.kernel.org
  S:    Maintained
@@@ -14710,6 -14656,7 +14710,6 @@@ F:   drivers/rtc/rtc-optee.
  
  OPA-VNIC DRIVER
  M:    Dennis Dalessandro <dennis.dalessandro@cornelisnetworks.com>
 -M:    Mike Marciniszyn <mike.marciniszyn@cornelisnetworks.com>
  L:    linux-rdma@vger.kernel.org
  S:    Supported
  F:    drivers/infiniband/ulp/opa_vnic
@@@ -14740,7 -14687,7 +14740,7 @@@ F:   scripts/dtc
  
  OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS
  M:    Rob Herring <robh+dt@kernel.org>
 -M:    Krzysztof Kozlowski <krzk+dt@kernel.org>
 +M:    Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>
  L:    devicetree@vger.kernel.org
  S:    Maintained
  C:    irc://irc.libera.chat/devicetree
@@@ -14878,19 -14825,6 +14878,19 @@@ F: Documentation/core-api/padata.rs
  F:    include/linux/padata.h
  F:    kernel/padata.c
  
 +PAGE CACHE
 +M:    Matthew Wilcox (Oracle) <willy@infradead.org>
 +L:    linux-fsdevel@vger.kernel.org
 +S:    Supported
 +T:    git git://git.infradead.org/users/willy/pagecache.git
 +F:    Documentation/filesystems/locking.rst
 +F:    Documentation/filesystems/vfs.rst
 +F:    include/linux/pagemap.h
 +F:    mm/filemap.c
 +F:    mm/page-writeback.c
 +F:    mm/readahead.c
 +F:    mm/truncate.c
 +
  PAGE POOL
  M:    Jesper Dangaard Brouer <hawk@kernel.org>
  M:    Ilias Apalodimas <ilias.apalodimas@linaro.org>
@@@ -15533,8 -15467,7 +15533,8 @@@ F:   tools/perf
  PERFORMANCE EVENTS TOOLING ARM64
  R:    John Garry <john.garry@huawei.com>
  R:    Will Deacon <will@kernel.org>
 -R:    Mathieu Poirier <mathieu.poirier@linaro.org>
 +R:    James Clark <james.clark@arm.com>
 +R:    Mike Leach <mike.leach@linaro.org>
  R:    Leo Yan <leo.yan@linaro.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Supported
@@@ -15666,7 -15599,7 +15666,7 @@@ F:   drivers/pinctrl/renesas
  
  PIN CONTROLLER - SAMSUNG
  M:    Tomasz Figa <tomasz.figa@gmail.com>
 -M:    Krzysztof Kozlowski <krzk@kernel.org>
 +M:    Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  M:    Sylwester Nawrocki <s.nawrocki@samsung.com>
  R:    Alim Akhtar <alim.akhtar@samsung.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -15674,7 -15607,6 +15674,7 @@@ L:   linux-samsung-soc@vger.kernel.or
  S:    Maintained
  C:    irc://irc.libera.chat/linux-exynos
  Q:    https://patchwork.kernel.org/project/linux-samsung-soc/list/
 +B:    mailto:linux-samsung-soc@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pinctrl/samsung.git
  F:    Documentation/devicetree/bindings/pinctrl/samsung,pinctrl*yaml
  F:    drivers/pinctrl/samsung/
@@@ -16166,6 -16098,7 +16166,6 @@@ F:   include/uapi/linux/qemu_fw_cfg.
  
  QIB DRIVER
  M:    Dennis Dalessandro <dennis.dalessandro@cornelisnetworks.com>
 -M:    Mike Marciniszyn <mike.marciniszyn@cornelisnetworks.com>
  L:    linux-rdma@vger.kernel.org
  S:    Supported
  F:    drivers/infiniband/hw/qib/
@@@ -16683,6 -16616,7 +16683,6 @@@ F:   drivers/net/ethernet/rdc/r6040.
  
  RDMAVT - RDMA verbs software
  M:    Dennis Dalessandro <dennis.dalessandro@cornelisnetworks.com>
 -M:    Mike Marciniszyn <mike.marciniszyn@cornelisnetworks.com>
  L:    linux-rdma@vger.kernel.org
  S:    Supported
  F:    drivers/infiniband/sw/rdmavt
@@@ -17077,7 -17011,8 +17077,7 @@@ S:   Odd Fixe
  F:    drivers/tty/serial/rp2.*
  
  ROHM BD99954 CHARGER IC
 -R:    Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
 -L:    linux-power@fi.rohmeurope.com
 +R:    Matti Vaittinen <mazziesaccount@gmail.com>
  S:    Supported
  F:    drivers/power/supply/bd99954-charger.c
  F:    drivers/power/supply/bd99954-charger.h
@@@ -17100,7 -17035,8 +17100,7 @@@ F:   drivers/regulator/bd9571mwv-regulato
  F:    include/linux/mfd/bd9571mwv.h
  
  ROHM POWER MANAGEMENT IC DEVICE DRIVERS
 -R:    Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
 -L:    linux-power@fi.rohmeurope.com
 +R:    Matti Vaittinen <mazziesaccount@gmail.com>
  S:    Supported
  F:    drivers/clk/clk-bd718x7.c
  F:    drivers/gpio/gpio-bd71815.c
@@@ -17342,7 -17278,7 +17342,7 @@@ W:   http://www.ibm.com/developerworks/li
  F:    drivers/s390/scsi/zfcp_*
  
  S3C ADC BATTERY DRIVER
 -M:    Krzysztof Kozlowski <krzk@kernel.org>
 +M:    Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  L:    linux-samsung-soc@vger.kernel.org
  S:    Odd Fixes
  F:    drivers/power/supply/s3c_adc_battery.c
@@@ -17387,16 -17323,15 +17387,16 @@@ F:        Documentation/admin-guide/LSM/SafeSe
  F:    security/safesetid/
  
  SAMSUNG AUDIO (ASoC) DRIVERS
 -M:    Krzysztof Kozlowski <krzk@kernel.org>
 +M:    Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  M:    Sylwester Nawrocki <s.nawrocki@samsung.com>
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
  S:    Supported
 +B:    mailto:linux-samsung-soc@vger.kernel.org
  F:    Documentation/devicetree/bindings/sound/samsung*
  F:    sound/soc/samsung/
  
  SAMSUNG EXYNOS PSEUDO RANDOM NUMBER GENERATOR (RNG) DRIVER
 -M:    Krzysztof Kozlowski <krzk@kernel.org>
 +M:    Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  L:    linux-crypto@vger.kernel.org
  L:    linux-samsung-soc@vger.kernel.org
  S:    Maintained
@@@ -17431,12 -17366,11 +17431,12 @@@ S:        Maintaine
  F:    drivers/platform/x86/samsung-laptop.c
  
  SAMSUNG MULTIFUNCTION PMIC DEVICE DRIVERS
 -M:    Krzysztof Kozlowski <krzk@kernel.org>
 +M:    Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  M:    Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
  L:    linux-kernel@vger.kernel.org
  L:    linux-samsung-soc@vger.kernel.org
  S:    Supported
 +B:    mailto:linux-samsung-soc@vger.kernel.org
  F:    Documentation/devicetree/bindings/clock/samsung,s2mps11.yaml
  F:    Documentation/devicetree/bindings/mfd/samsung,s2m*.yaml
  F:    Documentation/devicetree/bindings/mfd/samsung,s5m*.yaml
@@@ -17458,7 -17392,7 +17458,7 @@@ F:   drivers/media/platform/samsung/s3c-c
  F:    include/media/drv-intf/s3c_camif.h
  
  SAMSUNG S3FWRN5 NFC DRIVER
 -M:    Krzysztof Kozlowski <krzk@kernel.org>
 +M:    Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  M:    Krzysztof Opasiak <k.opasiak@samsung.com>
  L:    linux-nfc@lists.01.org (subscribers-only)
  S:    Maintained
@@@ -17480,7 -17414,7 +17480,7 @@@ S:   Supporte
  F:    drivers/media/i2c/s5k5baf.c
  
  SAMSUNG S5P Security SubSystem (SSS) DRIVER
 -M:    Krzysztof Kozlowski <krzk@kernel.org>
 +M:    Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  M:    Vladimir Zapolskiy <vz@mleia.com>
  L:    linux-crypto@vger.kernel.org
  L:    linux-samsung-soc@vger.kernel.org
@@@ -17515,7 -17449,7 +17515,7 @@@ F:   include/linux/clk/samsung.
  F:    include/linux/platform_data/clk-s3c2410.h
  
  SAMSUNG SPI DRIVERS
 -M:    Krzysztof Kozlowski <krzk@kernel.org>
 +M:    Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  M:    Andi Shyti <andi@etezian.org>
  L:    linux-spi@vger.kernel.org
  L:    linux-samsung-soc@vger.kernel.org
@@@ -17533,7 -17467,7 +17533,7 @@@ F:   drivers/net/ethernet/samsung/sxgbe
  
  SAMSUNG THERMAL DRIVER
  M:    Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
 -M:    Krzysztof Kozlowski <krzk@kernel.org>
 +M:    Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  L:    linux-pm@vger.kernel.org
  L:    linux-samsung-soc@vger.kernel.org
  S:    Maintained
@@@ -17574,7 -17508,6 +17574,7 @@@ R:   Steven Rostedt <rostedt@goodmis.org
  R:    Ben Segall <bsegall@google.com> (CONFIG_CFS_BANDWIDTH)
  R:    Mel Gorman <mgorman@suse.de> (CONFIG_NUMA_BALANCING)
  R:    Daniel Bristot de Oliveira <bristot@redhat.com> (SCHED_DEADLINE)
 +R:    Valentin Schneider <vschneid@redhat.com> (TOPOLOGY)
  L:    linux-kernel@vger.kernel.org
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git sched/core
@@@ -17718,8 -17651,8 +17718,8 @@@ K:   \bTIF_SECCOMP\
  
  SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) Broadcom BRCMSTB DRIVER
  M:    Al Cooper <alcooperx@gmail.com>
 +R:    Broadcom Kernel Team <bcm-kernel-feedback-list@broadcom.com>
  L:    linux-mmc@vger.kernel.org
 -L:    bcm-kernel-feedback-list@broadcom.com
  S:    Maintained
  F:    drivers/mmc/host/sdhci-brcmstb*
  
@@@ -18163,6 -18096,7 +18163,7 @@@ M:   Joonsoo Kim <iamjoonsoo.kim@lge.com
  M:    Andrew Morton <akpm@linux-foundation.org>
  M:    Vlastimil Babka <vbabka@suse.cz>
  R:    Roman Gushchin <roman.gushchin@linux.dev>
+ R:    Hyeonggon Yoo <42.hyeyoo@gmail.com>
  L:    linux-mm@kvack.org
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git
@@@ -18852,7 -18786,7 +18853,7 @@@ F:   include/dt-bindings/reset/starfive-j
  
  STATIC BRANCH/CALL
  M:    Peter Zijlstra <peterz@infradead.org>
 -M:    Josh Poimboeuf <jpoimboe@redhat.com>
 +M:    Josh Poimboeuf <jpoimboe@kernel.org>
  M:    Jason Baron <jbaron@akamai.com>
  R:    Steven Rostedt <rostedt@goodmis.org>
  R:    Ard Biesheuvel <ardb@kernel.org>
@@@ -19601,7 -19535,6 +19602,7 @@@ F:   drivers/thermal
  F:    include/linux/cpu_cooling.h
  F:    include/linux/thermal.h
  F:    include/uapi/linux/thermal.h
 +F:    tools/lib/thermal/
  F:    tools/thermal/
  
  THERMAL DRIVER FOR AMLOGIC SOCS
@@@ -19854,7 -19787,7 +19855,7 @@@ F:   drivers/net/wireless/ti
  F:    include/linux/wl12xx.h
  
  TIMEKEEPING, CLOCKSOURCE CORE, NTP, ALARMTIMER
 -M:    John Stultz <john.stultz@linaro.org>
 +M:    John Stultz <jstultz@google.com>
  M:    Thomas Gleixner <tglx@linutronix.de>
  R:    Stephen Boyd <sboyd@kernel.org>
  L:    linux-kernel@vger.kernel.org
@@@ -19901,7 -19834,6 +19902,7 @@@ F:   drivers/media/usb/tm6000
  TMIO/SDHI MMC DRIVER
  M:    Wolfram Sang <wsa+renesas@sang-engineering.com>
  L:    linux-mmc@vger.kernel.org
 +L:    linux-renesas-soc@vger.kernel.org
  S:    Supported
  F:    drivers/mmc/host/renesas_sdhi*
  F:    drivers/mmc/host/tmio_mmc*
@@@ -19911,7 -19843,6 +19912,7 @@@ TMP401 HARDWARE MONITOR DRIVE
  M:    Guenter Roeck <linux@roeck-us.net>
  L:    linux-hwmon@vger.kernel.org
  S:    Maintained
 +F:    Documentation/devicetree/bindings/hwmon/ti,tmp401.yaml
  F:    Documentation/hwmon/tmp401.rst
  F:    drivers/hwmon/tmp401.c
  
@@@ -20595,6 -20526,7 +20596,6 @@@ F:   drivers/usb/host/uhci
  
  USB VIDEO CLASS
  M:    Laurent Pinchart <laurent.pinchart@ideasonboard.com>
 -L:    linux-uvc-devel@lists.sourceforge.net (subscribers-only)
  L:    linux-media@vger.kernel.org
  S:    Maintained
  W:    http://www.ideasonboard.org/uvc/
@@@ -21187,7 -21119,7 +21188,7 @@@ F:   include/linux/regulator
  K:    regulator_get_optional
  
  VOLTAGE AND CURRENT REGULATOR IRQ HELPERS
 -R:    Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
 +R:    Matti Vaittinen <mazziesaccount@gmail.com>
  F:    drivers/regulator/irq_helpers.c
  
  VRF
@@@ -21300,8 -21232,10 +21301,8 @@@ S:  Maintaine
  F:    drivers/hid/hid-wiimote*
  
  WILOCITY WIL6210 WIRELESS DRIVER
 -M:    Maya Erez <merez@codeaurora.org>
  L:    linux-wireless@vger.kernel.org
 -L:    wil6210@qti.qualcomm.com
 -S:    Supported
 +S:    Orphan
  W:    https://wireless.wiki.kernel.org/en/users/Drivers/wil6210
  F:    drivers/net/wireless/ath/wil6210/
  
@@@ -21505,15 -21439,6 +21506,15 @@@ F: arch/x86/include/asm/uv
  F:    arch/x86/kernel/apic/x2apic_uv_x.c
  F:    arch/x86/platform/uv/
  
 +X86 STACK UNWINDING
 +M:    Josh Poimboeuf <jpoimboe@kernel.org>
 +M:    Peter Zijlstra <peterz@infradead.org>
 +S:    Supported
 +F:    arch/x86/include/asm/unwind*.h
 +F:    arch/x86/kernel/dumpstack.c
 +F:    arch/x86/kernel/stacktrace.c
 +F:    arch/x86/kernel/unwind_*.c
 +
  X86 VDSO
  M:    Andy Lutomirski <luto@kernel.org>
  L:    linux-kernel@vger.kernel.org
@@@ -21676,6 -21601,7 +21677,6 @@@ F:   drivers/xen/*swiotlb
  XFS FILESYSTEM
  C:    irc://irc.oftc.net/xfs
  M:    Darrick J. Wong <djwong@kernel.org>
 -M:    linux-xfs@vger.kernel.org
  L:    linux-xfs@vger.kernel.org
  S:    Supported
  W:    http://xfs.org/
diff --combined lib/Kconfig.debug
index a30d5279efda6fad5cd4165a00277554b802c7e3,78d6139111cd9cc8f909d57e500962a66ef77770..388fb808ff1886d778d736940bc213ea36ed4ee3
@@@ -485,25 -485,24 +485,25 @@@ config FRAME_POINTE
          larger and slower, but it gives very useful debugging information
          in case of kernel bugs. (precise oopses/stacktraces/warnings)
  
 +config OBJTOOL
 +      bool
 +
  config STACK_VALIDATION
        bool "Compile-time stack metadata validation"
 -      depends on HAVE_STACK_VALIDATION
 +      depends on HAVE_STACK_VALIDATION && UNWINDER_FRAME_POINTER
 +      select OBJTOOL
        default n
        help
 -        Add compile-time checks to validate stack metadata, including frame
 -        pointers (if CONFIG_FRAME_POINTER is enabled).  This helps ensure
 -        that runtime stack traces are more reliable.
 -
 -        This is also a prerequisite for generation of ORC unwind data, which
 -        is needed for CONFIG_UNWINDER_ORC.
 +        Validate frame pointer rules at compile-time.  This helps ensure that
 +        runtime stack traces are more reliable.
  
          For more information, see
          tools/objtool/Documentation/stack-validation.txt.
  
 -config VMLINUX_VALIDATION
 +config NOINSTR_VALIDATION
        bool
 -      depends on STACK_VALIDATION && DEBUG_ENTRY
 +      depends on HAVE_NOINSTR_VALIDATION && DEBUG_ENTRY
 +      select OBJTOOL
        default y
  
  config VMLINUX_MAP
@@@ -710,6 -709,7 +710,7 @@@ config DEBUG_SLA
  config SLUB_DEBUG_ON
        bool "SLUB debugging on by default"
        depends on SLUB && SLUB_DEBUG
+       select STACKDEPOT_ALWAYS_INIT if STACKTRACE_SUPPORT
        default n
        help
          Boot with debugging on by default. SLUB boots by default with
@@@ -1617,7 -1617,8 +1618,7 @@@ config WARN_ALL_UNSEEDED_RANDO
          so architecture maintainers really need to do what they can
          to get the CRNG seeded sooner after the system is booted.
          However, since users cannot do anything actionable to
 -        address this, by default the kernel will issue only a single
 -        warning for the first use of unseeded randomness.
 +        address this, by default this option is disabled.
  
          Say Y here if you want to receive warnings for all uses of
          unseeded randomness.  This will be of use primarily for
@@@ -2035,11 -2036,10 +2036,11 @@@ config KCO
        bool "Code coverage for fuzzing"
        depends on ARCH_HAS_KCOV
        depends on CC_HAS_SANCOV_TRACE_PC || GCC_PLUGINS
 -      depends on !ARCH_WANTS_NO_INSTR || STACK_VALIDATION || \
 +      depends on !ARCH_WANTS_NO_INSTR || HAVE_NOINSTR_HACK || \
                   GCC_VERSION >= 120000 || CLANG_VERSION >= 130000
        select DEBUG_FS
        select GCC_PLUGIN_SANCOV if !CC_HAS_SANCOV_TRACE_PC
 +      select OBJTOOL if HAVE_NOINSTR_HACK
        help
          KCOV exposes kernel code coverage information in a form suitable
          for coverage-guided fuzzing (randomized testing).
diff --combined mm/slab.c
index 0edb474edef1839662d4e1a4edeacfceea14bb41,e882657c149451073a812491a6a1cb3f8d9e50c4..a301f266efd156e19835166d769b290d11765fe1
+++ b/mm/slab.c
@@@ -619,18 -619,6 +619,6 @@@ static inline int cache_free_alien(stru
        return 0;
  }
  
- static inline void *alternate_node_alloc(struct kmem_cache *cachep,
-               gfp_t flags)
- {
-       return NULL;
- }
- static inline void *____cache_alloc_node(struct kmem_cache *cachep,
-                gfp_t flags, int nodeid)
- {
-       return NULL;
- }
  static inline gfp_t gfp_exact_node(gfp_t flags)
  {
        return flags & ~__GFP_NOFAIL;
  
  #else /* CONFIG_NUMA */
  
- static void *____cache_alloc_node(struct kmem_cache *, gfp_t, int);
- static void *alternate_node_alloc(struct kmem_cache *, gfp_t);
  static struct alien_cache *__alloc_alien_cache(int node, int entries,
                                                int batch, gfp_t gfp)
  {
@@@ -796,7 -781,7 +781,7 @@@ static inline int cache_free_alien(stru
        int slab_node = slab_nid(virt_to_slab(objp));
        int node = numa_mem_id();
        /*
-        * Make sure we are not freeing a object from another node to the array
+        * Make sure we are not freeing an object from another node to the array
         * cache on this cpu.
         */
        if (likely(node == slab_node))
@@@ -847,7 -832,7 +832,7 @@@ static int init_cache_node(struct kmem_
  
        /*
         * The kmem_cache_nodes don't come and go as CPUs
-        * come and go.  slab_mutex is sufficient
+        * come and go.  slab_mutex provides sufficient
         * protection here.
         */
        cachep->node[node] = n;
   * Allocates and initializes node for a node on each slab cache, used for
   * either memory or cpu hotplug.  If memory is being hot-added, the kmem_cache_node
   * will be allocated off-node since memory is not yet online for the new node.
-  * When hotplugging memory or a cpu, existing node are not replaced if
+  * When hotplugging memory or a cpu, existing nodes are not replaced if
   * already in use.
   *
   * Must hold slab_mutex.
@@@ -1061,7 -1046,7 +1046,7 @@@ int slab_prepare_cpu(unsigned int cpu
   * offline.
   *
   * Even if all the cpus of a node are down, we don't free the
-  * kmem_cache_node of any cache. This to avoid a race between cpu_down, and
+  * kmem_cache_node of any cache. This is to avoid a race between cpu_down, and
   * a kmalloc allocation from another cpu for memory from the node of
   * the cpu going down.  The kmem_cache_node structure is usually allocated from
   * kmem_cache_create() and gets destroyed at kmem_cache_destroy().
@@@ -1905,7 -1890,7 +1890,7 @@@ static bool set_on_slab_cache(struct km
   * @flags: SLAB flags
   *
   * Returns a ptr to the cache on success, NULL on failure.
-  * Cannot be called within a int, but can be interrupted.
+  * Cannot be called within an int, but can be interrupted.
   * The @ctor is run when new pages are allocated by the cache.
   *
   * The flags are
@@@ -3056,6 -3041,8 +3041,8 @@@ out
  }
  
  #ifdef CONFIG_NUMA
+ static void *____cache_alloc_node(struct kmem_cache *, gfp_t, int);
  /*
   * Try allocating on another node if PFA_SPREAD_SLAB is a mempolicy is set.
   *
@@@ -3151,7 -3138,7 +3138,7 @@@ retry
  }
  
  /*
-  * A interface to enable slab creation on nodeid
+  * An interface to enable slab creation on nodeid
   */
  static void *____cache_alloc_node(struct kmem_cache *cachep, gfp_t flags,
                                int nodeid)
@@@ -3665,7 -3652,7 +3652,7 @@@ EXPORT_SYMBOL(__kmalloc_node_track_call
  #endif /* CONFIG_NUMA */
  
  #ifdef CONFIG_PRINTK
 -void kmem_obj_info(struct kmem_obj_info *kpp, void *object, struct slab *slab)
 +void __kmem_obj_info(struct kmem_obj_info *kpp, void *object, struct slab *slab)
  {
        struct kmem_cache *cachep;
        unsigned int objnr;
diff --combined mm/slab.h
index 95eb34174c1bb538e38a9c2432273f4db2b73bb4,f7d018100994e4c0aeaa9051056792d0c90b176e..db9fb5c8dae73c89b45b29a9392e86eadbf1614e
+++ b/mm/slab.h
@@@ -331,7 -331,7 +331,7 @@@ static inline slab_flags_t kmem_cache_f
                          SLAB_ACCOUNT)
  #elif defined(CONFIG_SLUB)
  #define SLAB_CACHE_FLAGS (SLAB_NOLEAKTRACE | SLAB_RECLAIM_ACCOUNT | \
-                         SLAB_TEMPORARY | SLAB_ACCOUNT)
+                         SLAB_TEMPORARY | SLAB_ACCOUNT | SLAB_NO_USER_FLAGS)
  #else
  #define SLAB_CACHE_FLAGS (SLAB_NOLEAKTRACE)
  #endif
                              SLAB_NOLEAKTRACE | \
                              SLAB_RECLAIM_ACCOUNT | \
                              SLAB_TEMPORARY | \
-                             SLAB_ACCOUNT)
+                             SLAB_ACCOUNT | \
+                             SLAB_NO_USER_FLAGS)
  
  bool __kmem_cache_empty(struct kmem_cache *);
  int __kmem_cache_shutdown(struct kmem_cache *);
@@@ -868,7 -869,7 +869,7 @@@ struct kmem_obj_info 
        void *kp_stack[KS_ADDRS_COUNT];
        void *kp_free_stack[KS_ADDRS_COUNT];
  };
 -void kmem_obj_info(struct kmem_obj_info *kpp, void *object, struct slab *slab);
 +void __kmem_obj_info(struct kmem_obj_info *kpp, void *object, struct slab *slab);
  #endif
  
  #ifdef CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR
diff --combined mm/slab_common.c
index 2b3206a2c3b51064f8813ab03412152d4f6fc043,c4d63f2c78b8afec55c1ed98fa34a672f380ef5b..d1f3133847ad4b2d838615e5d7fc206434299c83
@@@ -24,6 -24,7 +24,7 @@@
  #include <asm/tlbflush.h>
  #include <asm/page.h>
  #include <linux/memcontrol.h>
+ #include <linux/stackdepot.h>
  
  #define CREATE_TRACE_POINTS
  #include <trace/events/kmem.h>
@@@ -314,9 -315,13 +315,13 @@@ kmem_cache_create_usercopy(const char *
         * If no slub_debug was enabled globally, the static key is not yet
         * enabled by setup_slub_debug(). Enable it if the cache is being
         * created with any of the debugging flags passed explicitly.
+        * It's also possible that this is the first cache created with
+        * SLAB_STORE_USER and we should init stack_depot for it.
         */
        if (flags & SLAB_DEBUG_FLAGS)
                static_branch_enable(&slub_debug_enabled);
+       if (flags & SLAB_STORE_USER)
+               stack_depot_init();
  #endif
  
        mutex_lock(&slab_mutex);
@@@ -555,13 -560,6 +560,13 @@@ bool kmem_valid_obj(void *object
  }
  EXPORT_SYMBOL_GPL(kmem_valid_obj);
  
 +static void kmem_obj_info(struct kmem_obj_info *kpp, void *object, struct slab *slab)
 +{
 +      if (__kfence_obj_info(kpp, object, slab))
 +              return;
 +      __kmem_obj_info(kpp, object, slab);
 +}
 +
  /**
   * kmem_dump_obj - Print available slab provenance information
   * @object: slab object for which to find provenance information.
@@@ -597,8 -595,6 +602,8 @@@ void kmem_dump_obj(void *object
                pr_cont(" slab%s %s", cp, kp.kp_slab_cache->name);
        else
                pr_cont(" slab%s", cp);
 +      if (is_kfence_address(object))
 +              pr_cont(" (kfence)");
        if (kp.kp_objp)
                pr_cont(" start %px", kp.kp_objp);
        if (kp.kp_data_offset)
@@@ -858,6 -854,8 +863,8 @@@ new_kmalloc_cache(int idx, enum kmalloc
                        return;
                }
                flags |= SLAB_ACCOUNT;
+       } else if (IS_ENABLED(CONFIG_ZONE_DMA) && (type == KMALLOC_DMA)) {
+               flags |= SLAB_CACHE_DMA;
        }
  
        kmalloc_caches[type][idx] = create_kmalloc_cache(
@@@ -886,7 -884,7 +893,7 @@@ void __init create_kmalloc_caches(slab_
        /*
         * Including KMALLOC_CGROUP if CONFIG_MEMCG_KMEM defined
         */
-       for (type = KMALLOC_NORMAL; type <= KMALLOC_RECLAIM; type++) {
+       for (type = KMALLOC_NORMAL; type < NR_KMALLOC_TYPES; type++) {
                for (i = KMALLOC_SHIFT_LOW; i <= KMALLOC_SHIFT_HIGH; i++) {
                        if (!kmalloc_caches[type][i])
                                new_kmalloc_cache(i, type, flags);
  
        /* Kmalloc array is now usable */
        slab_state = UP;
- #ifdef CONFIG_ZONE_DMA
-       for (i = 0; i <= KMALLOC_SHIFT_HIGH; i++) {
-               struct kmem_cache *s = kmalloc_caches[KMALLOC_NORMAL][i];
-               if (s) {
-                       kmalloc_caches[KMALLOC_DMA][i] = create_kmalloc_cache(
-                               kmalloc_info[i].name[KMALLOC_DMA],
-                               kmalloc_info[i].size,
-                               SLAB_CACHE_DMA | flags, 0,
-                               kmalloc_info[i].size);
-               }
-       }
- #endif
  }
  #endif /* !CONFIG_SLOB */
  
diff --combined mm/slub.c
index ed5c2c03a47aaeac43a2c5534f34cdf7da9fdc38,d8d5abf49f5f8f4d5bad309e7ceb864e9a4cf6cc..e5535020e0fdf61b5c1ccd1f93b1105fe307cd1b
+++ b/mm/slub.c
@@@ -26,6 -26,7 +26,7 @@@
  #include <linux/cpuset.h>
  #include <linux/mempolicy.h>
  #include <linux/ctype.h>
+ #include <linux/stackdepot.h>
  #include <linux/debugobjects.h>
  #include <linux/kallsyms.h>
  #include <linux/kfence.h>
@@@ -37,6 -38,7 +38,7 @@@
  #include <linux/memcontrol.h>
  #include <linux/random.h>
  #include <kunit/test.h>
+ #include <linux/sort.h>
  
  #include <linux/debugfs.h>
  #include <trace/events/kmem.h>
@@@ -264,8 -266,8 +266,8 @@@ static inline bool kmem_cache_has_cpu_p
  #define TRACK_ADDRS_COUNT 16
  struct track {
        unsigned long addr;     /* Called from address */
- #ifdef CONFIG_STACKTRACE
-       unsigned long addrs[TRACK_ADDRS_COUNT]; /* Called from address */
+ #ifdef CONFIG_STACKDEPOT
+       depot_stack_handle_t handle;
  #endif
        int cpu;                /* Was running on cpu */
        int pid;                /* Pid context */
@@@ -724,57 -726,51 +726,51 @@@ static struct track *get_track(struct k
        return kasan_reset_tag(p + alloc);
  }
  
- static void set_track(struct kmem_cache *s, void *object,
+ static void noinline set_track(struct kmem_cache *s, void *object,
                        enum track_item alloc, unsigned long addr)
  {
        struct track *p = get_track(s, object, alloc);
  
-       if (addr) {
- #ifdef CONFIG_STACKTRACE
-               unsigned int nr_entries;
-               metadata_access_enable();
-               nr_entries = stack_trace_save(kasan_reset_tag(p->addrs),
-                                             TRACK_ADDRS_COUNT, 3);
-               metadata_access_disable();
+ #ifdef CONFIG_STACKDEPOT
+       unsigned long entries[TRACK_ADDRS_COUNT];
+       unsigned int nr_entries;
  
-               if (nr_entries < TRACK_ADDRS_COUNT)
-                       p->addrs[nr_entries] = 0;
+       nr_entries = stack_trace_save(entries, ARRAY_SIZE(entries), 3);
+       p->handle = stack_depot_save(entries, nr_entries, GFP_NOWAIT);
  #endif
-               p->addr = addr;
-               p->cpu = smp_processor_id();
-               p->pid = current->pid;
-               p->when = jiffies;
-       } else {
-               memset(p, 0, sizeof(struct track));
-       }
+       p->addr = addr;
+       p->cpu = smp_processor_id();
+       p->pid = current->pid;
+       p->when = jiffies;
  }
  
  static void init_tracking(struct kmem_cache *s, void *object)
  {
+       struct track *p;
        if (!(s->flags & SLAB_STORE_USER))
                return;
  
-       set_track(s, object, TRACK_FREE, 0UL);
-       set_track(s, object, TRACK_ALLOC, 0UL);
+       p = get_track(s, object, TRACK_ALLOC);
+       memset(p, 0, 2*sizeof(struct track));
  }
  
  static void print_track(const char *s, struct track *t, unsigned long pr_time)
  {
+       depot_stack_handle_t handle __maybe_unused;
        if (!t->addr)
                return;
  
        pr_err("%s in %pS age=%lu cpu=%u pid=%d\n",
               s, (void *)t->addr, pr_time - t->when, t->cpu, t->pid);
- #ifdef CONFIG_STACKTRACE
-       {
-               int i;
-               for (i = 0; i < TRACK_ADDRS_COUNT; i++)
-                       if (t->addrs[i])
-                               pr_err("\t%pS\n", (void *)t->addrs[i]);
-                       else
-                               break;
-       }
+ #ifdef CONFIG_STACKDEPOT
+       handle = READ_ONCE(t->handle);
+       if (handle)
+               stack_depot_print(handle);
+       else
+               pr_err("object allocation/free stack trace missing\n");
  #endif
  }
  
@@@ -1021,7 -1017,7 +1017,7 @@@ static int check_pad_bytes(struct kmem_
  }
  
  /* Check the pad bytes at the end of a slab page */
- static int slab_pad_check(struct kmem_cache *s, struct slab *slab)
+ static void slab_pad_check(struct kmem_cache *s, struct slab *slab)
  {
        u8 *start;
        u8 *fault;
        int remainder;
  
        if (!(s->flags & SLAB_POISON))
-               return 1;
+               return;
  
        start = slab_address(slab);
        length = slab_size(slab);
        end = start + length;
        remainder = length % s->size;
        if (!remainder)
-               return 1;
+               return;
  
        pad = end - remainder;
        metadata_access_enable();
        fault = memchr_inv(kasan_reset_tag(pad), POISON_INUSE, remainder);
        metadata_access_disable();
        if (!fault)
-               return 1;
+               return;
        while (end > fault && end[-1] == POISON_INUSE)
                end--;
  
        print_section(KERN_ERR, "Padding ", pad, remainder);
  
        restore_bytes(s, "slab padding", POISON_INUSE, fault, end);
-       return 0;
  }
  
  static int check_object(struct kmem_cache *s, struct slab *slab,
@@@ -1268,8 -1263,7 +1263,7 @@@ static inline void dec_slabs_node(struc
  }
  
  /* Object debug checks for alloc/free paths */
- static void setup_object_debug(struct kmem_cache *s, struct slab *slab,
-                                                               void *object)
+ static void setup_object_debug(struct kmem_cache *s, void *object)
  {
        if (!kmem_cache_debug_flags(s, SLAB_STORE_USER|SLAB_RED_ZONE|__OBJECT_POISON))
                return;
@@@ -1534,6 -1528,8 +1528,8 @@@ static int __init setup_slub_debug(cha
                        global_slub_debug_changed = true;
                } else {
                        slab_list_specified = true;
+                       if (flags & SLAB_STORE_USER)
+                               stack_depot_want_early_init();
                }
        }
  
        }
  out:
        slub_debug = global_flags;
+       if (slub_debug & SLAB_STORE_USER)
+               stack_depot_want_early_init();
        if (slub_debug != 0 || slub_debug_string)
                static_branch_enable(&slub_debug_enabled);
        else
@@@ -1584,6 -1582,9 +1582,9 @@@ slab_flags_t kmem_cache_flags(unsigned 
        slab_flags_t block_flags;
        slab_flags_t slub_debug_local = slub_debug;
  
+       if (flags & SLAB_NO_USER_FLAGS)
+               return flags;
        /*
         * If the slab cache is for debugging (e.g. kmemleak) then
         * don't store user (stack trace) information by default,
        return flags | slub_debug_local;
  }
  #else /* !CONFIG_SLUB_DEBUG */
- static inline void setup_object_debug(struct kmem_cache *s,
-                       struct slab *slab, void *object) {}
+ static inline void setup_object_debug(struct kmem_cache *s, void *object) {}
  static inline
  void setup_slab_debug(struct kmem_cache *s, struct slab *slab, void *addr) {}
  
@@@ -1641,8 -1641,7 +1641,7 @@@ static inline int free_debug_processing
        void *head, void *tail, int bulk_cnt,
        unsigned long addr) { return 0; }
  
- static inline int slab_pad_check(struct kmem_cache *s, struct slab *slab)
-                       { return 1; }
+ static inline void slab_pad_check(struct kmem_cache *s, struct slab *slab) {}
  static inline int check_object(struct kmem_cache *s, struct slab *slab,
                        void *object, u8 val) { return 1; }
  static inline void add_full(struct kmem_cache *s, struct kmem_cache_node *n,
@@@ -1772,10 -1771,9 +1771,9 @@@ static inline bool slab_free_freelist_h
        return *head != NULL;
  }
  
- static void *setup_object(struct kmem_cache *s, struct slab *slab,
-                               void *object)
+ static void *setup_object(struct kmem_cache *s, void *object)
  {
-       setup_object_debug(s, slab, object);
+       setup_object_debug(s, object);
        object = kasan_init_slab_obj(s, object);
        if (unlikely(s->ctor)) {
                kasan_unpoison_object_data(s, object);
@@@ -1894,13 -1892,13 +1892,13 @@@ static bool shuffle_freelist(struct kme
        /* First entry is used as the base of the freelist */
        cur = next_freelist_entry(s, slab, &pos, start, page_limit,
                                freelist_count);
-       cur = setup_object(s, slab, cur);
+       cur = setup_object(s, cur);
        slab->freelist = cur;
  
        for (idx = 1; idx < slab->objects; idx++) {
                next = next_freelist_entry(s, slab, &pos, start, page_limit,
                        freelist_count);
-               next = setup_object(s, slab, next);
+               next = setup_object(s, next);
                set_freepointer(s, cur, next);
                cur = next;
        }
@@@ -1939,7 -1937,7 +1937,7 @@@ static struct slab *allocate_slab(struc
         */
        alloc_gfp = (flags | __GFP_NOWARN | __GFP_NORETRY) & ~__GFP_NOFAIL;
        if ((alloc_gfp & __GFP_DIRECT_RECLAIM) && oo_order(oo) > oo_order(s->min))
-               alloc_gfp = (alloc_gfp | __GFP_NOMEMALLOC) & ~(__GFP_RECLAIM|__GFP_NOFAIL);
+               alloc_gfp = (alloc_gfp | __GFP_NOMEMALLOC) & ~__GFP_RECLAIM;
  
        slab = alloc_slab_page(alloc_gfp, node, oo);
        if (unlikely(!slab)) {
  
        if (!shuffle) {
                start = fixup_red_left(s, start);
-               start = setup_object(s, slab, start);
+               start = setup_object(s, start);
                slab->freelist = start;
                for (idx = 0, p = start; idx < slab->objects - 1; idx++) {
                        next = p + s->size;
-                       next = setup_object(s, slab, next);
+                       next = setup_object(s, next);
                        set_freepointer(s, p, next);
                        p = next;
                }
@@@ -2910,7 -2908,6 +2908,6 @@@ redo
                 */
                if (!node_isset(node, slab_nodes)) {
                        node = NUMA_NO_NODE;
-                       goto redo;
                } else {
                        stat(s, ALLOC_NODE_MISMATCH);
                        goto deactivate_slab;
@@@ -4165,8 -4162,6 +4162,6 @@@ static int calculate_sizes(struct kmem_
         */
        s->oo = oo_make(order, size);
        s->min = oo_make(get_order(size), size);
-       if (oo_objects(s->oo) > oo_objects(s->max))
-               s->max = s->oo;
  
        return !!oo_objects(s->oo);
  }
@@@ -4312,7 -4307,7 +4307,7 @@@ int __kmem_cache_shutdown(struct kmem_c
  }
  
  #ifdef CONFIG_PRINTK
 -void kmem_obj_info(struct kmem_obj_info *kpp, void *object, struct slab *slab)
 +void __kmem_obj_info(struct kmem_obj_info *kpp, void *object, struct slab *slab)
  {
        void *base;
        int __maybe_unused i;
        objp = fixup_red_left(s, objp);
        trackp = get_track(s, objp, TRACK_ALLOC);
        kpp->kp_ret = (void *)trackp->addr;
- #ifdef CONFIG_STACKTRACE
-       for (i = 0; i < KS_ADDRS_COUNT && i < TRACK_ADDRS_COUNT; i++) {
-               kpp->kp_stack[i] = (void *)trackp->addrs[i];
-               if (!kpp->kp_stack[i])
-                       break;
-       }
+ #ifdef CONFIG_STACKDEPOT
+       {
+               depot_stack_handle_t handle;
+               unsigned long *entries;
+               unsigned int nr_entries;
  
-       trackp = get_track(s, objp, TRACK_FREE);
-       for (i = 0; i < KS_ADDRS_COUNT && i < TRACK_ADDRS_COUNT; i++) {
-               kpp->kp_free_stack[i] = (void *)trackp->addrs[i];
-               if (!kpp->kp_free_stack[i])
-                       break;
+               handle = READ_ONCE(trackp->handle);
+               if (handle) {
+                       nr_entries = stack_depot_fetch(handle, &entries);
+                       for (i = 0; i < KS_ADDRS_COUNT && i < nr_entries; i++)
+                               kpp->kp_stack[i] = (void *)entries[i];
+               }
+               trackp = get_track(s, objp, TRACK_FREE);
+               handle = READ_ONCE(trackp->handle);
+               if (handle) {
+                       nr_entries = stack_depot_fetch(handle, &entries);
+                       for (i = 0; i < KS_ADDRS_COUNT && i < nr_entries; i++)
+                               kpp->kp_free_stack[i] = (void *)entries[i];
+               }
        }
  #endif
  #endif
@@@ -5057,6 -5060,7 +5060,7 @@@ EXPORT_SYMBOL(validate_slab_cache)
   */
  
  struct location {
+       depot_stack_handle_t handle;
        unsigned long count;
        unsigned long addr;
        long long sum_time;
@@@ -5109,9 -5113,13 +5113,13 @@@ static int add_location(struct loc_trac
  {
        long start, end, pos;
        struct location *l;
-       unsigned long caddr;
+       unsigned long caddr, chandle;
        unsigned long age = jiffies - track->when;
+       depot_stack_handle_t handle = 0;
  
+ #ifdef CONFIG_STACKDEPOT
+       handle = READ_ONCE(track->handle);
+ #endif
        start = -1;
        end = t->count;
  
                        break;
  
                caddr = t->loc[pos].addr;
-               if (track->addr == caddr) {
+               chandle = t->loc[pos].handle;
+               if ((track->addr == caddr) && (handle == chandle)) {
  
                        l = &t->loc[pos];
                        l->count++;
  
                if (track->addr < caddr)
                        end = pos;
+               else if (track->addr == caddr && handle < chandle)
+                       end = pos;
                else
                        start = pos;
        }
        l->max_time = age;
        l->min_pid = track->pid;
        l->max_pid = track->pid;
+       l->handle = handle;
        cpumask_clear(to_cpumask(l->cpus));
        cpumask_set_cpu(track->cpu, to_cpumask(l->cpus));
        nodes_clear(l->nodes);
@@@ -6082,6 -6094,21 +6094,21 @@@ static int slab_debugfs_show(struct seq
                        seq_printf(seq, " nodes=%*pbl",
                                 nodemask_pr_args(&l->nodes));
  
+ #ifdef CONFIG_STACKDEPOT
+               {
+                       depot_stack_handle_t handle;
+                       unsigned long *entries;
+                       unsigned int nr_entries, j;
+                       handle = READ_ONCE(l->handle);
+                       if (handle) {
+                               nr_entries = stack_depot_fetch(handle, &entries);
+                               seq_puts(seq, "\n");
+                               for (j = 0; j < nr_entries; j++)
+                                       seq_printf(seq, "        %pS\n", (void *)entries[j]);
+                       }
+               }
+ #endif
                seq_puts(seq, "\n");
        }
  
@@@ -6106,6 -6133,17 +6133,17 @@@ static void *slab_debugfs_next(struct s
        return NULL;
  }
  
+ static int cmp_loc_by_count(const void *a, const void *b, const void *data)
+ {
+       struct location *loc1 = (struct location *)a;
+       struct location *loc2 = (struct location *)b;
+       if (loc1->count > loc2->count)
+               return -1;
+       else
+               return 1;
+ }
  static void *slab_debugfs_start(struct seq_file *seq, loff_t *ppos)
  {
        struct loc_track *t = seq->private;
@@@ -6167,6 -6205,10 +6205,10 @@@ static int slab_debug_trace_open(struc
                spin_unlock_irqrestore(&n->list_lock, flags);
        }
  
+       /* Sort locations by count */
+       sort_r(t->loc, t->count, sizeof(struct location),
+               cmp_loc_by_count, NULL, NULL);
        bitmap_free(obj_map);
        return 0;
  }