]> Git Repo - J-linux.git/commitdiff
Merge tag 'rust-6.13' of https://github.com/Rust-for-Linux/linux
authorLinus Torvalds <[email protected]>
Tue, 26 Nov 2024 22:00:26 +0000 (14:00 -0800)
committerLinus Torvalds <[email protected]>
Tue, 26 Nov 2024 22:00:26 +0000 (14:00 -0800)
Pull rust updates from Miguel Ojeda:
 "Toolchain and infrastructure:

   - Enable a series of lints, including safety-related ones, e.g. the
     compiler will now warn about missing safety comments, as well as
     unnecessary ones. How safety documentation is organized is a
     frequent source of review comments, thus having the compiler guide
     new developers on where they are expected (and where not) is very
     nice.

   - Start using '#[expect]': an interesting feature in Rust (stabilized
     in 1.81.0) that makes the compiler warn if an expected warning was
     _not_ emitted. This is useful to avoid forgetting cleaning up
     locally ignored diagnostics ('#[allow]'s).

   - Introduce '.clippy.toml' configuration file for Clippy, the Rust
     linter, which will allow us to tweak its behaviour. For instance,
     our first use cases are declaring a disallowed macro and, more
     importantly, enabling the checking of private items.

   - Lints-related fixes and cleanups related to the items above.

   - Migrate from 'receiver_trait' to 'arbitrary_self_types': to get the
     kernel into stable Rust, one of the major pieces of the puzzle is
     the support to write custom types that can be used as 'self', i.e.
     as receivers, since the kernel needs to write types such as 'Arc'
     that common userspace Rust would not. 'arbitrary_self_types' has
     been accepted to become stable, and this is one of the steps
     required to get there.

   - Remove usage of the 'new_uninit' unstable feature.

   - Use custom C FFI types. Includes a new 'ffi' crate to contain our
     custom mapping, instead of using the standard library 'core::ffi'
     one. The actual remapping will be introduced in a later cycle.

   - Map '__kernel_{size_t,ssize_t,ptrdiff_t}' to 'usize'/'isize'
     instead of 32/64-bit integers.

   - Fix 'size_t' in bindgen generated prototypes of C builtins.

   - Warn on bindgen < 0.69.5 and libclang >= 19.1 due to a double issue
     in the projects, which we managed to trigger with the upcoming
     tracepoint support. It includes a build test since some
     distributions backported the fix (e.g. Debian -- thanks!). All
     major distributions we list should be now OK except Ubuntu non-LTS.

  'macros' crate:

   - Adapt the build system to be able run the doctests there too; and
     clean up and enable the corresponding doctests.

  'kernel' crate:

   - Add 'alloc' module with generic kernel allocator support and remove
     the dependency on the Rust standard library 'alloc' and the
     extension traits we used to provide fallible methods with flags.

     Add the 'Allocator' trait and its implementations '{K,V,KV}malloc'.
     Add the 'Box' type (a heap allocation for a single value of type
     'T' that is also generic over an allocator and considers the
     kernel's GFP flags) and its shorthand aliases '{K,V,KV}Box'. Add
     'ArrayLayout' type. Add 'Vec' (a contiguous growable array type)
     and its shorthand aliases '{K,V,KV}Vec', including iterator
     support.

     For instance, now we may write code such as:

         let mut v = KVec::new();
         v.push(1, GFP_KERNEL)?;
         assert_eq!(&v, &[1]);

     Treewide, move as well old users to these new types.

   - 'sync' module: add global lock support, including the
     'GlobalLockBackend' trait; the 'Global{Lock,Guard,LockedBy}' types
     and the 'global_lock!' macro. Add the 'Lock::try_lock' method.

   - 'error' module: optimize 'Error' type to use 'NonZeroI32' and make
     conversion functions public.

   - 'page' module: add 'page_align' function.

   - Add 'transmute' module with the existing 'FromBytes' and 'AsBytes'
     traits.

   - 'block::mq::request' module: improve rendered documentation.

   - 'types' module: extend 'Opaque' type documentation and add simple
     examples for the 'Either' types.

  drm/panic:

   - Clean up a series of Clippy warnings.

  Documentation:

   - Add coding guidelines for lints and the '#[expect]' feature.

   - Add Ubuntu to the list of distributions in the Quick Start guide.

  MAINTAINERS:

   - Add Danilo Krummrich as maintainer of the new 'alloc' module.

  And a few other small cleanups and fixes"

* tag 'rust-6.13' of https://github.com/Rust-for-Linux/linux: (82 commits)
  rust: alloc: Fix `ArrayLayout` allocations
  docs: rust: remove spurious item in `expect` list
  rust: allow `clippy::needless_lifetimes`
  rust: warn on bindgen < 0.69.5 and libclang >= 19.1
  rust: use custom FFI integer types
  rust: map `__kernel_size_t` and friends also to usize/isize
  rust: fix size_t in bindgen prototypes of C builtins
  rust: sync: add global lock support
  rust: macros: enable the rest of the tests
  rust: macros: enable paste! use from macro_rules!
  rust: enable macros::module! tests
  rust: kbuild: expand rusttest target for macros
  rust: types: extend `Opaque` documentation
  rust: block: fix formatting of `kernel::block::mq::request` module
  rust: macros: fix documentation of the paste! macro
  rust: kernel: fix THIS_MODULE header path in ThisModule doc comment
  rust: page: add Rust version of PAGE_ALIGN
  rust: helpers: remove unnecessary header includes
  rust: exports: improve grammar in commentary
  drm/panic: allow verbose version check
  ...

15 files changed:
1  2 
MAINTAINERS
Makefile
rust/Makefile
rust/bindings/bindings_helper.h
rust/helpers/helpers.c
rust/helpers/spinlock.c
rust/helpers/task.c
rust/kernel/lib.rs
rust/kernel/net/phy.rs
rust/kernel/sync.rs
rust/kernel/sync/lock.rs
rust/kernel/task.rs
rust/kernel/types.rs
samples/rust/rust_print_main.rs
scripts/Makefile.build

diff --combined MAINTAINERS
index e455ca5202d16f448faaa7867741d020f49bb542,b77f4495dcf427f9901686985296721b82b3f91f..443217066eb97d102b8a4b8109751b620fdb62b2
@@@ -258,6 -258,12 +258,6 @@@ L:        [email protected]
  S:    Maintained
  F:    drivers/net/ethernet/alteon/acenic*
  
 -ACER ASPIRE 1 EMBEDDED CONTROLLER DRIVER
 -M:    Nikita Travkin <[email protected]>
 -S:    Maintained
 -F:    Documentation/devicetree/bindings/platform/acer,aspire1-ec.yaml
 -F:    drivers/platform/arm64/acer-aspire1-ec.c
 -
  ACER ASPIRE ONE TEMPERATURE AND FAN DRIVER
  M:    Peter Kaestle <[email protected]>
  L:    [email protected]
@@@ -701,7 -707,7 +701,7 @@@ M: Hans Verkuil <[email protected]
  L:    [email protected]
  S:    Maintained
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/radio/radio-aimslab*
  
  AIO
@@@ -786,7 -792,6 +786,7 @@@ F: drivers/perf/alibaba_uncore_drw_pmu.
  ALIENWARE WMI DRIVER
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/wmi/devices/alienware-wmi.rst
  F:    drivers/platform/x86/dell/alienware-wmi.c
  
  ALLEGRO DVT VIDEO IP CORE DRIVER
@@@ -810,7 -815,7 +810,7 @@@ ALLWINNER A10 CSI DRIVE
  M:    Maxime Ripard <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.yaml
  F:    drivers/media/platform/sunxi/sun4i-csi/
  
@@@ -819,7 -824,7 +819,7 @@@ M: Yong Deng <[email protected]
  M:    Paul Kocialkowski <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/allwinner,sun6i-a31-csi.yaml
  F:    drivers/media/platform/sunxi/sun6i-csi/
  
@@@ -827,7 -832,7 +827,7 @@@ ALLWINNER A31 ISP DRIVE
  M:    Paul Kocialkowski <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/allwinner,sun6i-a31-isp.yaml
  F:    drivers/staging/media/sunxi/sun6i-isp/
  F:    drivers/staging/media/sunxi/sun6i-isp/uapi/sun6i-isp-config.h
@@@ -836,7 -841,7 +836,7 @@@ ALLWINNER A31 MIPI CSI-2 BRIDGE DRIVE
  M:    Paul Kocialkowski <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/allwinner,sun6i-a31-mipi-csi2.yaml
  F:    drivers/media/platform/sunxi/sun6i-mipi-csi2/
  
@@@ -883,6 -888,7 +883,6 @@@ F: drivers/staging/media/sunxi/cedrus
  
  ALPHA PORT
  M:    Richard Henderson <[email protected]>
 -M:    Ivan Kokshaysky <[email protected]>
  M:    Matt Turner <[email protected]>
  L:    [email protected]
  S:    Odd Fixes
@@@ -966,14 -972,6 +966,14 @@@ Q:       https://patchwork.kernel.org/project
  F:    drivers/infiniband/hw/efa/
  F:    include/uapi/rdma/efa-abi.h
  
 +AMD 3D V-CACHE PERFORMANCE OPTIMIZER DRIVER
 +M:    Basavaraj Natikar <[email protected]>
 +R:    Mario Limonciello <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    Documentation/ABI/testing/sysfs-bus-platform-drivers-amd_x3d_vcache
 +F:    drivers/platform/x86/amd/x3d_vcache.c
 +
  AMD ADDRESS TRANSLATION LIBRARY (ATL)
  M:    Yazen Ghannam <[email protected]>
  L:    [email protected]
@@@ -1083,7 -1081,7 +1083,7 @@@ S:      Maintaine
  F:    Documentation/arch/x86/amd_hsmp.rst
  F:    arch/x86/include/asm/amd_hsmp.h
  F:    arch/x86/include/uapi/asm/amd_hsmp.h
 -F:    drivers/platform/x86/amd/hsmp.c
 +F:    drivers/platform/x86/amd/hsmp/
  
  AMD IOMMU (AMD-VI)
  M:    Joerg Roedel <[email protected]>
  S:    Maintained
  F:    drivers/i2c/busses/i2c-amd-mp2*
  
 +AMD ASF I2C DRIVER
 +M:    Shyam Sundar S K <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    drivers/i2c/busses/i2c-amd-asf-plat.c
 +
  AMD PDS CORE DRIVER
  M:    Shannon Nelson <[email protected]>
  M:    Brett Creeley <[email protected]>
@@@ -1139,7 -1131,7 +1139,7 @@@ F:      drivers/platform/x86/amd/pmc
  AMD PMF DRIVER
  M:    Shyam Sundar S K <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Supported
  F:    Documentation/ABI/testing/sysfs-amd-pmf
  F:    drivers/platform/x86/amd/pmf/
  
@@@ -1189,9 -1181,8 +1189,9 @@@ F:      Documentation/hid/amd-sfh
  F:    drivers/hid/amd-sfh-hid/
  
  AMD SPI DRIVER
 -M:    Sanjay R Mehta <[email protected]>
 -S:    Maintained
 +M:    Raju Rangoju <[email protected]>
 +L:    [email protected]
 +S:    Supported
  F:    drivers/spi/spi-amd.c
  
  AMD XGBE DRIVER
@@@ -1530,7 -1521,6 +1530,7 @@@ L:      [email protected]
  S:    Supported
  W:    http://wiki.analog.com/
  W:    https://ez.analog.com/linux-software-drivers
 +F:    Documentation/devicetree/bindings/sound/adi,*
  F:    sound/soc/codecs/ad1*
  F:    sound/soc/codecs/ad7*
  F:    sound/soc/codecs/adau*
@@@ -1771,8 -1761,8 +1771,8 @@@ F:      include/uapi/linux/if_arcnet.
  ARM AND ARM64 SoC SUB-ARCHITECTURES (COMMON PARTS)
  M:    Arnd Bergmann <[email protected]>
  M:    Olof Johansson <[email protected]>
 -M:    [email protected]
  L:    [email protected] (moderated for non-subscribers)
 +L:    [email protected]
  S:    Maintained
  P:    Documentation/process/maintainer-soc.rst
  C:    irc://irc.libera.chat/armlinux
@@@ -2006,7 -1996,7 +2006,7 @@@ L:      [email protected]
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    Documentation/devicetree/bindings/arm/actions.yaml
 -F:    Documentation/devicetree/bindings/clock/actions,owl-cmu.txt
 +F:    Documentation/devicetree/bindings/clock/actions,owl-cmu.yaml
  F:    Documentation/devicetree/bindings/dma/owl-dma.yaml
  F:    Documentation/devicetree/bindings/i2c/i2c-owl.yaml
  F:    Documentation/devicetree/bindings/interrupt-controller/actions,owl-sirq.yaml
@@@ -2014,7 -2004,7 +2014,7 @@@ F:      Documentation/devicetree/bindings/mm
  F:    Documentation/devicetree/bindings/net/actions,owl-emac.yaml
  F:    Documentation/devicetree/bindings/pinctrl/actions,*
  F:    Documentation/devicetree/bindings/power/actions,owl-sps.txt
 -F:    Documentation/devicetree/bindings/timer/actions,owl-timer.txt
 +F:    Documentation/devicetree/bindings/timer/actions,owl-timer.yaml
  F:    arch/arm/boot/dts/actions/
  F:    arch/arm/mach-actions/
  F:    arch/arm64/boot/dts/actions/
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/sound/adi,ssm3515.yaml
 +F:    Documentation/devicetree/bindings/sound/cirrus,cs42l84.yaml
  F:    Documentation/devicetree/bindings/sound/apple,*
  F:    sound/soc/apple/*
  F:    sound/soc/codecs/cs42l83-i2c.c
 +F:    sound/soc/codecs/cs42l84.*
  F:    sound/soc/codecs/ssm3515.c
  
  ARM/APPLE MACHINE SUPPORT
@@@ -2213,7 -2201,7 +2213,7 @@@ F:      drivers/mmc/host/usdhi6rol0.
  F:    drivers/pinctrl/pinctrl-artpec*
  
  ARM/ASPEED I2C DRIVER
 -M:    Brendan Higgins <brendanhiggins@google.com>
 +M:    Ryan Chen <ryan_chen@aspeedtech.com>
  R:    Benjamin Herrenschmidt <[email protected]>
  R:    Joel Stanley <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    arch/arm/mach-ep93xx/ts72xx.c
  
 -ARM/CIRRUS LOGIC CLPS711X ARM ARCHITECTURE
 -M:    Alexander Shiyan <[email protected]>
 -L:    [email protected] (moderated for non-subscribers)
 -S:    Odd Fixes
 -N:    clps711x
 -
  ARM/CIRRUS LOGIC EP93XX ARM ARCHITECTURE
  M:    Hartley Sweeten <[email protected]>
  M:    Alexander Sverdlin <[email protected]>
@@@ -2824,7 -2818,6 +2824,7 @@@ F:      arch/arm64/boot/dts/qcom/sdm845-chez
  
  ARM/QUALCOMM MAILING LIST
  L:    [email protected]
 +C:    irc://irc.oftc.net/linux-msm
  F:    Documentation/devicetree/bindings/*/qcom*
  F:    Documentation/devicetree/bindings/soc/qcom/
  F:    arch/arm/boot/dts/qcom/
@@@ -2866,14 -2859,13 +2866,14 @@@ M:   Bjorn Andersson <[email protected]
  M:    Konrad Dybcio <[email protected]>
  L:    [email protected]
  S:    Maintained
 +C:    irc://irc.oftc.net/linux-msm
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux.git
  F:    Documentation/devicetree/bindings/arm/qcom-soc.yaml
  F:    Documentation/devicetree/bindings/arm/qcom.yaml
  F:    Documentation/devicetree/bindings/bus/qcom*
  F:    Documentation/devicetree/bindings/cache/qcom,llcc.yaml
  F:    Documentation/devicetree/bindings/firmware/qcom,scm.yaml
 -F:    Documentation/devicetree/bindings/reserved-memory/qcom
 +F:    Documentation/devicetree/bindings/reserved-memory/qcom*
  F:    Documentation/devicetree/bindings/soc/qcom/
  F:    arch/arm/boot/dts/qcom/
  F:    arch/arm/configs/qcom_defconfig
@@@ -3368,7 -3360,7 +3368,7 @@@ ASAHI KASEI AK7375 LENS VOICE COIL DRIV
  M:    Tianshu Qiu <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/asahi-kasei,ak7375.yaml
  F:    drivers/media/i2c/ak7375.c
  
@@@ -3766,7 -3758,6 +3766,7 @@@ F:      drivers/spi/spi-axi-spi-engine.
  AXI PWM GENERATOR
  M:    Michael Hennerich <[email protected]>
  M:    Nuno Sá <[email protected]>
 +R:    Trevor Gamblin <[email protected]>
  L:    [email protected]
  S:    Supported
  W:    https://ez.analog.com/linux-software-drivers
@@@ -3785,7 -3776,7 +3785,7 @@@ M:      Mauro Carvalho Chehab <mchehab@kerne
  L:    [email protected]
  S:    Maintained
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/usb/dvb-usb-v2/az6007.c
  
  AZTECH FM RADIO RECEIVER DRIVER
@@@ -3793,7 -3784,7 +3793,7 @@@ M:      Hans Verkuil <[email protected]
  L:    [email protected]
  S:    Maintained
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/radio/radio-aztech*
  
  B43 WIRELESS DRIVER
@@@ -3812,7 -3803,7 +3812,7 @@@ F:      drivers/net/wireless/broadcom/b43leg
  
  BACKLIGHT CLASS/SUBSYSTEM
  M:    Lee Jones <[email protected]>
 -M:    Daniel Thompson <daniel.thompson@linaro.org>
 +M:    Daniel Thompson <danielt@kernel.org>
  M:    Jingoo Han <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -3824,6 -3815,14 +3824,6 @@@ F:     drivers/video/backlight
  F:    include/linux/backlight.h
  F:    include/linux/pwm_backlight.h
  
 -BAIKAL-T1 PVT HARDWARE MONITOR DRIVER
 -M:    Serge Semin <[email protected]>
 -L:    [email protected]
 -S:    Supported
 -F:    Documentation/devicetree/bindings/hwmon/baikal,bt1-pvt.yaml
 -F:    Documentation/hwmon/bt1-pvt.rst
 -F:    drivers/hwmon/bt1-pvt.[ch]
 -
  BARCO P50 GPIO DRIVER
  M:    Santosh Kumar Yadav <[email protected]>
  M:    Peter Korsgaard <[email protected]>
@@@ -3877,7 -3876,7 +3877,7 @@@ M:      Fabien Dessenne <fabien.dessenne@fos
  L:    [email protected]
  S:    Supported
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/platform/st/sti/bdisp
  
  BECKHOFF CX5020 ETHERCAT MASTER DRIVER
@@@ -4885,7 -4884,7 +4885,7 @@@ M:      Mauro Carvalho Chehab <mchehab@kerne
  L:    [email protected]
  S:    Odd fixes
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/driver-api/media/drivers/bttv*
  F:    drivers/media/pci/bt8xx/bttv*
  
@@@ -4999,13 -4998,13 +4999,13 @@@ M:   Hans Verkuil <[email protected]
  L:    [email protected]
  S:    Maintained
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/radio/radio-cadet*
  
  CAFE CMOS INTEGRATED CAMERA CONTROLLER DRIVER
  L:    [email protected]
  S:    Orphan
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/admin-guide/media/cafe_ccic*
  F:    drivers/media/platform/marvell/
  
@@@ -5189,7 -5188,7 +5189,7 @@@ M:      Hans Verkuil <hverkuil-cisco@xs4all.
  L:    [email protected]
  S:    Supported
  W:    http://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/ABI/testing/debugfs-cec-error-inj
  F:    Documentation/devicetree/bindings/media/cec/cec-common.yaml
  F:    Documentation/driver-api/media/cec-core.rst
@@@ -5206,7 -5205,7 +5206,7 @@@ M:      Hans Verkuil <hverkuil-cisco@xs4all.
  L:    [email protected]
  S:    Supported
  W:    http://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/cec/cec-gpio.yaml
  F:    drivers/media/cec/platform/cec-gpio/
  
@@@ -5413,7 -5412,7 +5413,7 @@@ CHRONTEL CH7322 CEC DRIVE
  M:    Joe Tessler <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/chrontel,ch7322.yaml
  F:    drivers/media/cec/i2c/ch7322.c
  
@@@ -5602,7 -5601,7 +5602,7 @@@ M:      Hans Verkuil <hverkuil-cisco@xs4all.
  L:    [email protected]
  S:    Supported
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/pci/cobalt/
  
  COCCINELLE/Semantic Patches (SmPL)
@@@ -5761,15 -5760,6 +5761,15 @@@ F:    fs/configfs
  F:    include/linux/configfs.h
  F:    samples/configfs/
  
 +CONGATEC BOARD CONTROLLER MFD DRIVER
 +M:    Thomas Richard <[email protected]>
 +S:    Maintained
 +F:    drivers/gpio/gpio-cgbc.c
 +F:    drivers/i2c/busses/i2c-cgbc.c
 +F:    drivers/mfd/cgbc-core.c
 +F:    drivers/watchdog/cgbc_wdt.c
 +F:    include/linux/mfd/cgbc.h
 +
  CONSOLE SUBSYSTEM
  M:    Greg Kroah-Hartman <[email protected]>
  S:    Supported
@@@ -5785,6 -5775,7 +5785,6 @@@ F:      kernel/context_tracking.
  
  CONTROL GROUP (CGROUP)
  M:    Tejun Heo <[email protected]>
 -M:    Zefan Li <[email protected]>
  M:    Johannes Weiner <[email protected]>
  M:    Michal Koutný <[email protected]>
  L:    [email protected]
@@@ -5813,6 -5804,7 +5813,6 @@@ F:      include/linux/blk-cgroup.
  
  CONTROL GROUP - CPUSET
  M:    Waiman Long <[email protected]>
 -M:    Zefan Li <[email protected]>
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git
@@@ -6053,7 -6045,7 +6053,7 @@@ M:      Hans Verkuil <[email protected]
  L:    [email protected]
  S:    Odd Fixes
  W:    http://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/i2c/cs3308.c
  
  CS5535 Audio ALSA driver
@@@ -6084,7 -6076,7 +6084,7 @@@ M:      Andy Walls <[email protected]
  L:    [email protected]
  S:    Maintained
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/pci/cx18/
  F:    include/uapi/linux/ivtv*
  
@@@ -6093,7 -6085,7 +6093,7 @@@ M:      Hans Verkuil <[email protected]
  L:    [email protected]
  S:    Maintained
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/common/cx2341x*
  F:    include/media/drv-intf/cx2341x.h
  
@@@ -6111,7 -6103,7 +6111,7 @@@ M:      Mauro Carvalho Chehab <mchehab@kerne
  L:    [email protected]
  S:    Odd fixes
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/driver-api/media/drivers/cx88*
  F:    drivers/media/pci/cx88/
  
@@@ -6328,6 -6320,7 +6328,6 @@@ DECSTATION PLATFORM SUPPOR
  M:    "Maciej W. Rozycki" <[email protected]>
  L:    [email protected]
  S:    Maintained
 -W:    http://www.linux-mips.org/wiki/DECstation
  F:    arch/mips/dec/
  F:    arch/mips/include/asm/dec/
  F:    arch/mips/include/asm/mach-dec/
@@@ -6346,7 -6339,7 +6346,7 @@@ DEINTERLACE DRIVERS FOR ALLWINNER H
  M:    Jernej Skrabec <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/allwinner,sun8i-h3-deinterlace.yaml
  F:    drivers/media/platform/sunxi/sun8i-di/
  
@@@ -6473,7 -6466,7 +6473,7 @@@ M:      Hugues Fruchet <hugues.fruchet@foss.
  L:    [email protected]
  S:    Supported
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/platform/st/sti/delta
  
  DENALI NAND DRIVER
@@@ -6483,6 -6476,7 +6483,6 @@@ F:      drivers/mtd/nand/raw/denali
  
  DESIGNWARE EDMA CORE IP DRIVER
  M:    Manivannan Sadhasivam <[email protected]>
 -R:    Serge Semin <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/dma/dw-edma/
@@@ -6881,7 -6875,7 +6881,7 @@@ DONGWOON DW9714 LENS VOICE COIL DRIVE
  M:    Sakari Ailus <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/dongwoon,dw9714.yaml
  F:    drivers/media/i2c/dw9714.c
  
@@@ -6889,13 -6883,13 +6889,13 @@@ DONGWOON DW9719 LENS VOICE COIL DRIVE
  M:    Daniel Scally <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/i2c/dw9719.c
  
  DONGWOON DW9768 LENS VOICE COIL DRIVER
  L:    [email protected]
  S:    Orphan
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/dongwoon,dw9768.yaml
  F:    drivers/media/i2c/dw9768.c
  
@@@ -6903,7 -6897,7 +6903,7 @@@ DONGWOON DW9807 LENS VOICE COIL DRIVE
  M:    Sakari Ailus <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/dongwoon,dw9807-vcm.yaml
  F:    drivers/media/i2c/dw9807-vcm.c
  
@@@ -7103,10 -7097,12 +7103,10 @@@ M:   Javier Martinez Canillas <javierm@re
  L:    [email protected]
  S:    Maintained
  T:    git https://gitlab.freedesktop.org/drm/misc/kernel.git
 -F:    drivers/gpu/drm/drm_aperture.c
  F:    drivers/gpu/drm/tiny/ofdrm.c
  F:    drivers/gpu/drm/tiny/simpledrm.c
  F:    drivers/video/aperture.c
  F:    drivers/video/nomodeset.c
 -F:    include/drm/drm_aperture.h
  F:    include/linux/aperture.h
  F:    include/video/nomodeset.h
  
@@@ -7387,18 -7383,6 +7387,18 @@@ S:    Maintaine
  F:    Documentation/devicetree/bindings/display/panel/samsung,s6d7aa0.yaml
  F:    drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c
  
 +DRM DRIVER FOR SAMSUNG S6E3HA8 PANELS
 +M:    Dzmitry Sankouski <[email protected]>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/display/panel/samsung,s6e3ha8.yaml
 +F:    drivers/gpu/drm/panel/panel-samsung-s6e3ha8.c
 +
 +DRM DRIVER FOR SHARP MEMORY LCD
 +M:    Alex Lanzano <[email protected]>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/display/sharp,ls010b7dh04.yaml
 +F:    drivers/gpu/drm/tiny/sharp-memory.c
 +
  DRM DRIVER FOR SITRONIX ST7586 PANELS
  M:    David Lechner <[email protected]>
  S:    Maintained
@@@ -7476,7 -7460,8 +7476,7 @@@ T:      git https://gitlab.freedesktop.org/d
  F:    drivers/gpu/drm/udl/
  
  DRM DRIVER FOR VIRTUAL KERNEL MODESETTING (VKMS)
 -M:    Rodrigo Siqueira <[email protected]>
 -M:    Maíra Canal <[email protected]>
 +M:    Louis Chauvet <[email protected]>
  R:    Haneen Mohammed <[email protected]>
  R:    Simona Vetter <[email protected]>
  R:    Melissa Wen <[email protected]>
@@@ -7808,7 -7793,6 +7808,7 @@@ F:      include/uapi/drm/v3d_drm.
  DRM DRIVERS FOR VC4
  M:    Maxime Ripard <[email protected]>
  M:    Dave Stevenson <[email protected]>
 +R:    Maíra Canal <[email protected]>
  R:    Raspberry Pi Kernel Maintenance <[email protected]>
  S:    Supported
  T:    git https://gitlab.freedesktop.org/drm/misc/kernel.git
@@@ -7843,7 -7827,6 +7843,7 @@@ L:      [email protected]
  S:    Maintained
  T:    git https://gitlab.freedesktop.org/drm/misc/kernel.git
  F:    Documentation/devicetree/bindings/display/xlnx/
 +F:    Documentation/gpu/zynqmp.rst
  F:    drivers/gpu/drm/xlnx/
  
  DRM GPU SCHEDULER
@@@ -7894,10 -7877,10 +7894,10 @@@ F:   Documentation/gpu/automated_testing.
  F:    drivers/gpu/drm/ci/
  
  DSBR100 USB FM RADIO DRIVER
 -M:    Alexey Klimov <[email protected]>
 +M:    Alexey Klimov <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/radio/dsbr100.c
  
  DT3155 MEDIA DRIVER
@@@ -7905,7 -7888,7 +7905,7 @@@ M:      Hans Verkuil <[email protected]
  L:    [email protected]
  S:    Odd Fixes
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/pci/dt3155/
  
  DVB_USB_AF9015 MEDIA DRIVER
@@@ -7950,7 -7933,7 +7950,7 @@@ S:      Maintaine
  W:    https://linuxtv.org
  W:    http://github.com/mkrufky
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/usb/dvb-usb/cxusb*
  
  DVB_USB_EC168 MEDIA DRIVER
@@@ -8098,10 -8081,10 +8098,10 @@@ S:   Maintaine
  F:    drivers/edac/highbank*
  
  EDAC-CAVIUM OCTEON
 -M:    Ralf Baechle <[email protected]>
 +M:    Thomas Bogendoerfer <[email protected]>
  L:    [email protected]
  L:    [email protected]
 -S:    Supported
 +S:    Maintained
  F:    drivers/edac/octeon_edac*
  
  EDAC-CAVIUM THUNDERX
@@@ -8141,8 -8124,7 +8141,8 @@@ S:      Maintaine
  F:    drivers/edac/e7xxx_edac.c
  
  EDAC-FSL_DDR
 -M:    York Sun <[email protected]>
 +R:    Frank Li <[email protected]>
 +L:    [email protected]
  L:    [email protected]
  S:    Maintained
  F:    drivers/edac/fsl_ddr_edac.*
@@@ -8320,7 -8302,7 +8320,7 @@@ M:      Mauro Carvalho Chehab <mchehab@kerne
  L:    [email protected]
  S:    Maintained
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/admin-guide/media/em28xx*
  F:    drivers/media/usb/em28xx/
  
@@@ -8616,7 -8598,7 +8616,7 @@@ EXTRON DA HD 4K PLUS CEC DRIVE
  M:    Hans Verkuil <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/cec/usb/extron-da-hd-4k-plus/
  
  EXYNOS DP DRIVER
@@@ -9036,16 -9018,9 +9036,16 @@@ F:    drivers/dma/fsl-edma*.
  FREESCALE ENETC ETHERNET DRIVERS
  M:    Claudiu Manoil <[email protected]>
  M:    Vladimir Oltean <[email protected]>
 +M:    Wei Fang <[email protected]>
 +M:    Clark Wang <[email protected]>
 +L:    [email protected]
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/devicetree/bindings/net/fsl,enetc*.yaml
 +F:    Documentation/devicetree/bindings/net/nxp,netc-blk-ctrl.yaml
  F:    drivers/net/ethernet/freescale/enetc/
 +F:    include/linux/fsl/enetc_mdio.h
 +F:    include/linux/fsl/netc_global.h
  
  FREESCALE eTSEC ETHERNET DRIVER (GIANFAR)
  M:    Claudiu Manoil <[email protected]>
@@@ -9056,7 -9031,6 +9056,7 @@@ F:      drivers/net/ethernet/freescale/gianf
  
  FREESCALE GPMI NAND DRIVER
  M:    Han Xu <[email protected]>
 +L:    [email protected]
  L:    [email protected]
  S:    Maintained
  F:    drivers/mtd/nand/raw/gpmi-nand/*
@@@ -9446,7 -9420,7 +9446,7 @@@ GALAXYCORE GC2145 SENSOR DRIVE
  M:    Alain Volmat <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/galaxycore,gc2145.yaml
  F:    drivers/media/i2c/gc2145.c
  
@@@ -9494,7 -9468,7 +9494,7 @@@ M:      Hans Verkuil <[email protected]
  L:    [email protected]
  S:    Maintained
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/radio/radio-gemtek*
  
  GENERIC ARCHITECTURE TOPOLOGY
@@@ -9771,7 -9745,6 +9771,7 @@@ F:      include/dt-bindings/gpio
  F:    include/linux/gpio.h
  F:    include/linux/gpio/
  F:    include/linux/of_gpio.h
 +K:    (devm_)?gpio_(request|free|direction|get|set)
  
  GPIO UAPI
  M:    Bartosz Golaszewski <[email protected]>
@@@ -9786,6 -9759,14 +9786,6 @@@ F:     drivers/gpio/gpiolib-cdev.
  F:    include/uapi/linux/gpio.h
  F:    tools/gpio/
  
 -GRE DEMULTIPLEXER DRIVER
 -M:    Dmitry Kozlov <[email protected]>
 -L:    [email protected]
 -S:    Maintained
 -F:    include/net/gre.h
 -F:    net/ipv4/gre_demux.c
 -F:    net/ipv4/gre_offload.c
 -
  GRETH 10/100/1G Ethernet MAC device driver
  M:    Andreas Larsson <[email protected]>
  L:    [email protected]
@@@ -9876,56 -9857,56 +9876,56 @@@ GS1662 VIDEO SERIALIZE
  M:    Charles-Antoine Couret <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/spi/gs1662.c
  
  GSPCA FINEPIX SUBDRIVER
  M:    Frank Zago <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/usb/gspca/finepix.c
  
  GSPCA GL860 SUBDRIVER
  M:    Olivier Lorin <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/usb/gspca/gl860/
  
  GSPCA M5602 SUBDRIVER
  M:    Erik Andren <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/usb/gspca/m5602/
  
  GSPCA PAC207 SONIXB SUBDRIVER
  M:    Hans Verkuil <[email protected]>
  L:    [email protected]
  S:    Odd Fixes
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/usb/gspca/pac207.c
  
  GSPCA SN9C20X SUBDRIVER
  M:    Brian Johnson <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/usb/gspca/sn9c20x.c
  
  GSPCA T613 SUBDRIVER
  M:    Leandro Costantino <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/usb/gspca/t613.c
  
  GSPCA USB WEBCAM DRIVER
  M:    Hans Verkuil <[email protected]>
  L:    [email protected]
  S:    Odd Fixes
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/usb/gspca/
  
  GTP (GPRS Tunneling Protocol)
@@@ -10042,7 -10023,7 +10042,7 @@@ M:   Hans Verkuil <[email protected]
  L:    [email protected]
  S:    Odd Fixes
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/usb/hdpvr/
  
  HEWLETT PACKARD ENTERPRISE ILO CHIF DRIVER
@@@ -10184,12 -10165,10 +10184,12 @@@ S:        Maintaine
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git timers/core
  F:    Documentation/timers/
  F:    include/linux/clockchips.h
 +F:    include/linux/delay.h
  F:    include/linux/hrtimer.h
  F:    include/linux/timer.h
  F:    kernel/time/clockevents.c
  F:    kernel/time/hrtimer.c
 +F:    kernel/time/sleep_timeout.c
  F:    kernel/time/timer.c
  F:    kernel/time/timer_list.c
  F:    kernel/time/timer_migration.*
@@@ -10291,7 -10270,7 +10291,7 @@@ F:   Documentation/devicetree/bindings/ar
  F:    drivers/bus/hisi_lpc.c
  
  HISILICON NETWORK SUBSYSTEM 3 DRIVER (HNS3)
 -M:    Yisen Zhuang <yisen.zhuang@huawei.com>
 +M:    Jian Shen <shenjian15@huawei.com>
  M:    Salil Mehta <[email protected]>
  M:    Jijie Shao <[email protected]>
  L:    [email protected]
@@@ -10299,14 -10278,8 +10299,14 @@@ S: Maintaine
  W:    http://www.hisilicon.com
  F:    drivers/net/ethernet/hisilicon/hns3/
  
 +HISILICON NETWORK HIBMCGE DRIVER
 +M:    Jijie Shao <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/net/ethernet/hisilicon/hibmcge/
 +
  HISILICON NETWORK SUBSYSTEM DRIVER
 -M:    Yisen Zhuang <yisen.zhuang@huawei.com>
 +M:    Jian Shen <shenjian15@huawei.com>
  M:    Salil Mehta <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -10547,7 -10520,6 +10547,7 @@@ F:   Documentation/mm/hugetlbfs_reserv.rs
  F:    Documentation/mm/vmemmap_dedup.rst
  F:    fs/hugetlbfs/
  F:    include/linux/hugetlb.h
 +F:    include/trace/events/hugetlbfs.h
  F:    mm/hugetlb.c
  F:    mm/hugetlb_vmemmap.c
  F:    mm/hugetlb_vmemmap.h
@@@ -10558,7 -10530,7 +10558,7 @@@ M:   Jean-Christophe Trotin <jean-christo
  L:    [email protected]
  S:    Supported
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/platform/st/sti/hva
  
  HWPOISON MEMORY FAILURE HANDLING
@@@ -10586,7 -10558,7 +10586,7 @@@ HYNIX HI556 SENSOR DRIVE
  M:    Sakari Ailus <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/i2c/hi556.c
  
  HYNIX HI846 SENSOR DRIVER
@@@ -10771,12 -10743,14 +10771,12 @@@ F:        Documentation/i2c/busses/i2c-viapro.
  F:    drivers/i2c/busses/i2c-ali1535.c
  F:    drivers/i2c/busses/i2c-ali1563.c
  F:    drivers/i2c/busses/i2c-ali15x3.c
 -F:    drivers/i2c/busses/i2c-amd756-s4882.c
  F:    drivers/i2c/busses/i2c-amd756.c
  F:    drivers/i2c/busses/i2c-amd8111.c
  F:    drivers/i2c/busses/i2c-i801.c
  F:    drivers/i2c/busses/i2c-isch.c
 -F:    drivers/i2c/busses/i2c-nforce2-s4985.c
  F:    drivers/i2c/busses/i2c-nforce2.c
 -F:    drivers/i2c/busses/i2c-piix4.c
 +F:    drivers/i2c/busses/i2c-piix4.*
  F:    drivers/i2c/busses/i2c-sis5595.c
  F:    drivers/i2c/busses/i2c-sis630.c
  F:    drivers/i2c/busses/i2c-sis96x.c
@@@ -11309,10 -11283,10 +11309,10 @@@ F:        security/integrity
  F:    security/integrity/ima/
  
  INTEGRITY POLICY ENFORCEMENT (IPE)
 -M:    Fan Wu <wufan@linux.microsoft.com>
 +M:    Fan Wu <wufan@kernel.org>
  L:    [email protected]
  S:    Supported
 -T:    git https://github.com/microsoft/ipe.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/wufan/ipe.git
  F:    Documentation/admin-guide/LSM/ipe.rst
  F:    Documentation/security/ipe.rst
  F:    scripts/ipe/
@@@ -11500,7 -11474,7 +11500,7 @@@ Q:   https://patchwork.kernel.org/project
  F:    drivers/dma/ioat*
  
  INTEL IAA CRYPTO DRIVER
 -M:    Tom Zanussi <tom.zanussi@linux.intel.com>
 +M:    Kristen Accardi <kristen.c.accardi@intel.com>
  L:    [email protected]
  S:    Supported
  F:    Documentation/driver-api/crypto/iaa/iaa-crypto.rst
@@@ -11555,7 -11529,7 +11555,7 @@@ M:   Dan Scally <[email protected]
  R:    Tianshu Qiu <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/userspace-api/media/v4l/pixfmt-srggb10-ipu3.rst
  F:    drivers/media/pci/intel/ipu3/
  
@@@ -11576,12 -11550,12 +11576,12 @@@ M:        Bingbu Cao <[email protected]
  R:    Tianshu Qiu <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/admin-guide/media/ipu6-isys.rst
  F:    drivers/media/pci/intel/ipu6/
  
  INTEL ISHTP ECLITE DRIVER
 -M:    Sumesh K Naduvalath <sumesh.k.naduvalath@intel.com>
 +M:    Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
  L:    [email protected]
  S:    Supported
  F:    drivers/platform/x86/intel/ishtp_eclite.c
@@@ -11630,16 -11604,6 +11630,16 @@@ F: drivers/crypto/intel/keembay/keembay
  F:    drivers/crypto/intel/keembay/ocs-hcu.c
  F:    drivers/crypto/intel/keembay/ocs-hcu.h
  
 +INTEL LA JOLLA COVE ADAPTER (LJCA) USB I/O EXPANDER DRIVERS
 +M:    Wentong Wu <[email protected]>
 +M:    Sakari Ailus <[email protected]>
 +S:    Maintained
 +F:    drivers/gpio/gpio-ljca.c
 +F:    drivers/i2c/busses/i2c-ljca.c
 +F:    drivers/spi/spi-ljca.c
 +F:    drivers/usb/misc/usb-ljca.c
 +F:    include/linux/usb/ljca.h
 +
  INTEL MANAGEMENT ENGINE (mei)
  M:    Tomas Winkler <[email protected]>
  L:    [email protected]
@@@ -11814,7 -11778,7 +11814,7 @@@ M:   Srinivas Pandruvada <srinivas.pandru
  L:    [email protected]
  S:    Maintained
  F:    Documentation/ABI/testing/debugfs-tpmi
 -F:    drivers/platform/x86/intel/tpmi.c
 +F:    drivers/platform/x86/intel/vsec_tpmi.c
  F:    include/linux/intel_tpmi.h
  
  INTEL UNCORE FREQUENCY CONTROL
@@@ -11938,7 -11902,7 +11938,7 @@@ F:   Documentation/devicetree/bindings/ii
  F:    drivers/iio/gyro/mpu3050*
  
  IOC3 ETHERNET DRIVER
 -M:    Ralf Baechle <[email protected]>
 +M:    Thomas Bogendoerfer <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/net/ethernet/sgi/ioc3-eth.c
@@@ -12089,7 -12053,7 +12089,7 @@@ M:   Hans Verkuil <[email protected]
  L:    [email protected]
  S:    Maintained
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/radio/radio-isa*
  
  ISAPNP
@@@ -12157,14 -12121,6 +12157,14 @@@ F: drivers/isdn/Makefil
  F:    drivers/isdn/hardware/
  F:    drivers/isdn/mISDN/
  
 +ISL28022 HARDWARE MONITORING DRIVER
 +M:    Carsten Spieß <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/hwmon/renesas,isl28022.yaml
 +F:    Documentation/hwmon/isl28022.rst
 +F:    drivers/hwmon/isl28022.c
 +
  ISOFS FILESYSTEM
  M:    Jan Kara <[email protected]>
  L:    [email protected]
@@@ -12186,14 -12142,6 +12186,14 @@@ W: https://linuxtv.or
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
  F:    drivers/media/tuners/it913x*
  
 +ITE IT6263 LVDS TO HDMI BRIDGE DRIVER
 +M:    Liu Ying <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git https://gitlab.freedesktop.org/drm/misc/kernel.git
 +F:    Documentation/devicetree/bindings/display/bridge/ite,it6263.yaml
 +F:    drivers/gpu/drm/bridge/ite-it6263.c
 +
  ITE IT66121 HDMI BRIDGE DRIVER
  M:    Phong LE <[email protected]>
  M:    Neil Armstrong <[email protected]>
@@@ -12207,7 -12155,7 +12207,7 @@@ M:   Andy Walls <[email protected]
  L:    [email protected]
  S:    Maintained
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/admin-guide/media/ivtv*
  F:    drivers/media/pci/ivtv/
  F:    include/uapi/linux/ivtv*
@@@ -12294,7 -12242,6 +12294,7 @@@ R:   Dmitry Vyukov <[email protected]
  R:    Vincenzo Frascino <[email protected]>
  L:    [email protected]
  S:    Maintained
 +B:    https://bugzilla.kernel.org/buglist.cgi?component=Sanitizers&product=Memory%20Management
  F:    Documentation/dev-tools/kasan.rst
  F:    arch/*/include/asm/*kasan.h
  F:    arch/*/mm/kasan_init*
@@@ -12318,7 -12265,6 +12318,7 @@@ R:   Dmitry Vyukov <[email protected]
  R:    Andrey Konovalov <[email protected]>
  L:    [email protected]
  S:    Maintained
 +B:    https://bugzilla.kernel.org/buglist.cgi?component=Sanitizers&product=Memory%20Management
  F:    Documentation/dev-tools/kcov.rst
  F:    include/linux/kcov.h
  F:    include/uapi/linux/kcov.h
@@@ -12355,7 -12301,7 +12355,7 @@@ M:   Hans Verkuil <[email protected]
  L:    [email protected]
  S:    Maintained
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/radio/radio-keene*
  
  KERNEL AUTOMOUNTER
@@@ -12403,7 -12349,7 +12403,7 @@@ F:   mm/usercopy.
  F:    security/Kconfig.hardening
  K:    \b(add|choose)_random_kstack_offset\b
  K:    \b__check_(object_size|heap_object)\b
 -K:    \b__counted_by\b
 +K:    \b__counted_by(_le|_be)?\b
  
  KERNEL JANITORS
  L:    [email protected]
@@@ -12436,7 -12382,6 +12436,7 @@@ F:   include/trace/misc/sunrpc.
  F:    include/uapi/linux/nfsd/
  F:    include/uapi/linux/sunrpc/
  F:    net/sunrpc/
 +F:    tools/net/sunrpc/
  
  KERNEL PACMAN PACKAGING (in addition to generic KERNEL BUILD)
  M:    Thomas Weißschuh <[email protected]>
@@@ -12475,7 -12420,7 +12475,7 @@@ F:   fs/smb/common
  F:    fs/smb/server/
  
  KERNEL UNIT TESTING FRAMEWORK (KUnit)
 -M:    Brendan Higgins <brendan[email protected]>
 +M:    Brendan Higgins <brendan[email protected]>
  M:    David Gow <[email protected]>
  R:    Rae Moar <[email protected]>
  L:    [email protected]
@@@ -12731,7 -12676,7 +12731,7 @@@ F:   samples/kfifo
  
  KGDB / KDB /debug_core
  M:    Jason Wessel <[email protected]>
 -M:    Daniel Thompson <daniel.thompson@linaro.org>
 +M:    Daniel Thompson <danielt@kernel.org>
  R:    Douglas Anderson <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -12999,29 -12944,49 +12999,29 @@@ LIBATA PATA ARASAN COMPACT FLASH CONTRO
  M:    Viresh Kumar <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git
  F:    drivers/ata/pata_arasan_cf.c
  F:    include/linux/pata_arasan_cf_data.h
  
 -LIBATA PATA DRIVERS
 -R:    Sergey Shtylyov <[email protected]>
 -L:    [email protected]
 -F:    drivers/ata/ata_*.c
 -F:    drivers/ata/pata_*.c
 -
  LIBATA PATA FARADAY FTIDE010 AND GEMINI SATA BRIDGE DRIVERS
  M:    Linus Walleij <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git
  F:    drivers/ata/pata_ftide010.c
  F:    drivers/ata/sata_gemini.c
  F:    drivers/ata/sata_gemini.h
  
  LIBATA SATA AHCI PLATFORM devices support
  M:    Hans de Goede <[email protected]>
 -M:    Jens Axboe <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git
  F:    drivers/ata/ahci_platform.c
  F:    drivers/ata/libahci_platform.c
  F:    include/linux/ahci_platform.h
  
 -LIBATA SATA AHCI SYNOPSYS DWC CONTROLLER DRIVER
 -M:    Serge Semin <[email protected]>
 -L:    [email protected]
 -S:    Maintained
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/libata.git
 -F:    Documentation/devicetree/bindings/ata/baikal,bt1-ahci.yaml
 -F:    Documentation/devicetree/bindings/ata/snps,dwc-ahci.yaml
 -F:    drivers/ata/ahci_dwc.c
 -
  LIBATA SATA PROMISE TX2/TX4 CONTROLLER DRIVER
  M:    Mikael Pettersson <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git
  F:    drivers/ata/sata_promise.*
  
  LIBATA SUBSYSTEM (Serial and Parallel ATA drivers)
@@@ -13141,7 -13106,7 +13141,7 @@@ M:   Michael Ellerman <[email protected]
  R:    Nicholas Piggin <[email protected]>
  R:    Christophe Leroy <[email protected]>
  R:    Naveen N Rao <[email protected]>
 -R:    Madhavan Srinivasan <[email protected]>
 +M:    Madhavan Srinivasan <[email protected]>
  L:    [email protected]
  S:    Supported
  W:    https://github.com/linuxppc/wiki/wiki
@@@ -13640,10 -13605,10 +13640,10 @@@ Q:        http://patchwork.linuxtv.org/project
  F:    drivers/media/dvb-frontends/m88rs2000*
  
  MA901 MASTERKIT USB FM RADIO DRIVER
 -M:    Alexey Klimov <[email protected]>
 +M:    Alexey Klimov <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/radio/radio-ma901.c
  
  MAC80211
@@@ -13886,12 -13851,6 +13886,12 @@@ S: Supporte
  F:    Documentation/networking/device_drivers/ethernet/marvell/octeontx2.rst
  F:    drivers/net/ethernet/marvell/octeontx2/af/
  
 +MARVELL PEM PMU DRIVER
 +M:    Linu Cherian <[email protected]>
 +M:    Gowthami Thiagarajan <[email protected]>
 +S:    Supported
 +F:    drivers/perf/marvell_pem_pmu.c
 +
  MARVELL PRESTERA ETHERNET SWITCH DRIVER
  M:    Taras Chornyi <[email protected]>
  S:    Supported
@@@ -13944,7 -13903,7 +13944,7 @@@ MAX2175 SDR TUNER DRIVE
  M:    Ramesh Shanmugasundaram <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/max2175.txt
  F:    Documentation/userspace-api/media/drivers/max2175.rst
  F:    drivers/media/i2c/max2175*
@@@ -14124,7 -14083,7 +14124,7 @@@ M:   Hans Verkuil <[email protected]
  L:    [email protected]
  S:    Maintained
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/radio/radio-maxiradio*
  
  MAXLINEAR ETHERNET PHY DRIVER
@@@ -14207,7 -14166,7 +14207,7 @@@ M:   Laurent Pinchart <laurent.pinchart@i
  L:    [email protected]
  S:    Supported
  W:    https://www.linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/mc/
  F:    include/media/media-*.h
  F:    include/uapi/linux/media.h
@@@ -14216,16 -14175,17 +14216,16 @@@ MEDIA DRIVER FOR FREESCALE IMX PX
  M:    Philipp Zabel <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/platform/nxp/imx-pxp.[ch]
  
  MEDIA DRIVERS FOR ASCOT2E
 -M:    Sergey Kozlov <[email protected]>
 -M:    Abylay Ospan <[email protected]>
 +M:    Abylay Ospan <[email protected]>
  L:    [email protected]
  S:    Supported
  W:    https://linuxtv.org
  W:    http://netup.tv/
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/dvb-frontends/ascot2e*
  
  MEDIA DRIVERS FOR CXD2099AR CI CONTROLLERS
@@@ -14233,16 -14193,17 +14233,16 @@@ M:        Jasmin Jessich <[email protected]
  L:    [email protected]
  S:    Maintained
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/dvb-frontends/cxd2099*
  
  MEDIA DRIVERS FOR CXD2841ER
 -M:    Sergey Kozlov <[email protected]>
 -M:    Abylay Ospan <[email protected]>
 +M:    Abylay Ospan <[email protected]>
  L:    [email protected]
  S:    Supported
  W:    https://linuxtv.org
  W:    http://netup.tv/
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/dvb-frontends/cxd2841er*
  
  MEDIA DRIVERS FOR CXD2880
@@@ -14250,7 -14211,7 +14250,7 @@@ M:   Yasunari Takiguchi <Yasunari.Takiguc
  L:    [email protected]
  S:    Supported
  W:    http://linuxtv.org/
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/dvb-frontends/cxd2880/*
  F:    drivers/media/spi/cxd2880*
  
@@@ -14258,7 -14219,7 +14258,7 @@@ MEDIA DRIVERS FOR DIGITAL DEVICES PCIE 
  L:    [email protected]
  S:    Orphan
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/pci/ddbridge/*
  
  MEDIA DRIVERS FOR FREESCALE IMX
@@@ -14266,7 -14227,7 +14266,7 @@@ M:   Steve Longerbeam <slongerbeam@gmail.
  M:    Philipp Zabel <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/admin-guide/media/imx.rst
  F:    Documentation/devicetree/bindings/media/imx.txt
  F:    drivers/staging/media/imx/
@@@ -14280,7 -14241,7 +14280,7 @@@ M:   Martin Kepplinger <martin.kepplinger
  R:    Purism Kernel Team <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  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
@@@ -14290,46 -14251,49 +14290,46 @@@ F:        drivers/media/platform/nxp/imx7-medi
  F:    drivers/media/platform/nxp/imx8mq-mipi-csi2.c
  
  MEDIA DRIVERS FOR HELENE
 -M:    Abylay Ospan <aospan@netup.ru>
 +M:    Abylay Ospan <aospan@amazon.com>
  L:    [email protected]
  S:    Supported
  W:    https://linuxtv.org
  W:    http://netup.tv/
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/dvb-frontends/helene*
  
  MEDIA DRIVERS FOR HORUS3A
 -M:    Sergey Kozlov <[email protected]>
 -M:    Abylay Ospan <[email protected]>
 +M:    Abylay Ospan <[email protected]>
  L:    [email protected]
  S:    Supported
  W:    https://linuxtv.org
  W:    http://netup.tv/
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/dvb-frontends/horus3a*
  
  MEDIA DRIVERS FOR LNBH25
 -M:    Sergey Kozlov <[email protected]>
 -M:    Abylay Ospan <[email protected]>
 +M:    Abylay Ospan <[email protected]>
  L:    [email protected]
  S:    Supported
  W:    https://linuxtv.org
  W:    http://netup.tv/
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/dvb-frontends/lnbh25*
  
  MEDIA DRIVERS FOR MXL5XX TUNER DEMODULATORS
  L:    [email protected]
  S:    Orphan
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/dvb-frontends/mxl5xx*
  
  MEDIA DRIVERS FOR NETUP PCI UNIVERSAL DVB devices
 -M:    Sergey Kozlov <[email protected]>
 -M:    Abylay Ospan <[email protected]>
 +M:    Abylay Ospan <[email protected]>
  L:    [email protected]
  S:    Supported
  W:    https://linuxtv.org
  W:    http://netup.tv/
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/pci/netup_unidvb/*
  
  MEDIA DRIVERS FOR NVIDIA TEGRA - VDE
@@@ -14337,7 -14301,7 +14337,7 @@@ M:   Dmitry Osipenko <[email protected]
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/nvidia,tegra-vde.yaml
  F:    drivers/media/platform/nvidia/tegra-vde/
  
@@@ -14346,7 -14310,7 +14346,7 @@@ M:   Jacopo Mondi <[email protected]
  L:    [email protected]
  L:    [email protected]
  S:    Supported
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/renesas,ceu.yaml
  F:    drivers/media/platform/renesas/renesas-ceu.c
  F:    include/media/drv-intf/renesas-ceu.h
@@@ -14356,7 -14320,7 +14356,7 @@@ M:   Fabrizio Castro <fabrizio.castro.jz@
  L:    [email protected]
  L:    [email protected]
  S:    Supported
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/renesas,drif.yaml
  F:    drivers/media/platform/renesas/rcar_drif.c
  
@@@ -14365,7 -14329,7 +14365,7 @@@ M:   Laurent Pinchart <laurent.pinchart@i
  L:    [email protected]
  L:    [email protected]
  S:    Supported
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/renesas,fcp.yaml
  F:    drivers/media/platform/renesas/rcar-fcp.c
  F:    include/media/rcar-fcp.h
@@@ -14375,7 -14339,7 +14375,7 @@@ M:   Kieran Bingham <kieran.bingham+renes
  L:    [email protected]
  L:    [email protected]
  S:    Supported
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/renesas,fdp1.yaml
  F:    drivers/media/platform/renesas/rcar_fdp1.c
  
@@@ -14384,7 -14348,7 +14384,7 @@@ M:   Niklas Söderlund <niklas.soderlund@
  L:    [email protected]
  L:    [email protected]
  S:    Supported
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/renesas,csi2.yaml
  F:    Documentation/devicetree/bindings/media/renesas,isp.yaml
  F:    Documentation/devicetree/bindings/media/renesas,vin.yaml
@@@ -14398,7 -14362,7 +14398,7 @@@ M:   Kieran Bingham <kieran.bingham+renes
  L:    [email protected]
  L:    [email protected]
  S:    Supported
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/renesas,vsp1.yaml
  F:    drivers/media/platform/renesas/vsp1/
  
@@@ -14406,14 -14370,14 +14406,14 @@@ MEDIA DRIVERS FOR ST STV0910 DEMODULATO
  L:    [email protected]
  S:    Orphan
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/dvb-frontends/stv0910*
  
  MEDIA DRIVERS FOR ST STV6111 TUNER ICs
  L:    [email protected]
  S:    Orphan
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/dvb-frontends/stv6111*
  
  MEDIA DRIVERS FOR STM32 - DCMI / DCMIPP
@@@ -14421,7 -14385,7 +14421,7 @@@ M:   Hugues Fruchet <hugues.fruchet@foss.
  M:    Alain Volmat <[email protected]>
  L:    [email protected]
  S:    Supported
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/st,stm32-dcmi.yaml
  F:    Documentation/devicetree/bindings/media/st,stm32-dcmipp.yaml
  F:    drivers/media/platform/st/stm32/stm32-dcmi.c
  S:    Maintained
  W:    https://linuxtv.org
  Q:    http://patchwork.kernel.org/project/linux-media/list/
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/admin-guide/media/
  F:    Documentation/devicetree/bindings/media/
  F:    Documentation/driver-api/media/
@@@ -14460,12 -14424,10 +14460,12 @@@ F:        Documentation/devicetree/bindings/ne
  F:    drivers/bluetooth/btmtkuart.c
  
  MEDIATEK BOARD LEVEL SHUTDOWN DRIVERS
 +M:    Sen Chu <[email protected]>
  M:    Sean Wang <[email protected]>
 +M:    Macpaul Lin <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/devicetree/bindings/power/reset/mt6323-poweroff.txt
 +F:    Documentation/devicetree/bindings/mfd/mediatek,mt6397.yaml
  F:    drivers/power/reset/mt6323-poweroff.c
  
  MEDIATEK CIR DRIVER
@@@ -14505,10 -14467,8 +14505,10 @@@ M: Qingfang Deng <[email protected]
  M:    SkyLake Huang <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    drivers/net/phy/mediatek-ge-soc.c
 -F:    drivers/net/phy/mediatek-ge.c
 +F:    drivers/net/phy/mediatek/mtk-ge-soc.c
 +F:    drivers/net/phy/mediatek/mtk-phy-lib.c
 +F:    drivers/net/phy/mediatek/mtk-ge.c
 +F:    drivers/net/phy/mediatek/mtk.h
  F:    drivers/phy/mediatek/phy-mtk-xfi-tphy.c
  
  MEDIATEK I2C CONTROLLER DRIVER
@@@ -14572,32 -14532,6 +14572,32 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/mmc/mtk-sd.yaml
  F:    drivers/mmc/host/mtk-sd.c
  
 +MEDIATEK MT6735 CLOCK & RESET DRIVERS
 +M:    Yassine Oudjana <[email protected]>
 +L:    [email protected]
 +L:    [email protected] (moderated for non-subscribers)
 +S:    Maintained
 +F:    drivers/clk/mediatek/clk-mt6735-apmixedsys.c
 +F:    drivers/clk/mediatek/clk-mt6735-imgsys.c
 +F:    drivers/clk/mediatek/clk-mt6735-infracfg.c
 +F:    drivers/clk/mediatek/clk-mt6735-mfgcfg.c
 +F:    drivers/clk/mediatek/clk-mt6735-pericfg.c
 +F:    drivers/clk/mediatek/clk-mt6735-topckgen.c
 +F:    drivers/clk/mediatek/clk-mt6735-vdecsys.c
 +F:    drivers/clk/mediatek/clk-mt6735-vencsys.c
 +F:    include/dt-bindings/clock/mediatek,mt6735-apmixedsys.h
 +F:    include/dt-bindings/clock/mediatek,mt6735-imgsys.h
 +F:    include/dt-bindings/clock/mediatek,mt6735-infracfg.h
 +F:    include/dt-bindings/clock/mediatek,mt6735-mfgcfg.h
 +F:    include/dt-bindings/clock/mediatek,mt6735-pericfg.h
 +F:    include/dt-bindings/clock/mediatek,mt6735-topckgen.h
 +F:    include/dt-bindings/clock/mediatek,mt6735-vdecsys.h
 +F:    include/dt-bindings/clock/mediatek,mt6735-vencsys.h
 +F:    include/dt-bindings/reset/mediatek,mt6735-infracfg.h
 +F:    include/dt-bindings/reset/mediatek,mt6735-mfgcfg.h
 +F:    include/dt-bindings/reset/mediatek,mt6735-pericfg.h
 +F:    include/dt-bindings/reset/mediatek,mt6735-vdecsys.h
 +
  MEDIATEK MT76 WIRELESS LAN DRIVER
  M:    Felix Fietkau <[email protected]>
  M:    Lorenzo Bianconi <[email protected]>
@@@ -14654,11 -14588,9 +14654,11 @@@ F: Documentation/devicetree/bindings/mt
  F:    drivers/mtd/nand/raw/mtk_*
  
  MEDIATEK PMIC LED DRIVER
 +M:    Sen Chu <[email protected]>
  M:    Sean Wang <[email protected]>
 +M:    Macpaul Lin <[email protected]>
  S:    Maintained
 -F:    Documentation/devicetree/bindings/leds/leds-mt6323.txt
 +F:    Documentation/devicetree/bindings/mfd/mediatek,mt6397.yaml
  F:    drivers/leds/leds-mt6323.c
  
  MEDIATEK RANDOM NUMBER GENERATOR SUPPORT
@@@ -14958,8 -14890,6 +14958,8 @@@ S:   Maintaine
  W:    http://www.linux-mm.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
  T:    quilt git://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new
 +F:    Documentation/admin-guide/mm/
 +F:    Documentation/mm/
  F:    include/linux/gfp.h
  F:    include/linux/gfp_types.h
  F:    include/linux/memfd.h
@@@ -14983,10 -14913,9 +14983,10 @@@ N: include/linux/page[-_]
  
  MEMORY MAPPING
  M:    Andrew Morton <[email protected]>
 -R:    Liam R. Howlett <[email protected]>
 +M:    Liam R. Howlett <[email protected]>
 +M:    Lorenzo Stoakes <[email protected]>
  R:    Vlastimil Babka <[email protected]>
 -R:    Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
 +R:    Jann Horn <jannh@google.com>
  L:    [email protected]
  S:    Maintained
  W:    http://www.linux-mm.org
@@@ -15009,6 -14938,13 +15009,6 @@@ F:  drivers/mtd
  F:    include/linux/mtd/
  F:    include/uapi/mtd/
  
 -MEMSENSING MICROSYSTEMS MSA311 DRIVER
 -M:    Dmitry Rokosov <[email protected]>
 -L:    [email protected]
 -S:    Maintained
 -F:    Documentation/devicetree/bindings/iio/accel/memsensing,msa311.yaml
 -F:    drivers/iio/accel/msa311.c
 -
  MEN A21 WATCHDOG DRIVER
  M:    Johannes Thumshirn <[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Supported
  W:    http://linux-meson.com/
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/cec/amlogic,meson-gx-ao-cec.yaml
  F:    drivers/media/cec/platform/meson/ao-cec-g12a.c
  F:    drivers/media/cec/platform/meson/ao-cec.c
@@@ -15053,7 -14989,7 +15053,7 @@@ M:   Neil Armstrong <neil.armstrong@linar
  L:    [email protected]
  L:    [email protected]
  S:    Supported
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/amlogic,axg-ge2d.yaml
  F:    drivers/media/platform/amlogic/meson-ge2d/
  
@@@ -15069,7 -15005,7 +15069,7 @@@ M:   Neil Armstrong <neil.armstrong@linar
  L:    [email protected]
  L:    [email protected]
  S:    Supported
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/amlogic,gx-vdec.yaml
  F:    drivers/staging/media/meson/vdec/
  
@@@ -15153,7 -15089,6 +15153,7 @@@ F:   drivers/spi/spi-at91-usart.
  
  MICROCHIP AUDIO ASOC DRIVERS
  M:    Claudiu Beznea <[email protected]>
 +M:    Andrei Simion <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    Documentation/devicetree/bindings/sound/atmel*
@@@ -15253,19 -15188,6 +15253,19 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/interrupt-controller/microchip,lan966x-oic.yaml
  F:    drivers/irqchip/irq-lan966x-oic.c
  
 +MICROCHIP LAN966X PCI DRIVER
 +M:    Herve Codina <[email protected]>
 +S:    Maintained
 +F:    drivers/misc/lan966x_pci.c
 +F:    drivers/misc/lan966x_pci.dtso
 +
 +MICROCHIP LAN969X ETHERNET DRIVER
 +M:    Daniel Machon <[email protected]>
 +M:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/net/ethernet/microchip/lan969x/*
 +
  MICROCHIP LCDFB DRIVER
  M:    Nicolas Ferre <[email protected]>
  L:    [email protected]
@@@ -15275,7 -15197,6 +15275,7 @@@ F:   include/video/atmel_lcdc.
  
  MICROCHIP MCP16502 PMIC DRIVER
  M:    Claudiu Beznea <[email protected]>
 +M:    Andrei Simion <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Supported
  F:    Documentation/devicetree/bindings/regulator/microchip,mcp16502.yaml
@@@ -15357,6 -15278,7 +15357,6 @@@ F:   drivers/tty/serial/8250/8250_pci1xxx
  
  MICROCHIP POLARFIRE FPGA DRIVERS
  M:    Conor Dooley <[email protected]>
 -R:    Vladimir Georgiev <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    Documentation/devicetree/bindings/fpga/microchip,mpf-spi-fpga-mgr.yaml
@@@ -15406,7 -15328,6 +15406,7 @@@ F:   drivers/spi/spi-atmel.
  
  MICROCHIP SSC DRIVER
  M:    Claudiu Beznea <[email protected]>
 +M:    Andrei Simion <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Supported
  F:    Documentation/devicetree/bindings/misc/atmel-ssc.txt
@@@ -15586,15 -15507,6 +15586,15 @@@ F: arch/arm/boot/dts/marvell/armada-xp-
  F:    arch/arm/boot/dts/marvell/armada-xp-crs328-4c-20s-4s-bit.dts
  F:    arch/arm/boot/dts/marvell/armada-xp-crs328-4c-20s-4s.dts
  
 +MIN HEAP
 +M:    Kuan-Wei Chiu <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/core-api/min_heap.rst
 +F:    include/linux/min_heap.h
 +F:    lib/min_heap.c
 +F:    lib/test_min_heap.c
 +
  MIPI CCS, SMIA AND SMIA++ IMAGE SENSOR DRIVER
  M:    Sakari Ailus <[email protected]>
  L:    [email protected]
  M:    Thomas Bogendoerfer <[email protected]>
  L:    [email protected]
  S:    Maintained
 -W:    http://www.linux-mips.org/
  Q:    https://patchwork.kernel.org/project/linux-mips/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux.git
  F:    Documentation/devicetree/bindings/mips/
@@@ -15620,6 -15533,17 +15620,6 @@@ F:  arch/mips
  F:    drivers/platform/mips/
  F:    include/dt-bindings/mips/
  
 -MIPS BAIKAL-T1 PLATFORM
 -M:    Serge Semin <[email protected]>
 -L:    [email protected]
 -S:    Supported
 -F:    Documentation/devicetree/bindings/bus/baikal,bt1-*.yaml
 -F:    Documentation/devicetree/bindings/clock/baikal,bt1-*.yaml
 -F:    drivers/bus/bt1-*.c
 -F:    drivers/clk/baikal-t1/
 -F:    drivers/memory/bt1-l2-ctl.c
 -F:    drivers/mtd/maps/physmap-bt1-rom.[ch]
 -
  MIPS BOSTON DEVELOPMENT BOARD
  M:    Paul Burton <[email protected]>
  L:    [email protected]
@@@ -15632,6 -15556,7 +15632,6 @@@ F:   include/dt-bindings/clock/boston-clo
  
  MIPS CORE DRIVERS
  M:    Thomas Bogendoerfer <[email protected]>
 -M:    Serge Semin <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    drivers/bus/mips_cdmm.c
@@@ -15688,7 -15613,7 +15688,7 @@@ M:   Hans Verkuil <[email protected]
  L:    [email protected]
  S:    Odd Fixes
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/radio/radio-miropcm20*
  
  MITSUMI MM8013 FG DRIVER
@@@ -15837,10 -15762,10 +15837,10 @@@ F:        Documentation/hwmon/mp9941.rs
  F:    drivers/hwmon/pmbus/mp9941.c
  
  MR800 AVERMEDIA USB FM RADIO DRIVER
 -M:    Alexey Klimov <[email protected]>
 +M:    Alexey Klimov <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/radio/radio-mr800.c
  
  MRF24J40 IEEE 802.15.4 RADIO DRIVER
@@@ -15907,7 -15832,7 +15907,7 @@@ MT9M114 ONSEMI SENSOR DRIVE
  M:    Laurent Pinchart <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/onnn,mt9m114.yaml
  F:    drivers/media/i2c/mt9m114.c
  
@@@ -15915,15 -15840,16 +15915,15 @@@ MT9P031 APTINA CAMERA SENSO
  M:    Laurent Pinchart <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/aptina,mt9p031.yaml
  F:    drivers/media/i2c/mt9p031.c
 -F:    include/media/i2c/mt9p031.h
  
  MT9T112 APTINA CAMERA SENSOR
  M:    Jacopo Mondi <[email protected]>
  L:    [email protected]
  S:    Odd Fixes
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/i2c/mt9t112.c
  F:    include/media/i2c/mt9t112.h
  
@@@ -15931,7 -15857,7 +15931,7 @@@ MT9V032 APTINA CAMERA SENSO
  M:    Laurent Pinchart <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/mt9v032.txt
  F:    drivers/media/i2c/mt9v032.c
  F:    include/media/i2c/mt9v032.h
@@@ -15940,7 -15866,7 +15940,7 @@@ MT9V111 APTINA CAMERA SENSO
  M:    Jacopo Mondi <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/aptina,mt9v111.yaml
  F:    drivers/media/i2c/mt9v111.c
  
@@@ -16072,14 -15998,6 +16072,14 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/hwmon/nuvoton,nct6775.yaml
  F:    drivers/hwmon/nct6775-i2c.c
  
 +NCT7363 HARDWARE MONITOR DRIVER
 +M:    Ban Feng <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/hwmon/nuvoton,nct7363.yaml
 +F:    Documentation/hwmon/nct7363.rst
 +F:    drivers/hwmon/nct7363.c
 +
  NETCONSOLE
  M:    Breno Leitao <[email protected]>
  S:    Maintained
@@@ -16131,8 -16049,9 +16131,8 @@@ F:   net/netfilter
  F:    tools/testing/selftests/net/netfilter/
  
  NETROM NETWORK LAYER
 -M:    Ralf Baechle <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linux-ax25.in-berlin.de
  F:    include/net/netrom.h
  F:    include/uapi/linux/netrom.h
@@@ -16173,7 -16092,6 +16173,7 @@@ F:   include/uapi/linux/net_dropmon.
  F:    net/core/drop_monitor.c
  
  NETWORKING DRIVERS
 +M:    Andrew Lunn <[email protected]>
  M:    "David S. Miller" <[email protected]>
  M:    Eric Dumazet <[email protected]>
  M:    Jakub Kicinski <[email protected]>
@@@ -16202,13 -16120,10 +16202,13 @@@ F:        include/linux/platform_data/wiznet.
  F:    include/uapi/linux/cn_proc.h
  F:    include/uapi/linux/ethtool_netlink.h
  F:    include/uapi/linux/if_*
 +F:    include/uapi/linux/net_shaper.h
  F:    include/uapi/linux/netdev*
  F:    tools/testing/selftests/drivers/net/
  X:    Documentation/devicetree/bindings/net/bluetooth/
 +X:    Documentation/devicetree/bindings/net/can/
  X:    Documentation/devicetree/bindings/net/wireless/
 +X:    drivers/net/can/
  X:    drivers/net/wireless/
  
  NETWORKING DRIVERS (WIRELESS)
@@@ -16224,6 -16139,7 +16224,6 @@@ F:   drivers/net/wireless
  
  NETWORKING [DSA]
  M:    Andrew Lunn <[email protected]>
 -M:    Florian Fainelli <[email protected]>
  M:    Vladimir Oltean <[email protected]>
  S:    Maintained
  F:    Documentation/devicetree/bindings/net/dsa/
@@@ -16241,7 -16157,6 +16241,7 @@@ M:   "David S. Miller" <[email protected]
  M:    Eric Dumazet <[email protected]>
  M:    Jakub Kicinski <[email protected]>
  M:    Paolo Abeni <[email protected]>
 +R:    Simon Horman <[email protected]>
  L:    [email protected]
  S:    Maintained
  P:    Documentation/process/maintainer-netdev.rst
@@@ -16284,23 -16199,10 +16284,23 @@@ F:        include/uapi/linux/rtnetlink.
  F:    lib/net_utils.c
  F:    lib/random32.c
  F:    net/
 +F:    samples/pktgen/
  F:    tools/net/
  F:    tools/testing/selftests/net/
 +X:    Documentation/networking/mac80211-injection.rst
 +X:    Documentation/networking/mac80211_hwsim/
 +X:    Documentation/networking/regulatory.rst
 +X:    include/net/cfg80211.h
 +X:    include/net/ieee80211_radiotap.h
 +X:    include/net/iw_handler.h
 +X:    include/net/mac80211.h
 +X:    include/net/wext.h
  X:    net/9p/
  X:    net/bluetooth/
 +X:    net/can/
 +X:    net/mac80211/
 +X:    net/rfkill/
 +X:    net/wireless/
  
  NETWORKING [IPSEC]
  M:    Steffen Klassert <[email protected]>
@@@ -16386,7 -16288,7 +16386,7 @@@ F:   include/net/mptcp.
  F:    include/trace/events/mptcp.h
  F:    include/uapi/linux/mptcp*.h
  F:    net/mptcp/
 -F:    tools/testing/selftests/bpf/*/*mptcp*.c
 +F:    tools/testing/selftests/bpf/*/*mptcp*.[ch]
  F:    tools/testing/selftests/net/mptcp/
  
  NETWORKING [TCP]
@@@ -16580,7 -16482,6 +16580,7 @@@ NOVATEK NVT-TS I2C TOUCHSCREEN DRIVE
  M:    Hans de Goede <[email protected]>
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/devicetree/bindings/input/touchscreen/novatek,nvt-ts.yaml
  F:    drivers/input/touchscreen/novatek-nvt-ts.c
  
  NSDEPS
@@@ -16611,6 -16512,12 +16611,6 @@@ F:  include/linux/ntb.
  F:    include/linux/ntb_transport.h
  F:    tools/testing/selftests/ntb/
  
 -NTB IDT DRIVER
 -M:    Serge Semin <[email protected]>
 -L:    [email protected]
 -S:    Supported
 -F:    drivers/ntb/hw/idt/
 -
  NTB INTEL DRIVER
  M:    Dave Jiang <[email protected]>
  L:    [email protected]
@@@ -16881,6 -16788,13 +16881,6 @@@ S:  Maintaine
  F:    Documentation/hwmon/nzxt-kraken3.rst
  F:    drivers/hwmon/nzxt-kraken3.c
  
 -NZXT-SMART2 HARDWARE MONITORING DRIVER
 -M:    Aleksandr Mezin <[email protected]>
 -L:    [email protected]
 -S:    Maintained
 -F:    Documentation/hwmon/nzxt-smart2.rst
 -F:    drivers/hwmon/nzxt-smart2.c
 -
  OBJAGG
  M:    Jiri Pirko <[email protected]>
  L:    [email protected]
@@@ -17022,6 -16936,14 +17022,6 @@@ S:  Maintaine
  F:    Documentation/devicetree/bindings/i2c/ti,omap4-i2c.yaml
  F:    drivers/i2c/busses/i2c-omap.c
  
 -OMAP IMAGING SUBSYSTEM (OMAP3 ISP and OMAP4 ISS)
 -M:    Laurent Pinchart <[email protected]>
 -L:    [email protected]
 -S:    Maintained
 -F:    Documentation/devicetree/bindings/media/ti,omap3isp.txt
 -F:    drivers/media/platform/ti/omap3isp/
 -F:    drivers/staging/media/omap4iss/
 -
  OMAP MMC SUPPORT
  M:    Aaro Koskinen <[email protected]>
  L:    [email protected]
@@@ -17132,13 -17054,13 +17132,13 @@@ OMNIVISION OV01A10 SENSOR DRIVE
  M:    Bingbu Cao <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/i2c/ov01a10.c
  
  OMNIVISION OV02A10 SENSOR DRIVER
  L:    [email protected]
  S:    Orphan
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/ovti,ov02a10.yaml
  F:    drivers/media/i2c/ov02a10.c
  
@@@ -17146,29 -17068,28 +17146,29 @@@ OMNIVISION OV08D10 SENSOR DRIVE
  M:    Jimmy Su <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/i2c/ov08d10.c
  
  OMNIVISION OV08X40 SENSOR DRIVER
  M:    Jason Chen <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/i2c/ov08x40.c
 +F:    Documentation/devicetree/bindings/media/i2c/ovti,ov08x40.yaml
  
  OMNIVISION OV13858 SENSOR DRIVER
  M:    Sakari Ailus <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/i2c/ov13858.c
  
  OMNIVISION OV13B10 SENSOR DRIVER
  M:    Arec Kao <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/i2c/ov13b10.c
  
  OMNIVISION OV2680 SENSOR DRIVER
@@@ -17176,7 -17097,7 +17176,7 @@@ M:   Rui Miguel Silva <[email protected]
  M:    Hans de Goede <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/ovti,ov2680.yaml
  F:    drivers/media/i2c/ov2680.c
  
@@@ -17184,7 -17105,7 +17184,7 @@@ OMNIVISION OV2685 SENSOR DRIVE
  M:    Shunqian Zheng <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/ovti,ov2685.yaml
  F:    drivers/media/i2c/ov2685.c
  
@@@ -17194,14 -17115,14 +17194,14 @@@ R:        Sakari Ailus <[email protected]
  R:    Bingbu Cao <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/i2c/ov2740.c
  
  OMNIVISION OV4689 SENSOR DRIVER
  M:    Mikhail Rudenko <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/ovti,ov4689.yaml
  F:    drivers/media/i2c/ov4689.c
  
@@@ -17209,7 -17130,7 +17209,7 @@@ OMNIVISION OV5640 SENSOR DRIVE
  M:    Steve Longerbeam <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/i2c/ov5640.c
  
  OMNIVISION OV5647 SENSOR DRIVER
@@@ -17217,7 -17138,7 +17217,7 @@@ M:   Dave Stevenson <dave.stevenson@raspb
  M:    Jacopo Mondi <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/ovti,ov5647.yaml
  F:    drivers/media/i2c/ov5647.c
  
@@@ -17225,7 -17146,7 +17225,7 @@@ OMNIVISION OV5670 SENSOR DRIVE
  M:    Sakari Ailus <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/ovti,ov5670.yaml
  F:    drivers/media/i2c/ov5670.c
  
@@@ -17233,7 -17154,7 +17233,7 @@@ OMNIVISION OV5675 SENSOR DRIVE
  M:    Sakari Ailus <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/ovti,ov5675.yaml
  F:    drivers/media/i2c/ov5675.c
  
@@@ -17241,7 -17162,7 +17241,7 @@@ OMNIVISION OV5693 SENSOR DRIVE
  M:    Daniel Scally <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/ovti,ov5693.yaml
  F:    drivers/media/i2c/ov5693.c
  
@@@ -17249,21 -17170,21 +17249,21 @@@ OMNIVISION OV5695 SENSOR DRIVE
  M:    Shunqian Zheng <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/i2c/ov5695.c
  
  OMNIVISION OV64A40 SENSOR DRIVER
  M:    Jacopo Mondi <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/ovti,ov64a40.yaml
  F:    drivers/media/i2c/ov64a40.c
  
  OMNIVISION OV7670 SENSOR DRIVER
  L:    [email protected]
  S:    Orphan
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/ov7670.txt
  F:    drivers/media/i2c/ov7670.c
  
@@@ -17271,7 -17192,7 +17271,7 @@@ OMNIVISION OV772x SENSOR DRIVE
  M:    Jacopo Mondi <[email protected]>
  L:    [email protected]
  S:    Odd fixes
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/ovti,ov772x.yaml
  F:    drivers/media/i2c/ov772x.c
  F:    include/media/i2c/ov772x.h
  OMNIVISION OV7740 SENSOR DRIVER
  L:    [email protected]
  S:    Orphan
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/ov7740.txt
  F:    drivers/media/i2c/ov7740.c
  
@@@ -17287,7 -17208,7 +17287,7 @@@ OMNIVISION OV8856 SENSOR DRIVE
  M:    Sakari Ailus <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/ovti,ov8856.yaml
  F:    drivers/media/i2c/ov8856.c
  
@@@ -17296,7 -17217,7 +17296,7 @@@ M:   Jacopo Mondi <jacopo.mondi@ideasonbo
  M:    Nicholas Roth <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/ovti,ov8858.yaml
  F:    drivers/media/i2c/ov8858.c
  
@@@ -17304,7 -17225,7 +17304,7 @@@ OMNIVISION OV9282 SENSOR DRIVE
  M:    Dave Stevenson <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/ovti,ov9282.yaml
  F:    drivers/media/i2c/ov9282.c
  
@@@ -17320,7 -17241,7 +17320,7 @@@ R:   Akinobu Mita <[email protected]
  R:    Sylwester Nawrocki <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/ov9650.txt
  F:    drivers/media/i2c/ov9650.c
  
@@@ -17329,7 -17250,7 +17329,7 @@@ M:   Tianshu Qiu <[email protected]
  R:    Bingbu Cao <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/i2c/ov9734.c
  
  ONBOARD USB HUB DRIVER
@@@ -17554,7 -17475,6 +17554,7 @@@ S:   Supporte
  F:    Documentation/core-api/packing.rst
  F:    include/linux/packing.h
  F:    lib/packing.c
 +F:    lib/packing_test.c
  
  PADATA PARALLEL EXECUTION MECHANISM
  M:    Steffen Klassert <[email protected]>
@@@ -18316,13 -18236,6 +18316,13 @@@ F: drivers/pinctrl
  F:    include/dt-bindings/pinctrl/
  F:    include/linux/pinctrl/
  
 +PIN CONTROLLER - AIROHA
 +M:    Lorenzo Bianconi <[email protected]>
 +L:    [email protected] (moderated for non-subscribers)
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/pinctrl/airoha,en7581-pinctrl.yaml
 +F:    drivers/pinctrl/mediatek/pinctrl-airoha.c
 +
  PIN CONTROLLER - AMD
  M:    Basavaraj Natikar <[email protected]>
  M:    Shyam Sundar S K <[email protected]>
@@@ -18399,7 -18312,6 +18399,7 @@@ PIN CONTROLLER - QUALCOM
  M:    Bjorn Andersson <[email protected]>
  L:    [email protected]
  S:    Maintained
 +C:    irc://irc.oftc.net/linux-msm
  F:    Documentation/devicetree/bindings/pinctrl/qcom,*
  F:    drivers/pinctrl/qcom/
  
@@@ -18626,6 -18538,13 +18626,6 @@@ F:  drivers/pps
  F:    include/linux/pps*.h
  F:    include/uapi/linux/pps.h
  
 -PPTP DRIVER
 -M:    Dmitry Kozlov <[email protected]>
 -L:    [email protected]
 -S:    Maintained
 -W:    http://sourceforge.net/projects/accel-pptp
 -F:    drivers/net/ppp/pptp.c
 -
  PRESSURE STALL INFORMATION (PSI)
  M:    Johannes Weiner <[email protected]>
  M:    Suren Baghdasaryan <[email protected]>
@@@ -18661,6 -18580,7 +18661,6 @@@ F:   include/linux/proc_fs.
  F:    tools/testing/selftests/proc/
  
  PROC SYSCTL
 -M:    Luis Chamberlain <[email protected]>
  M:    Kees Cook <[email protected]>
  M:    Joel Granados <[email protected]>
  L:    [email protected]
@@@ -18766,13 -18686,6 +18766,13 @@@ S: Maintaine
  F:    drivers/ptp/ptp_vclock.c
  F:    net/ethtool/phc_vclocks.c
  
 +PTP VMCLOCK SUPPORT
 +M:    David Woodhouse <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/ptp/ptp_vmclock.c
 +F:    include/uapi/linux/vmclock-abi.h
 +
  PTRACE SUPPORT
  M:    Oleg Nesterov <[email protected]>
  S:    Maintained
@@@ -18789,7 -18702,7 +18789,7 @@@ PULSE8-CEC DRIVE
  M:    Hans Verkuil <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/cec/usb/pulse8/
  
  PURELIFI PLFXLC DRIVER
@@@ -18804,7 -18717,7 +18804,7 @@@ L:   [email protected]       (subscribers-only
  L:    [email protected]
  S:    Maintained
  W:    http://www.isely.net/pvrusb2/
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/driver-api/media/drivers/pvrusb2*
  F:    drivers/media/usb/pvrusb2/
  
@@@ -18812,7 -18725,7 +18812,7 @@@ PWC WEBCAM DRIVE
  M:    Hans Verkuil <[email protected]>
  L:    [email protected]
  S:    Odd Fixes
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/usb/pwc/*
  F:    include/trace/events/pwc.h
  
@@@ -19316,7 -19229,7 +19316,7 @@@ R:   Bryan O'Donoghue <bryan.odonoghue@li
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/*venus*
  F:    drivers/media/platform/qcom/venus/
  
@@@ -19361,14 -19274,14 +19361,14 @@@ RADIOSHARK RADIO DRIVE
  M:    Hans Verkuil <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/radio/radio-shark.c
  
  RADIOSHARK2 RADIO DRIVER
  M:    Hans Verkuil <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/radio/radio-shark2.c
  F:    drivers/media/radio/radio-tea5777.c
  
@@@ -19392,7 -19305,7 +19392,7 @@@ RAINSHADOW-CEC DRIVE
  M:    Hans Verkuil <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/cec/usb/rainshadow/
  
  RALINK MIPS ARCHITECTURE
@@@ -19471,19 -19384,12 +19471,19 @@@ F:        Documentation/devicetree/bindings/me
  F:    drivers/media/platform/raspberrypi/pisp_be/
  F:    include/uapi/linux/media/raspberrypi/
  
 +RASPBERRY PI PISP CAMERA FRONT END
 +M:    Tomi Valkeinen <[email protected]>
 +M:    Raspberry Pi Kernel Maintenance <[email protected]>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/media/raspberrypi,rp1-cfe.yaml
 +F:    drivers/media/platform/raspberrypi/rp1-cfe/
 +
  RC-CORE / LIRC FRAMEWORK
  M:    Sean Young <[email protected]>
  L:    [email protected]
  S:    Maintained
  W:    http://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/driver-api/media/rc-core.rst
  F:    Documentation/userspace-api/media/rc/
  F:    drivers/media/rc/
@@@ -19612,14 -19518,6 +19612,14 @@@ S: Maintaine
  F:    Documentation/tools/rtla/
  F:    tools/tracing/rtla/
  
 +Real-time Linux (PREEMPT_RT)
 +M:    Sebastian Andrzej Siewior <[email protected]>
 +M:    Clark Williams <[email protected]>
 +M:    Steven Rostedt <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +K:    PREEMPT_RT
 +
  REALTEK AUDIO CODECS
  M:    Oder Chiou <[email protected]>
  S:    Maintained
@@@ -19640,12 -19538,6 +19640,12 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/net/dsa/realtek.yaml
  F:    drivers/net/dsa/realtek/*
  
 +REALTEK SPI-NAND
 +M:    Chris Packham <[email protected]>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/spi/realtek,rtl9301-snand.yaml
 +F:    drivers/spi/spi-realtek-rtl-snand.c
 +
  REALTEK WIRELESS DRIVER (rtlwifi family)
  M:    Ping-Ke Shih <[email protected]>
  L:    [email protected]
@@@ -19681,6 -19573,11 +19681,6 @@@ F:  Documentation/devicetree/bindings/re
  F:    drivers/base/regmap/
  F:    include/linux/regmap.h
  
 -REISERFS FILE SYSTEM
 -L:    [email protected]
 -S:    Obsolete
 -F:    fs/reiserfs/
 -
  REMOTE PROCESSOR (REMOTEPROC) SUBSYSTEM
  M:    Bjorn Andersson <[email protected]>
  M:    Mathieu Poirier <[email protected]>
@@@ -19731,11 -19628,9 +19731,11 @@@ F: Documentation/devicetree/bindings/i2
  F:    drivers/i2c/busses/i2c-emev2.c
  
  RENESAS ETHERNET AVB DRIVER
 -R:    Sergey Shtylyov <[email protected]>
 +M:    Paul Barker <[email protected]>
 +M:    Niklas Söderlund <[email protected]>
  L:    [email protected]
  L:    [email protected]
 +S:    Supported
  F:    Documentation/devicetree/bindings/net/renesas,etheravb.yaml
  F:    drivers/net/ethernet/renesas/Kconfig
  F:    drivers/net/ethernet/renesas/Makefile
@@@ -19766,17 -19661,6 +19766,17 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/sound/renesas,idt821034.yaml
  F:    sound/soc/codecs/idt821034.c
  
 +RENESAS R-CAR & FSI AUDIO (ASoC) DRIVERS
 +M:    Kuninori Morimoto <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Supported
 +F:    Documentation/devicetree/bindings/sound/renesas,rsnd.*
 +F:    Documentation/devicetree/bindings/sound/renesas,fsi.yaml
 +F:    sound/soc/renesas/rcar/
 +F:    sound/soc/renesas/fsi.c
 +F:    include/sound/sh_fsi.h
 +
  RENESAS R-CAR GEN3 & RZ/N1 NAND CONTROLLER DRIVER
  M:    Miquel Raynal <[email protected]>
  L:    [email protected]
@@@ -19802,7 -19686,7 +19802,7 @@@ F:   drivers/i2c/busses/i2c-rcar.
  F:    drivers/i2c/busses/i2c-sh_mobile.c
  
  RENESAS R-CAR SATA DRIVER
 -R:    Sergey Shtylyov <[email protected]>
 +M:    Geert Uytterhoeven <[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Supported
@@@ -19825,15 -19709,6 +19825,15 @@@ S: Supporte
  F:    Documentation/devicetree/bindings/i2c/renesas,riic.yaml
  F:    drivers/i2c/busses/i2c-riic.c
  
 +RENESAS RZ AUDIO (ASoC) DRIVER
 +M:    Biju Das <[email protected]>
 +M:    Lad Prabhakar <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Supported
 +F:    Documentation/devicetree/bindings/sound/renesas,rz-ssi.yaml
 +F:    sound/soc/renesas/rz-ssi.c
 +
  RENESAS RZ/G2L A/D DRIVER
  M:    Lad Prabhakar <[email protected]>
  L:    [email protected]
@@@ -19894,10 -19769,9 +19894,10 @@@ F: Documentation/devicetree/bindings/i2
  F:    drivers/i2c/busses/i2c-rzv2m.c
  
  RENESAS SUPERH ETHERNET DRIVER
 -R:    Sergey Shtylyov <[email protected]>
 +M:    Niklas Söderlund <[email protected]>
  L:    [email protected]
  L:    [email protected]
 +S:    Supported
  F:    Documentation/devicetree/bindings/net/renesas,ether.yaml
  F:    drivers/net/ethernet/renesas/Kconfig
  F:    drivers/net/ethernet/renesas/Makefile
@@@ -20011,15 -19885,6 +20011,15 @@@ F: arch/riscv
  N:    riscv
  K:    riscv
  
 +RISC-V IOMMU
 +M:    Tomasz Jeznach <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux.git
 +F:    Documentation/devicetree/bindings/iommu/riscv,iommu.yaml
 +F:    drivers/iommu/riscv/
 +
  RISC-V MICROCHIP FPGA SUPPORT
  M:    Conor Dooley <[email protected]>
  M:    Daire McNamara <[email protected]>
@@@ -20039,7 -19904,6 +20039,7 @@@ F:   arch/riscv/boot/dts/microchip
  F:    drivers/char/hw_random/mpfs-rng.c
  F:    drivers/clk/microchip/clk-mpfs*.c
  F:    drivers/firmware/microchip/mpfs-auto-update.c
 +F:    drivers/gpio/gpio-mpfs.c
  F:    drivers/i2c/busses/i2c-microchip-corei2c.c
  F:    drivers/mailbox/mailbox-mpfs.c
  F:    drivers/pci/controller/plda/pcie-microchip-host.c
@@@ -20058,10 -19922,12 +20058,10 @@@ L:        [email protected]
  S:    Maintained
  Q:    https://patchwork.kernel.org/project/linux-riscv/list/
  T:    git https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux.git/
 -F:    Documentation/devicetree/bindings/riscv/
 -F:    arch/riscv/boot/dts/
 -X:    arch/riscv/boot/dts/allwinner/
 -X:    arch/riscv/boot/dts/renesas/
 -X:    arch/riscv/boot/dts/sophgo/
 -X:    arch/riscv/boot/dts/thead/
 +F:    arch/riscv/boot/dts/canaan/
 +F:    arch/riscv/boot/dts/microchip/
 +F:    arch/riscv/boot/dts/sifive/
 +F:    arch/riscv/boot/dts/starfive/
  
  RISC-V PMU DRIVERS
  M:    Atish Patra <[email protected]>
  S:    Maintained
  T:    git https://github.com/pdp7/linux.git
  F:    Documentation/devicetree/bindings/clock/thead,th1520-clk-ap.yaml
 +F:    Documentation/devicetree/bindings/mailbox/thead,th1520-mbox.yaml
 +F:    Documentation/devicetree/bindings/net/thead,th1520-gmac.yaml
 +F:    Documentation/devicetree/bindings/pinctrl/thead,th1520-pinctrl.yaml
  F:    arch/riscv/boot/dts/thead/
  F:    drivers/clk/thead/clk-th1520-ap.c
 +F:    drivers/mailbox/mailbox-th1520.c
 +F:    drivers/net/ethernet/stmicro/stmmac/dwmac-thead.c
 +F:    drivers/pinctrl/pinctrl-th1520.c
  F:    include/dt-bindings/clock/thead,th1520-clk-ap.h
  
  RNBD BLOCK DRIVERS
@@@ -20252,8 -20112,9 +20252,8 @@@ F:   include/linux/mfd/rohm-generic.
  F:    include/linux/mfd/rohm-shared.h
  
  ROSE NETWORK LAYER
 -M:    Ralf Baechle <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://linux-ax25.in-berlin.de
  F:    include/net/rose.h
  F:    include/uapi/linux/rose.h
@@@ -20263,7 -20124,7 +20263,7 @@@ ROTATION DRIVER FOR ALLWINNER A83
  M:    Jernej Skrabec <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/allwinner,sun8i-a83t-de2-rotate.yaml
  F:    drivers/media/platform/sunxi/sun8i-rotate/
  
@@@ -20327,13 -20188,6 +20327,13 @@@ S: Maintaine
  T:    git https://github.com/pkshih/rtw.git
  F:    drivers/net/wireless/realtek/rtl8xxxu/
  
 +RTL9300 I2C DRIVER (rtl9300-i2c)
 +M:    Chris Packham <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/i2c/realtek,rtl9301-i2c.yaml
 +F:    drivers/i2c/busses/i2c-rtl9300.c
 +
  RTRS TRANSPORT DRIVERS
  M:    Md. Haris Iqbal <[email protected]>
  M:    Jack Wang <[email protected]>
@@@ -20368,14 -20222,21 +20368,22 @@@ B:        https://github.com/Rust-for-Linux/li
  C:    zulip://rust-for-linux.zulipchat.com
  P:    https://rust-for-linux.com/contributing
  T:    git https://github.com/Rust-for-Linux/linux.git rust-next
+ F:    .clippy.toml
  F:    Documentation/rust/
 +F:    include/trace/events/rust_sample.h
  F:    rust/
  F:    samples/rust/
  F:    scripts/*rust*
  F:    tools/testing/selftests/rust/
  K:    \b(?i:rust)\b
  
+ RUST [ALLOC]
+ M:    Danilo Krummrich <[email protected]>
+ L:    [email protected]
+ S:    Maintained
+ F:    rust/kernel/alloc.rs
+ F:    rust/kernel/alloc/
  RXRPC SOCKETS (AF_RXRPC)
  M:    David Howells <[email protected]>
  M:    Marc Dionne <[email protected]>
  S:    Supported
  F:    drivers/s390/cio/
  
 +S390 CRYPTO MODULES, PRNG DRIVER, ARCH RANDOM
 +M:    Harald Freudenberger <[email protected]>
 +M:    Holger Dengler <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Supported
 +F:    arch/s390/crypto/
 +F:    arch/s390/include/asm/archrandom.h
 +F:    arch/s390/include/asm/cpacf.h
 +
  S390 DASD DRIVER
  M:    Stefan Haberland <[email protected]>
  M:    Jan Hoeppner <[email protected]>
@@@ -20436,14 -20287,6 +20444,14 @@@ F: block/partitions/ibm.
  F:    drivers/s390/block/dasd*
  F:    include/linux/dasd_mod.h
  
 +S390 HWRANDOM TRNG DRIVER
 +M:    Harald Freudenberger <[email protected]>
 +M:    Holger Dengler <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Supported
 +F:    drivers/char/hw_random/s390-trng.c
 +
  S390 IOMMU (PCI)
  M:    Niklas Schnelle <[email protected]>
  M:    Matthew Rosato <[email protected]>
@@@ -20488,12 -20331,6 +20496,12 @@@ F: Documentation/arch/s390/pci.rs
  F:    arch/s390/pci/
  F:    drivers/pci/hotplug/s390_pci_hpc.c
  
 +S390 PTP DRIVER
 +M:    Sven Schnelle <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    drivers/ptp/ptp_s390.c
 +
  S390 SCM DRIVER
  M:    Vineeth Vijayan <[email protected]>
  L:    [email protected]
@@@ -20531,16 -20368,10 +20539,16 @@@ F:        arch/s390/kvm/pci
  F:    drivers/vfio/pci/vfio_pci_zdev.c
  F:    include/uapi/linux/vfio_zdev.h
  
 -S390 ZCRYPT DRIVER
 +S390 ZCRYPT AND PKEY DRIVER AND AP BUS
  M:    Harald Freudenberger <[email protected]>
 +M:    Holger Dengler <[email protected]>
  L:    [email protected]
  S:    Supported
 +F:    arch/s390/include/asm/ap.h
 +F:    arch/s390/include/asm/pkey.h
 +F:    arch/s390/include/asm/trace/zcrypt.h
 +F:    arch/s390/include/uapi/asm/pkey.h
 +F:    arch/s390/include/uapi/asm/zcrypt.h
  F:    drivers/s390/crypto/
  
  S390 ZFCP DRIVER
@@@ -20555,7 -20386,7 +20563,7 @@@ M:   Hans Verkuil <[email protected]
  L:    [email protected]
  S:    Odd Fixes
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/i2c/saa6588*
  
  SAA7134 VIDEO4LINUX DRIVER
@@@ -20563,7 -20394,7 +20571,7 @@@ M:   Mauro Carvalho Chehab <mchehab@kerne
  L:    [email protected]
  S:    Odd fixes
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/driver-api/media/drivers/saa7134*
  F:    drivers/media/pci/saa7134/
  
@@@ -20571,7 -20402,7 +20579,7 @@@ SAA7146 VIDEO4LINUX-2 DRIVE
  M:    Hans Verkuil <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/common/saa7146/
  F:    drivers/media/pci/saa7146/
  F:    include/media/drv-intf/saa7146*
  S:    Maintained
  B:    mailto:[email protected]
  F:    Documentation/devicetree/bindings/clock/samsung,s2mps11.yaml
 -F:    Documentation/devicetree/bindings/mfd/samsung,s2m*.yaml
 +F:    Documentation/devicetree/bindings/mfd/samsung,s2*.yaml
  F:    Documentation/devicetree/bindings/mfd/samsung,s5m*.yaml
  F:    Documentation/devicetree/bindings/regulator/samsung,s2m*.yaml
  F:    Documentation/devicetree/bindings/regulator/samsung,s5m*.yaml
@@@ -21027,7 -20858,6 +21035,7 @@@ Q:   https://patchwork.kernel.org/project
  B:    mailto:[email protected]
  P:    https://github.com/LinuxSecurityModule/kernel/blob/main/README.md
  T:    git https://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/lsm.git
 +F:    include/linux/lsm/
  F:    include/linux/lsm_audit.h
  F:    include/linux/lsm_hook_defs.h
  F:    include/linux/lsm_hooks.h
@@@ -21174,7 -21004,6 +21182,7 @@@ M:   Jan Karcher <[email protected]
  R:    D. Wythe <[email protected]>
  R:    Tony Lu <[email protected]>
  R:    Wen Gu <[email protected]>
 +L:    [email protected]
  L:    [email protected]
  S:    Supported
  F:    net/smc/
@@@ -21191,7 -21020,7 +21199,7 @@@ SHARP RJ54N1CB0C SENSOR DRIVE
  M:    Jacopo Mondi <[email protected]>
  L:    [email protected]
  S:    Odd fixes
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/i2c/rj54n1cb0c.c
  F:    include/media/i2c/rj54n1cb0c.h
  
@@@ -21241,7 -21070,7 +21249,7 @@@ M:   Hans Verkuil <[email protected]
  L:    [email protected]
  S:    Odd Fixes
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/silabs,si470x.yaml
  F:    drivers/media/radio/si470x/radio-si470x-i2c.c
  
@@@ -21250,7 -21079,7 +21258,7 @@@ M:   Hans Verkuil <[email protected]
  L:    [email protected]
  S:    Maintained
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/radio/si470x/radio-si470x-common.c
  F:    drivers/media/radio/si470x/radio-si470x-usb.c
  F:    drivers/media/radio/si470x/radio-si470x.h
@@@ -21260,7 -21089,7 +21268,7 @@@ M:   Eduardo Valentin <[email protected]
  L:    [email protected]
  S:    Odd Fixes
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/radio/si4713/si4713.?
  
  SI4713 FM RADIO TRANSMITTER PLATFORM DRIVER
@@@ -21268,7 -21097,7 +21276,7 @@@ M:   Eduardo Valentin <[email protected]
  L:    [email protected]
  S:    Odd Fixes
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/radio/si4713/radio-platform-si4713.c
  
  SI4713 FM RADIO TRANSMITTER USB DRIVER
@@@ -21276,7 -21105,7 +21284,7 @@@ M:   Hans Verkuil <[email protected]
  L:    [email protected]
  S:    Maintained
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/radio/si4713/radio-usb-si4713.c
  
  SIANO DVB DRIVER
@@@ -21284,23 -21113,23 +21292,23 @@@ M:        Mauro Carvalho Chehab <mchehab@kerne
  L:    [email protected]
  S:    Odd fixes
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/common/siano/
  F:    drivers/media/mmc/siano/
  F:    drivers/media/usb/siano/
  F:    drivers/media/usb/siano/
  
  SIEMENS IPC LED DRIVERS
 -M:    Gerd Haeussler <gerd.haeussler.ext@siemens.com>
 -M:    Xing Tong Wu <xingtong.wu@siemens.com>
 +M:    Bao Cheng Su <baocheng.su@siemens.com>
 +M:    Benedikt Niedermayr <benedikt.niedermayr@siemens.com>
  M:    Tobias Schaffner <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/leds/simple/
  
  SIEMENS IPC PLATFORM DRIVERS
 -M:    Gerd Haeussler <gerd.haeussler.ext@siemens.com>
 -M:    Xing Tong Wu <xingtong.wu@siemens.com>
 +M:    Bao Cheng Su <baocheng.su@siemens.com>
 +M:    Benedikt Niedermayr <benedikt.niedermayr@siemens.com>
  M:    Tobias Schaffner <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -21309,8 -21138,8 +21317,8 @@@ F:   include/linux/platform_data/x86/sima
  F:    include/linux/platform_data/x86/simatic-ipc.h
  
  SIEMENS IPC WATCHDOG DRIVERS
 -M:    Gerd Haeussler <gerd.haeussler.ext@siemens.com>
 -M:    Xing Tong Wu <xingtong.wu@siemens.com>
 +M:    Bao Cheng Su <baocheng.su@siemens.com>
 +M:    Benedikt Niedermayr <benedikt.niedermayr@siemens.com>
  M:    Tobias Schaffner <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -21618,11 -21447,11 +21626,11 @@@ F:        include/linux/property.
  
  SOFTWARE RAID (Multiple Disks) SUPPORT
  M:    Song Liu <[email protected]>
 -R:    Yu Kuai <[email protected]>
 +M:    Yu Kuai <[email protected]>
  L:    [email protected]
  S:    Supported
  Q:    https://patchwork.kernel.org/project/linux-raid/list/
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/song/md.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mdraid/linux.git
  F:    drivers/md/Kconfig
  F:    drivers/md/Makefile
  F:    drivers/md/md*
@@@ -21660,14 -21489,14 +21668,14 @@@ SONY IMX208 SENSOR DRIVE
  M:    Sakari Ailus <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/i2c/imx208.c
  
  SONY IMX214 SENSOR DRIVER
  M:    Ricardo Ribalda <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/sony,imx214.yaml
  F:    drivers/media/i2c/imx214.c
  
@@@ -21675,7 -21504,7 +21683,7 @@@ SONY IMX219 SENSOR DRIVE
  M:    Dave Stevenson <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/imx219.yaml
  F:    drivers/media/i2c/imx219.c
  
@@@ -21683,7 -21512,7 +21691,7 @@@ SONY IMX258 SENSOR DRIVE
  M:    Sakari Ailus <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/sony,imx258.yaml
  F:    drivers/media/i2c/imx258.c
  
@@@ -21691,7 -21520,7 +21699,7 @@@ SONY IMX274 SENSOR DRIVE
  M:    Leon Luo <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/sony,imx274.yaml
  F:    drivers/media/i2c/imx274.c
  
@@@ -21700,7 -21529,7 +21708,7 @@@ M:   Kieran Bingham <kieran.bingham@ideas
  M:    Umang Jain <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/sony,imx283.yaml
  F:    drivers/media/i2c/imx283.c
  
@@@ -21708,7 -21537,7 +21716,7 @@@ SONY IMX290 SENSOR DRIVE
  M:    Manivannan Sadhasivam <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/sony,imx290.yaml
  F:    drivers/media/i2c/imx290.c
  
@@@ -21717,7 -21546,7 +21725,7 @@@ M:   Laurent Pinchart <laurent.pinchart@i
  M:    Manivannan Sadhasivam <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/sony,imx296.yaml
  F:    drivers/media/i2c/imx296.c
  
@@@ -21725,20 -21554,20 +21733,20 @@@ SONY IMX319 SENSOR DRIVE
  M:    Bingbu Cao <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/i2c/imx319.c
  
  SONY IMX334 SENSOR DRIVER
  L:    [email protected]
  S:    Orphan
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/sony,imx334.yaml
  F:    drivers/media/i2c/imx334.c
  
  SONY IMX335 SENSOR DRIVER
  L:    [email protected]
  S:    Orphan
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/sony,imx335.yaml
  F:    drivers/media/i2c/imx335.c
  
@@@ -21746,13 -21575,13 +21754,13 @@@ SONY IMX355 SENSOR DRIVE
  M:    Tianshu Qiu <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/i2c/imx355.c
  
  SONY IMX412 SENSOR DRIVER
  L:    [email protected]
  S:    Orphan
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/sony,imx412.yaml
  F:    drivers/media/i2c/imx412.c
  
@@@ -21760,7 -21589,7 +21768,7 @@@ SONY IMX415 SENSOR DRIVE
  M:    Michael Riesch <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/sony,imx415.yaml
  F:    drivers/media/i2c/imx415.c
  
@@@ -21873,15 -21702,6 +21881,15 @@@ S: Supporte
  W:    https://github.com/thesofproject/linux/
  F:    sound/soc/sof/
  
 +SOUND - GENERIC SOUND CARD (Simple-Audio-Card, Audio-Graph-Card)
 +M:    Kuninori Morimoto <[email protected]>
 +S:    Supported
 +L:    [email protected]
 +F:    sound/soc/generic/
 +F:    include/sound/simple_card*
 +F:    Documentation/devicetree/bindings/sound/simple-card.yaml
 +F:    Documentation/devicetree/bindings/sound/audio-graph*.yaml
 +
  SOUNDWIRE SUBSYSTEM
  M:    Vinod Koul <[email protected]>
  M:    Bard Liao <[email protected]>
@@@ -21960,8 -21780,8 +21968,8 @@@ F:   drivers/accessibility/speakup
  SPEAR PLATFORM/CLOCK/PINCTRL SUPPORT
  M:    Viresh Kumar <[email protected]>
  M:    Shiraz Hashim <[email protected]>
 -M:    [email protected]
  L:    [email protected] (moderated for non-subscribers)
 +L:    [email protected]
  S:    Maintained
  W:    http://www.st.com/spear
  F:    arch/arm/boot/dts/st/spear*
@@@ -22049,7 -21869,7 +22057,7 @@@ M:   Benjamin Mugnier <benjamin.mugnier@f
  M:    Sylvain Petinot <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/st,st-mipid02.yaml
  F:    drivers/media/i2c/st-mipid02.c
  
@@@ -22085,7 -21905,7 +22093,7 @@@ M:   Benjamin Mugnier <benjamin.mugnier@f
  M:    Sylvain Petinot <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/st,st-vgxy61.yaml
  F:    Documentation/userspace-api/media/drivers/vgxy61.rst
  F:    drivers/media/i2c/vgxy61.c
@@@ -22375,7 -22195,7 +22383,7 @@@ STK1160 USB VIDEO CAPTURE DRIVE
  M:    Ezequiel Garcia <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/usb/stk1160/
  
  STM32 AUDIO (ASoC) DRIVERS
@@@ -22435,6 -22255,12 +22443,6 @@@ S:  Maintaine
  F:    Documentation/devicetree/bindings/input/allwinner,sun4i-a10-lradc-keys.yaml
  F:    drivers/input/keyboard/sun4i-lradc-keys.c
  
 -SUNDANCE NETWORK DRIVER
 -M:    Denis Kirjanov <[email protected]>
 -L:    [email protected]
 -S:    Maintained
 -F:    drivers/net/ethernet/dlink/sundance.c
 -
  SUNPLUS ETHERNET DRIVER
  M:    Wells Lu <[email protected]>
  L:    [email protected]
@@@ -22613,11 -22439,19 +22621,11 @@@ F:        drivers/tty/serial/8250/8250_lpss.
  
  SYNOPSYS DESIGNWARE APB GPIO DRIVER
  M:    Hoan Tran <[email protected]>
 -M:    Serge Semin <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml
  F:    drivers/gpio/gpio-dwapb.c
  
 -SYNOPSYS DESIGNWARE APB SSI DRIVER
 -M:    Serge Semin <[email protected]>
 -L:    [email protected]
 -S:    Supported
 -F:    Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.yaml
 -F:    drivers/spi/spi-dw*
 -
  SYNOPSYS DESIGNWARE AXI DMAC DRIVER
  M:    Eugeniy Paltsev <[email protected]>
  S:    Maintained
  S:    Maintained
  W:    https://linuxtv.org
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/tuners/tda18250*
  
  TDA18271 MEDIA DRIVER
@@@ -22852,7 -22686,7 +22860,7 @@@ M:   Hans Verkuil <[email protected]
  L:    [email protected]
  S:    Maintained
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/i2c/tda9840*
  
  TEA5761 TUNER DRIVER
@@@ -22860,7 -22694,7 +22868,7 @@@ M:   Mauro Carvalho Chehab <mchehab@kerne
  L:    [email protected]
  S:    Odd fixes
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/tuners/tea5761.*
  
  TEA5767 TUNER DRIVER
@@@ -22868,7 -22702,7 +22876,7 @@@ M:   Mauro Carvalho Chehab <mchehab@kerne
  L:    [email protected]
  S:    Maintained
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/tuners/tea5767.*
  
  TEA6415C MEDIA DRIVER
@@@ -22876,7 -22710,7 +22884,7 @@@ M:   Hans Verkuil <[email protected]
  L:    [email protected]
  S:    Maintained
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/i2c/tea6415c*
  
  TEA6420 MEDIA DRIVER
@@@ -22884,7 -22718,7 +22892,7 @@@ M:   Hans Verkuil <[email protected]
  L:    [email protected]
  S:    Maintained
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/i2c/tea6420*
  
  TEAM DRIVER
@@@ -23120,12 -22954,6 +23128,12 @@@ F: include/linux/dma/k3-udma-glue.
  F:    include/linux/dma/ti-cppi5.h
  X:    drivers/dma/ti/cppi41.c
  
 +TEXAS INSTRUMENTS TPS25990 HARDWARE MONITOR DRIVER
 +M:    Jerome Brunet <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/hwmon/pmbus/ti,tps25990.yaml
 +
  TEXAS INSTRUMENTS TPS23861 PoE PSE DRIVER
  M:    Robert Marko <[email protected]>
  M:    Luka Perkov <[email protected]>
@@@ -23178,7 -23006,7 +23186,7 @@@ M:   Hans Verkuil <[email protected]
  L:    [email protected]
  S:    Maintained
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/radio/radio-raremono.c
  
  THERMAL
@@@ -23254,7 -23082,7 +23262,7 @@@ M:   Laurent Pinchart <laurent.pinchart@i
  M:    Paul Elder <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/i2c/thine,thp7312.yaml
  F:    Documentation/userspace-api/media/drivers/thp7312.rst
  F:    drivers/media/i2c/thp7312.c
@@@ -23433,7 -23261,7 +23441,7 @@@ F:   Documentation/devicetree/bindings/ne
  F:    drivers/net/ethernet/ti/icssg/*
  
  TI J721E CSI2RX DRIVER
 -M:    Jai Luthra <j[email protected]>
 +M:    Jai Luthra <j[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/media/ti,j721e-csi2rx-shim.yaml
@@@ -23467,7 -23295,7 +23475,7 @@@ F:   Documentation/devicetree/bindings/ii
  F:    drivers/iio/adc/ti-lmp92064.c
  
  TI PCM3060 ASoC CODEC DRIVER
 -M:    Kirill Marinushkin <kmarinushkin@birdec.com>
 +M:    Kirill Marinushkin <k.marinushkin@gmail.com>
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/sound/pcm3060.txt
@@@ -23811,9 -23639,10 +23819,9 @@@ F:  drivers/net/tun.
  
  TURBOCHANNEL SUBSYSTEM
  M:    "Maciej W. Rozycki" <[email protected]>
 -M:    Ralf Baechle <[email protected]>
  L:    [email protected]
  S:    Maintained
 -Q:    http://patchwork.linux-mips.org/project/linux-mips/list/
 +Q:    https://patchwork.kernel.org/project/linux-mips/list/
  F:    drivers/tc/
  F:    include/linux/tc.h
  
@@@ -23840,7 -23669,7 +23848,7 @@@ M:   Hans Verkuil <[email protected]
  L:    [email protected]
  S:    Odd Fixes
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/pci/tw68/
  
  TW686X VIDEO4LINUX DRIVER
@@@ -23848,7 -23677,7 +23856,7 @@@ M:   Ezequiel Garcia <ezequiel@vanguardia
  L:    [email protected]
  S:    Maintained
  W:    http://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/pci/tw686x/
  
  U-BOOT ENVIRONMENT VARIABLES
  S:    Maintained
  F:    drivers/hid/hid-udraw-ps3.c
  
 -UFS FILESYSTEM
 -M:    Evgeniy Dushistov <[email protected]>
 -S:    Maintained
 -F:    Documentation/admin-guide/ufs.rst
 -F:    fs/ufs/
 -
  UHID USERSPACE HID IO DRIVER
  M:    David Rheinsberg <[email protected]>
  L:    [email protected]
@@@ -23950,7 -23785,6 +23958,7 @@@ UNICODE SUBSYSTE
  M:    Gabriel Krisman Bertazi <[email protected]>
  L:    [email protected]
  S:    Supported
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/krisman/unicode.git
  F:    fs/unicode/
  
  UNIFDEF
@@@ -23994,9 -23828,7 +24002,9 @@@ F:   drivers/ufs/host/*dwc
  
  UNIVERSAL FLASH STORAGE HOST CONTROLLER DRIVER EXYNOS HOOKS
  M:    Alim Akhtar <[email protected]>
 +R:    Peter Griffin <[email protected]>
  L:    [email protected]
 +L:    [email protected]
  S:    Maintained
  F:    drivers/ufs/host/ufs-exynos*
  
@@@ -24237,7 -24069,6 +24245,7 @@@ USB RAW GADGET DRIVE
  R:    Andrey Konovalov <[email protected]>
  L:    [email protected]
  S:    Maintained
 +B:    https://github.com/xairy/raw-gadget/issues
  F:    Documentation/usb/raw-gadget.rst
  F:    drivers/usb/gadget/legacy/raw_gadget.c
  F:    include/uapi/linux/usb/raw_gadget.h
@@@ -24331,11 -24162,10 +24339,11 @@@ F:        drivers/usb/host/uhci
  
  USB VIDEO CLASS
  M:    Laurent Pinchart <[email protected]>
 +M:    Hans de Goede <[email protected]>
  L:    [email protected]
  S:    Maintained
  W:    http://www.ideasonboard.org/uvc/
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/usb/uvc/
  F:    include/uapi/linux/uvcvideo.h
  
@@@ -24355,12 -24185,8 +24363,12 @@@ F: drivers/usb/host/xhci
  
  USER DATAGRAM PROTOCOL (UDP)
  M:    Willem de Bruijn <[email protected]>
 +L:    [email protected]
  S:    Maintained
  F:    include/linux/udp.h
 +F:    include/net/udp.h
 +F:    include/trace/events/udp.h
 +F:    include/uapi/linux/udp.h
  F:    net/ipv4/udp.c
  F:    net/ipv6/udp.c
  
@@@ -24387,7 -24213,6 +24395,7 @@@ F:   lib/iov_iter.
  
  USERSPACE DMA BUFFER DRIVER
  M:    Gerd Hoffmann <[email protected]>
 +M:    Vivek Kasireddy <[email protected]>
  L:    [email protected]
  S:    Maintained
  T:    git https://gitlab.freedesktop.org/drm/misc/kernel.git
@@@ -24442,7 -24267,7 +24450,7 @@@ V4L2 ASYNC AND FWNODE FRAMEWORK
  M:    Sakari Ailus <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/v4l2-core/v4l2-async.c
  F:    drivers/media/v4l2-core/v4l2-fwnode.c
  F:    include/media/v4l2-async.h
@@@ -24608,7 -24433,7 +24616,7 @@@ M:   Hans Verkuil <hverkuil-cisco@xs4all.
  L:    [email protected]
  S:    Maintained
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/test-drivers/vicodec/*
  
  VIDEO I2C POLLING DRIVER
@@@ -24636,7 -24461,7 +24644,7 @@@ M:   Daniel W. S. Almeida <dwlsalmeida@gm
  L:    [email protected]
  S:    Maintained
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/test-drivers/vidtv/*
  
  VIMC VIRTUAL MEDIA CONTROLLER DRIVER
@@@ -24645,7 -24470,7 +24653,7 @@@ R:   Kieran Bingham <kieran.bingham@ideas
  L:    [email protected]
  S:    Maintained
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/test-drivers/vimc/*
  
  VIRT LIB
@@@ -24893,7 -24718,7 +24901,7 @@@ M:   Hans Verkuil <[email protected]
  L:    [email protected]
  S:    Maintained
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/test-drivers/vivid/*
  
  VM SOCKETS (AF_VSOCK)
@@@ -24911,10 -24736,9 +24919,10 @@@ F: tools/testing/vsock
  
  VMA
  M:    Andrew Morton <[email protected]>
 -R:    Liam R. Howlett <[email protected]>
 +M:    Liam R. Howlett <[email protected]>
 +M:    Lorenzo Stoakes <[email protected]>
  R:    Vlastimil Babka <[email protected]>
 -R:    Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
 +R:    Jann Horn <jannh@google.com>
  L:    [email protected]
  S:    Maintained
  W:    https://www.linux-mm.org
@@@ -25447,7 -25271,7 +25455,7 @@@ M:   Mauro Carvalho Chehab <mchehab@kerne
  L:    [email protected]
  S:    Maintained
  W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    drivers/media/tuners/xc2028.*
  
  XDP (eXpress Data Path)
@@@ -25588,7 -25412,7 +25596,7 @@@ F:   include/xen/arm/swiotlb-xen.
  F:    include/xen/swiotlb-xen.h
  
  XFS FILESYSTEM
 -M:    Chandan Babu R <[email protected]>
 +M:    Carlos Maiolino <[email protected]>
  R:    Darrick J. Wong <[email protected]>
  L:    [email protected]
  S:    Supported
@@@ -25671,7 -25495,7 +25679,7 @@@ XILINX VIDEO IP CORE
  M:    Laurent Pinchart <[email protected]>
  L:    [email protected]
  S:    Supported
 -T:    git git://linuxtv.org/media_tree.git
 +T:    git git://linuxtv.org/media.git
  F:    Documentation/devicetree/bindings/media/xilinx/
  F:    drivers/media/platform/xilinx/
  F:    include/uapi/linux/xilinx-v4l2-controls.h
diff --combined Makefile
index 68a8faff25432ac2e2382e52a5c28da547d9eea8,00a444603fb14c7c1051063ad832ce982947015d..3be2bda148a92ca6414a2971bcb92194abbd2bbb
+++ b/Makefile
@@@ -2,7 -2,7 +2,7 @@@
  VERSION = 6
  PATCHLEVEL = 12
  SUBLEVEL = 0
 -EXTRAVERSION = -rc2
 +EXTRAVERSION =
  NAME = Baby Opossum Posse
  
  # *DOCUMENTATION*
@@@ -446,18 -446,23 +446,23 @@@ KBUILD_USERLDFLAGS := $(USERLDFLAGS
  export rust_common_flags := --edition=2021 \
                            -Zbinary_dep_depinfo=y \
                            -Astable_features \
-                           -Dunsafe_op_in_unsafe_fn \
                            -Dnon_ascii_idents \
+                           -Dunsafe_op_in_unsafe_fn \
+                           -Wmissing_docs \
                            -Wrust_2018_idioms \
                            -Wunreachable_pub \
-                           -Wmissing_docs \
-                           -Wrustdoc::missing_crate_level_docs \
                            -Wclippy::all \
+                           -Wclippy::ignored_unit_patterns \
                            -Wclippy::mut_mut \
                            -Wclippy::needless_bitwise_bool \
                            -Wclippy::needless_continue \
+                           -Aclippy::needless_lifetimes \
                            -Wclippy::no_mangle_with_rust_abi \
-                           -Wclippy::dbg_macro
+                           -Wclippy::undocumented_unsafe_blocks \
+                           -Wclippy::unnecessary_safety_comment \
+                           -Wclippy::unnecessary_safety_doc \
+                           -Wrustdoc::missing_crate_level_docs \
+                           -Wrustdoc::unescaped_backticks
  
  KBUILD_HOSTCFLAGS   := $(KBUILD_USERHOSTCFLAGS) $(HOST_LFS_CFLAGS) \
                       $(HOSTCFLAGS) -I $(srctree)/scripts/include
@@@ -582,6 -587,9 +587,9 @@@ endi
  # Allows the usage of unstable features in stable compilers.
  export RUSTC_BOOTSTRAP := 1
  
+ # Allows finding `.clippy.toml` in out-of-srctree builds.
+ export CLIPPY_CONF_DIR := $(srctree)
  export ARCH SRCARCH CONFIG_SHELL BASH HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE LD CC HOSTPKG_CONFIG
  export RUSTC RUSTDOC RUSTFMT RUSTC_OR_CLIPPY_QUIET RUSTC_OR_CLIPPY BINDGEN
  export HOSTRUSTC KBUILD_HOSTRUSTFLAGS
diff --combined rust/Makefile
index 99db963637e6c04ef63faeacc92f68713b980897,f349e7b067ea63c812496ae15f4794f0d7d16e99..01cf8e6ba3b3bdf711ac7c8e1c4dc24e44de059a
@@@ -3,7 -3,7 +3,7 @@@
  # Where to place rustdoc generated documentation
  rustdoc_output := $(objtree)/Documentation/output/rust/rustdoc
  
- obj-$(CONFIG_RUST) += core.o compiler_builtins.o
+ obj-$(CONFIG_RUST) += core.o compiler_builtins.o ffi.o
  always-$(CONFIG_RUST) += exports_core_generated.h
  
  # Missing prototypes are expected in the helpers since these are exported
@@@ -15,8 -15,8 +15,8 @@@ always-$(CONFIG_RUST) += libmacros.s
  no-clean-files += libmacros.so
  
  always-$(CONFIG_RUST) += bindings/bindings_generated.rs bindings/bindings_helpers_generated.rs
- obj-$(CONFIG_RUST) += alloc.o bindings.o kernel.o
- always-$(CONFIG_RUST) += exports_alloc_generated.h exports_helpers_generated.h \
+ obj-$(CONFIG_RUST) += bindings.o kernel.o
+ always-$(CONFIG_RUST) += exports_helpers_generated.h \
      exports_bindings_generated.h exports_kernel_generated.h
  
  always-$(CONFIG_RUST) += uapi/uapi_generated.rs
@@@ -36,8 -36,6 +36,8 @@@ always-$(CONFIG_RUST_KERNEL_DOCTESTS) +
  obj-$(CONFIG_RUST_KERNEL_DOCTESTS) += doctests_kernel_generated.o
  obj-$(CONFIG_RUST_KERNEL_DOCTESTS) += doctests_kernel_generated_kunit.o
  
 +always-$(subst y,$(CONFIG_RUST),$(CONFIG_JUMP_LABEL)) += kernel/generated_arch_static_branch_asm.rs
 +
  # Avoids running `$(RUSTC)` for the sysroot when it may not be available.
  ifdef CONFIG_RUST
  
@@@ -55,15 -53,10 +55,10 @@@ endi
  core-cfgs = \
      --cfg no_fp_fmt_parse
  
- alloc-cfgs = \
-     --cfg no_global_oom_handling \
-     --cfg no_rc \
-     --cfg no_sync
  quiet_cmd_rustdoc = RUSTDOC $(if $(rustdoc_host),H, ) $<
        cmd_rustdoc = \
        OBJTREE=$(abspath $(objtree)) \
-       $(RUSTDOC) $(if $(rustdoc_host),$(rust_common_flags),$(rust_flags)) \
+       $(RUSTDOC) $(filter-out $(skip_flags),$(if $(rustdoc_host),$(rust_common_flags),$(rust_flags))) \
                $(rustc_target_flags) -L$(objtree)/$(obj) \
                -Zunstable-options --generate-link-to-definition \
                --output $(rustdoc_output) \
@@@ -83,7 -76,7 +78,7 @@@
  # command-like flags to solve the issue. Meanwhile, we use the non-custom case
  # and then retouch the generated files.
  rustdoc: rustdoc-core rustdoc-macros rustdoc-compiler_builtins \
-     rustdoc-alloc rustdoc-kernel
+     rustdoc-kernel
        $(Q)cp $(srctree)/Documentation/images/logo.svg $(rustdoc_output)/static.files/
        $(Q)cp $(srctree)/Documentation/images/COPYING-logo $(rustdoc_output)/static.files/
        $(Q)find $(rustdoc_output) -name '*.html' -type f -print0 | xargs -0 sed -Ei \
@@@ -100,6 -93,9 +95,9 @@@ rustdoc-macros: private rustc_target_fl
  rustdoc-macros: $(src)/macros/lib.rs FORCE
        +$(call if_changed,rustdoc)
  
+ # Starting with Rust 1.82.0, skipping `-Wrustdoc::unescaped_backticks` should
+ # not be needed -- see https://github.com/rust-lang/rust/pull/128307.
+ rustdoc-core: private skip_flags = -Wrustdoc::unescaped_backticks
  rustdoc-core: private rustc_target_flags = $(core-cfgs)
  rustdoc-core: $(RUST_LIB_SRC)/core/src/lib.rs FORCE
        +$(call if_changed,rustdoc)
  rustdoc-compiler_builtins: $(src)/compiler_builtins.rs rustdoc-core FORCE
        +$(call if_changed,rustdoc)
  
- # We need to allow `rustdoc::broken_intra_doc_links` because some
- # `no_global_oom_handling` functions refer to non-`no_global_oom_handling`
- # functions. Ideally `rustdoc` would have a way to distinguish broken links
- # due to things that are "configured out" vs. entirely non-existing ones.
- rustdoc-alloc: private rustc_target_flags = $(alloc-cfgs) \
-     -Arustdoc::broken_intra_doc_links
- rustdoc-alloc: $(RUST_LIB_SRC)/alloc/src/lib.rs rustdoc-core rustdoc-compiler_builtins FORCE
+ rustdoc-ffi: $(src)/ffi.rs rustdoc-core FORCE
        +$(call if_changed,rustdoc)
  
- rustdoc-kernel: private rustc_target_flags = --extern alloc \
+ rustdoc-kernel: private rustc_target_flags = --extern ffi \
      --extern build_error --extern macros=$(objtree)/$(obj)/libmacros.so \
      --extern bindings --extern uapi
- rustdoc-kernel: $(src)/kernel/lib.rs rustdoc-core rustdoc-macros \
-     rustdoc-compiler_builtins rustdoc-alloc $(obj)/libmacros.so \
+ rustdoc-kernel: $(src)/kernel/lib.rs rustdoc-core rustdoc-ffi rustdoc-macros \
+     rustdoc-compiler_builtins $(obj)/libmacros.so \
      $(obj)/bindings.o FORCE
        +$(call if_changed,rustdoc)
  
@@@ -137,19 -127,33 +129,33 @@@ quiet_cmd_rustc_test_library = RUSTC T
  rusttestlib-build_error: $(src)/build_error.rs FORCE
        +$(call if_changed,rustc_test_library)
  
+ rusttestlib-ffi: $(src)/ffi.rs FORCE
+       +$(call if_changed,rustc_test_library)
  rusttestlib-macros: private rustc_target_flags = --extern proc_macro
  rusttestlib-macros: private rustc_test_library_proc = yes
  rusttestlib-macros: $(src)/macros/lib.rs FORCE
        +$(call if_changed,rustc_test_library)
  
- rusttestlib-bindings: $(src)/bindings/lib.rs FORCE
+ rusttestlib-kernel: private rustc_target_flags = --extern ffi \
+     --extern build_error --extern macros \
+     --extern bindings --extern uapi
+ rusttestlib-kernel: $(src)/kernel/lib.rs \
+     rusttestlib-bindings rusttestlib-uapi rusttestlib-build_error \
+     $(obj)/libmacros.so $(obj)/bindings.o FORCE
+       +$(call if_changed,rustc_test_library)
+ rusttestlib-bindings: private rustc_target_flags = --extern ffi
+ rusttestlib-bindings: $(src)/bindings/lib.rs rusttestlib-ffi FORCE
        +$(call if_changed,rustc_test_library)
  
- rusttestlib-uapi: $(src)/uapi/lib.rs FORCE
+ rusttestlib-uapi: private rustc_target_flags = --extern ffi
+ rusttestlib-uapi: $(src)/uapi/lib.rs rusttestlib-ffi FORCE
        +$(call if_changed,rustc_test_library)
  
  quiet_cmd_rustdoc_test = RUSTDOC T $<
        cmd_rustdoc_test = \
+       RUST_MODFILE=test.rs \
        OBJTREE=$(abspath $(objtree)) \
        $(RUSTDOC) --test $(rust_common_flags) \
                @$(objtree)/include/generated/rustc_cfg \
@@@ -164,7 -168,7 +170,7 @@@ quiet_cmd_rustdoc_test_kernel = RUSTDO
        mkdir -p $(objtree)/$(obj)/test/doctests/kernel; \
        OBJTREE=$(abspath $(objtree)) \
        $(RUSTDOC) --test $(rust_flags) \
-               -L$(objtree)/$(obj) --extern alloc --extern kernel \
+               -L$(objtree)/$(obj) --extern ffi --extern kernel \
                --extern build_error --extern macros \
                --extern bindings --extern uapi \
                --no-run --crate-name kernel -Zunstable-options \
@@@ -194,19 -198,20 +200,20 @@@ quiet_cmd_rustc_test = RUSTC T  $
  
  rusttest: rusttest-macros rusttest-kernel
  
- rusttest-macros: private rustc_target_flags = --extern proc_macro
+ rusttest-macros: private rustc_target_flags = --extern proc_macro \
+       --extern macros --extern kernel
  rusttest-macros: private rustdoc_test_target_flags = --crate-type proc-macro
- rusttest-macros: $(src)/macros/lib.rs FORCE
+ rusttest-macros: $(src)/macros/lib.rs \
+     rusttestlib-macros rusttestlib-kernel FORCE
        +$(call if_changed,rustc_test)
        +$(call if_changed,rustdoc_test)
  
- rusttest-kernel: private rustc_target_flags = --extern alloc \
+ rusttest-kernel: private rustc_target_flags = --extern ffi \
      --extern build_error --extern macros --extern bindings --extern uapi
- rusttest-kernel: $(src)/kernel/lib.rs \
+ rusttest-kernel: $(src)/kernel/lib.rs rusttestlib-ffi rusttestlib-kernel \
      rusttestlib-build_error rusttestlib-macros rusttestlib-bindings \
      rusttestlib-uapi FORCE
        +$(call if_changed,rustc_test)
-       +$(call if_changed,rustc_test_library)
  
  ifdef CONFIG_CC_IS_CLANG
  bindgen_c_flags = $(c_flags)
@@@ -267,12 -272,16 +274,16 @@@ els
  bindgen_c_flags_lto = $(bindgen_c_flags)
  endif
  
- bindgen_c_flags_final = $(bindgen_c_flags_lto) -D__BINDGEN__
+ # `-fno-builtin` is passed to avoid `bindgen` from using `clang` builtin
+ # prototypes for functions like `memcpy` -- if this flag is not passed,
+ # `bindgen`-generated prototypes use `c_ulong` or `c_uint` depending on
+ # architecture instead of generating `usize`.
+ bindgen_c_flags_final = $(bindgen_c_flags_lto) -fno-builtin -D__BINDGEN__
  
  quiet_cmd_bindgen = BINDGEN $@
        cmd_bindgen = \
        $(BINDGEN) $< $(bindgen_target_flags) \
-               --use-core --with-derive-default --ctypes-prefix core::ffi --no-layout-tests \
+               --use-core --with-derive-default --ctypes-prefix ffi --no-layout-tests \
                --no-debug '.*' --enable-function-attribute-detection \
                -o $@ -- $(bindgen_c_flags_final) -DMODULE \
                $(bindgen_target_cflags) $(bindgen_target_extra)
@@@ -313,9 -322,6 +324,6 @@@ quiet_cmd_exports = EXPORTS $
  $(obj)/exports_core_generated.h: $(obj)/core.o FORCE
        $(call if_changed,exports)
  
- $(obj)/exports_alloc_generated.h: $(obj)/alloc.o FORCE
-       $(call if_changed,exports)
  # Even though Rust kernel modules should never use the bindings directly,
  # symbols from the `bindings` crate and the C helpers need to be exported
  # because Rust generics and inlined functions may not get their code generated
@@@ -362,7 -368,7 +370,7 @@@ quiet_cmd_rustc_library = $(if $(skip_c
  
  rust-analyzer:
        $(Q)$(srctree)/scripts/generate_rust_analyzer.py \
-               --cfgs='core=$(core-cfgs)' --cfgs='alloc=$(alloc-cfgs)' \
+               --cfgs='core=$(core-cfgs)' \
                $(realpath $(srctree)) $(realpath $(objtree)) \
                $(rustc_sysroot) $(RUST_LIB_SRC) $(KBUILD_EXTMOD) > \
                $(if $(KBUILD_EXTMOD),$(extmod_prefix),$(objtree))/rust-project.json
@@@ -400,34 -406,29 +408,33 @@@ $(obj)/compiler_builtins.o: private rus
  $(obj)/compiler_builtins.o: $(src)/compiler_builtins.rs $(obj)/core.o FORCE
        +$(call if_changed_rule,rustc_library)
  
- $(obj)/alloc.o: private skip_clippy = 1
- $(obj)/alloc.o: private skip_flags = -Wunreachable_pub
- $(obj)/alloc.o: private rustc_target_flags = $(alloc-cfgs)
- $(obj)/alloc.o: $(RUST_LIB_SRC)/alloc/src/lib.rs $(obj)/compiler_builtins.o FORCE
+ $(obj)/build_error.o: $(src)/build_error.rs $(obj)/compiler_builtins.o FORCE
        +$(call if_changed_rule,rustc_library)
  
- $(obj)/build_error.o: $(src)/build_error.rs $(obj)/compiler_builtins.o FORCE
+ $(obj)/ffi.o: $(src)/ffi.rs $(obj)/compiler_builtins.o FORCE
        +$(call if_changed_rule,rustc_library)
  
+ $(obj)/bindings.o: private rustc_target_flags = --extern ffi
  $(obj)/bindings.o: $(src)/bindings/lib.rs \
-     $(obj)/compiler_builtins.o \
+     $(obj)/ffi.o \
      $(obj)/bindings/bindings_generated.rs \
      $(obj)/bindings/bindings_helpers_generated.rs FORCE
        +$(call if_changed_rule,rustc_library)
  
+ $(obj)/uapi.o: private rustc_target_flags = --extern ffi
  $(obj)/uapi.o: $(src)/uapi/lib.rs \
-     $(obj)/compiler_builtins.o \
+     $(obj)/ffi.o \
      $(obj)/uapi/uapi_generated.rs FORCE
        +$(call if_changed_rule,rustc_library)
  
- $(obj)/kernel.o: private rustc_target_flags = --extern alloc \
+ $(obj)/kernel.o: private rustc_target_flags = --extern ffi \
      --extern build_error --extern macros --extern bindings --extern uapi
- $(obj)/kernel.o: $(src)/kernel/lib.rs $(obj)/alloc.o $(obj)/build_error.o \
+ $(obj)/kernel.o: $(src)/kernel/lib.rs $(obj)/build_error.o \
      $(obj)/libmacros.so $(obj)/bindings.o $(obj)/uapi.o FORCE
        +$(call if_changed_rule,rustc_library)
  
 +ifdef CONFIG_JUMP_LABEL
 +$(obj)/kernel.o: $(obj)/kernel/generated_arch_static_branch_asm.rs
 +endif
 +
  endif # CONFIG_RUST
index 0e9fee0a4a277eb0fa91fe0eca71502b58563050,a80783fcbe042a28124620ce4710ed5bdc2d0790..54bc8a8c5c88a84996f0bd980fb26e8b3f85cbed
  #include <linux/blk-mq.h>
  #include <linux/blk_types.h>
  #include <linux/blkdev.h>
 +#include <linux/cred.h>
  #include <linux/errname.h>
  #include <linux/ethtool.h>
 +#include <linux/file.h>
  #include <linux/firmware.h>
 +#include <linux/fs.h>
  #include <linux/jiffies.h>
 +#include <linux/jump_label.h>
  #include <linux/mdio.h>
  #include <linux/phy.h>
 +#include <linux/pid_namespace.h>
 +#include <linux/poll.h>
  #include <linux/refcount.h>
  #include <linux/sched.h>
 +#include <linux/security.h>
  #include <linux/slab.h>
 +#include <linux/tracepoint.h>
  #include <linux/wait.h>
  #include <linux/workqueue.h>
 +#include <trace/events/rust_sample.h>
  
  /* `bindgen` gets confused at certain things. */
  const size_t RUST_CONST_HELPER_ARCH_SLAB_MINALIGN = ARCH_SLAB_MINALIGN;
@@@ -40,4 -31,5 +40,5 @@@ const gfp_t RUST_CONST_HELPER_GFP_KERNE
  const gfp_t RUST_CONST_HELPER_GFP_NOWAIT = GFP_NOWAIT;
  const gfp_t RUST_CONST_HELPER___GFP_ZERO = __GFP_ZERO;
  const gfp_t RUST_CONST_HELPER___GFP_HIGHMEM = ___GFP_HIGHMEM;
+ const gfp_t RUST_CONST_HELPER___GFP_NOWARN = ___GFP_NOWARN;
  const blk_features_t RUST_CONST_HELPER_BLK_FEAT_ROTATIONAL = BLK_FEAT_ROTATIONAL;
diff --combined rust/helpers/helpers.c
index 61102cdb2b435016e433890ea3e62bafe465fac2,20a0c69d5cc7b8775f505f94d06d06379a4583b0..dcf827a61b52e71e46fd5378878602eef5e538b6
  #include "bug.c"
  #include "build_assert.c"
  #include "build_bug.c"
 +#include "cred.c"
  #include "err.c"
 +#include "fs.c"
 +#include "jump_label.c"
  #include "kunit.c"
  #include "mutex.c"
  #include "page.c"
 +#include "pid_namespace.c"
  #include "rbtree.c"
  #include "refcount.c"
 +#include "security.c"
  #include "signal.c"
  #include "slab.c"
  #include "spinlock.c"
  #include "task.c"
  #include "uaccess.c"
+ #include "vmalloc.c"
  #include "wait.c"
  #include "workqueue.c"
diff --combined rust/helpers/spinlock.c
index 92f7fc418425315d758eb9ec04be4542a8eaad6a,b7b0945e8b3cb80e423ba1d402dc388f69e17fae..5971fdf6f75507e89eb592b5c00c7615988c8f28
@@@ -1,20 -1,15 +1,19 @@@
  // SPDX-License-Identifier: GPL-2.0
  
- #include <linux/export.h>
  #include <linux/spinlock.h>
  
  void rust_helper___spin_lock_init(spinlock_t *lock, const char *name,
                                  struct lock_class_key *key)
  {
  #ifdef CONFIG_DEBUG_SPINLOCK
 +# if defined(CONFIG_PREEMPT_RT)
 +      __spin_lock_init(lock, name, key, false);
 +# else /*!CONFIG_PREEMPT_RT */
        __raw_spin_lock_init(spinlock_check(lock), name, key, LD_WAIT_CONFIG);
 -#else
 +# endif /* CONFIG_PREEMPT_RT */
 +#else /* !CONFIG_DEBUG_SPINLOCK */
        spin_lock_init(lock);
 -#endif
 +#endif /* CONFIG_DEBUG_SPINLOCK */
  }
  
  void rust_helper_spin_lock(spinlock_t *lock)
@@@ -26,3 -21,8 +25,8 @@@ void rust_helper_spin_unlock(spinlock_
  {
        spin_unlock(lock);
  }
+ int rust_helper_spin_trylock(spinlock_t *lock)
+ {
+       return spin_trylock(lock);
+ }
diff --combined rust/helpers/task.c
index 7d66487db8312fca46c94684108d5ef921f4b30b,190fdb2c8e2f49c6a1090477edf6aa29ead0c0c0..31c33ea2dce6fbf4f03538e78f6833d457470d90
@@@ -1,6 -1,5 +1,5 @@@
  // SPDX-License-Identifier: GPL-2.0
  
- #include <linux/export.h>
  #include <linux/sched/task.h>
  
  struct task_struct *rust_helper_get_current(void)
@@@ -17,41 -16,3 +16,41 @@@ void rust_helper_put_task_struct(struc
  {
        put_task_struct(t);
  }
 +
 +kuid_t rust_helper_task_uid(struct task_struct *task)
 +{
 +      return task_uid(task);
 +}
 +
 +kuid_t rust_helper_task_euid(struct task_struct *task)
 +{
 +      return task_euid(task);
 +}
 +
 +#ifndef CONFIG_USER_NS
 +uid_t rust_helper_from_kuid(struct user_namespace *to, kuid_t uid)
 +{
 +      return from_kuid(to, uid);
 +}
 +#endif /* CONFIG_USER_NS */
 +
 +bool rust_helper_uid_eq(kuid_t left, kuid_t right)
 +{
 +      return uid_eq(left, right);
 +}
 +
 +kuid_t rust_helper_current_euid(void)
 +{
 +      return current_euid();
 +}
 +
 +struct user_namespace *rust_helper_current_user_ns(void)
 +{
 +      return current_user_ns();
 +}
 +
 +pid_t rust_helper_task_tgid_nr_ns(struct task_struct *tsk,
 +                                struct pid_namespace *ns)
 +{
 +      return task_tgid_nr_ns(tsk, ns);
 +}
diff --combined rust/kernel/lib.rs
index 661939357e8087ca217a8a2d0bdd8b1da097829d,bf8d7f841f9425d19a24f3910929839cfe705c7f..04dbee70d3e66a256240c4fb5c36b2a05d07db03
  //! do so first instead of bypassing this crate.
  
  #![no_std]
+ #![feature(arbitrary_self_types)]
  #![feature(coerce_unsized)]
  #![feature(dispatch_from_dyn)]
- #![feature(new_uninit)]
- #![feature(receiver_trait)]
+ #![feature(inline_const)]
+ #![feature(lint_reasons)]
  #![feature(unsize)]
  
  // Ensure conditional compilation based on the kernel configuration works;
@@@ -26,31 -27,27 +27,33 @@@ compile_error!("Missing kernel configur
  // Allow proc-macros to refer to `::kernel` inside the `kernel` crate (this crate).
  extern crate self as kernel;
  
+ pub use ffi;
  pub mod alloc;
  #[cfg(CONFIG_BLOCK)]
  pub mod block;
  mod build_assert;
 +pub mod cred;
  pub mod device;
  pub mod error;
  #[cfg(CONFIG_RUST_FW_LOADER_ABSTRACTIONS)]
  pub mod firmware;
 +pub mod fs;
  pub mod init;
  pub mod ioctl;
 +pub mod jump_label;
  #[cfg(CONFIG_KUNIT)]
  pub mod kunit;
  pub mod list;
  #[cfg(CONFIG_NET)]
  pub mod net;
  pub mod page;
 +pub mod pid_namespace;
  pub mod prelude;
  pub mod print;
  pub mod rbtree;
 +pub mod security;
 +pub mod seq_file;
  pub mod sizes;
  mod static_assert;
  #[doc(hidden)]
@@@ -59,7 -56,7 +62,8 @@@ pub mod str
  pub mod sync;
  pub mod task;
  pub mod time;
 +pub mod tracepoint;
+ pub mod transmute;
  pub mod types;
  pub mod uaccess;
  pub mod workqueue;
@@@ -90,7 -87,7 +94,7 @@@ pub trait Module: Sized + Sync + Send 
  
  /// Equivalent to `THIS_MODULE` in the C API.
  ///
- /// C header: [`include/linux/export.h`](srctree/include/linux/export.h)
+ /// C header: [`include/linux/init.h`](srctree/include/linux/init.h)
  pub struct ThisModule(*mut bindings::module);
  
  // SAFETY: `THIS_MODULE` may be used from all threads within a module.
@@@ -153,38 -150,3 +157,38 @@@ macro_rules! container_of 
          ptr.sub(offset) as *const $type
      }}
  }
 +
 +/// Helper for `.rs.S` files.
 +#[doc(hidden)]
 +#[macro_export]
 +macro_rules! concat_literals {
 +    ($( $asm:literal )* ) => {
 +        ::core::concat!($($asm),*)
 +    };
 +}
 +
 +/// Wrapper around `asm!` configured for use in the kernel.
 +///
 +/// Uses a semicolon to avoid parsing ambiguities, even though this does not match native `asm!`
 +/// syntax.
 +// For x86, `asm!` uses intel syntax by default, but we want to use at&t syntax in the kernel.
 +#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
 +#[macro_export]
 +macro_rules! asm {
 +    ($($asm:expr),* ; $($rest:tt)*) => {
 +        ::core::arch::asm!( $($asm)*, options(att_syntax), $($rest)* )
 +    };
 +}
 +
 +/// Wrapper around `asm!` configured for use in the kernel.
 +///
 +/// Uses a semicolon to avoid parsing ambiguities, even though this does not match native `asm!`
 +/// syntax.
 +// For non-x86 arches we just pass through to `asm!`.
 +#[cfg(not(any(target_arch = "x86", target_arch = "x86_64")))]
 +#[macro_export]
 +macro_rules! asm {
 +    ($($asm:expr),* ; $($rest:tt)*) => {
 +        ::core::arch::asm!( $($asm)*, $($rest)* )
 +    };
 +}
diff --combined rust/kernel/net/phy.rs
index 801907fba1997696b7dd01f372c6e0fe600dbe81,beb62ec712c37a82b408d46f79c798a823c5e4d8..b89c681d97c014841f1b2a2ca48ca3619f19f550
@@@ -314,7 -314,7 +314,7 @@@ impl<T: Driver> Adapter<T> 
      /// `phydev` must be passed by the corresponding callback in `phy_driver`.
      unsafe extern "C" fn soft_reset_callback(
          phydev: *mut bindings::phy_device,
-     ) -> core::ffi::c_int {
+     ) -> crate::ffi::c_int {
          from_result(|| {
              // SAFETY: This callback is called only in contexts
              // where we hold `phy_device->lock`, so the accessors on
      /// # Safety
      ///
      /// `phydev` must be passed by the corresponding callback in `phy_driver`.
-     unsafe extern "C" fn probe_callback(phydev: *mut bindings::phy_device) -> core::ffi::c_int {
+     unsafe extern "C" fn probe_callback(phydev: *mut bindings::phy_device) -> crate::ffi::c_int {
          from_result(|| {
              // SAFETY: This callback is called only in contexts
              // where we can exclusively access `phy_device` because
      /// `phydev` must be passed by the corresponding callback in `phy_driver`.
      unsafe extern "C" fn get_features_callback(
          phydev: *mut bindings::phy_device,
-     ) -> core::ffi::c_int {
+     ) -> crate::ffi::c_int {
          from_result(|| {
              // SAFETY: This callback is called only in contexts
              // where we hold `phy_device->lock`, so the accessors on
      /// # Safety
      ///
      /// `phydev` must be passed by the corresponding callback in `phy_driver`.
-     unsafe extern "C" fn suspend_callback(phydev: *mut bindings::phy_device) -> core::ffi::c_int {
+     unsafe extern "C" fn suspend_callback(phydev: *mut bindings::phy_device) -> crate::ffi::c_int {
          from_result(|| {
              // SAFETY: The C core code ensures that the accessors on
              // `Device` are okay to call even though `phy_device->lock`
      /// # Safety
      ///
      /// `phydev` must be passed by the corresponding callback in `phy_driver`.
-     unsafe extern "C" fn resume_callback(phydev: *mut bindings::phy_device) -> core::ffi::c_int {
+     unsafe extern "C" fn resume_callback(phydev: *mut bindings::phy_device) -> crate::ffi::c_int {
          from_result(|| {
              // SAFETY: The C core code ensures that the accessors on
              // `Device` are okay to call even though `phy_device->lock`
      /// `phydev` must be passed by the corresponding callback in `phy_driver`.
      unsafe extern "C" fn config_aneg_callback(
          phydev: *mut bindings::phy_device,
-     ) -> core::ffi::c_int {
+     ) -> crate::ffi::c_int {
          from_result(|| {
              // SAFETY: This callback is called only in contexts
              // where we hold `phy_device->lock`, so the accessors on
      /// `phydev` must be passed by the corresponding callback in `phy_driver`.
      unsafe extern "C" fn read_status_callback(
          phydev: *mut bindings::phy_device,
-     ) -> core::ffi::c_int {
+     ) -> crate::ffi::c_int {
          from_result(|| {
              // SAFETY: This callback is called only in contexts
              // where we hold `phy_device->lock`, so the accessors on
      /// `phydev` must be passed by the corresponding callback in `phy_driver`.
      unsafe extern "C" fn match_phy_device_callback(
          phydev: *mut bindings::phy_device,
-     ) -> core::ffi::c_int {
+     ) -> crate::ffi::c_int {
          // SAFETY: This callback is called only in contexts
          // where we hold `phy_device->lock`, so the accessors on
          // `Device` are okay to call.
@@@ -848,7 -848,9 +848,7 @@@ impl DeviceMask 
  ///     }
  /// };
  ///
 -/// #[cfg(MODULE)]
 -/// #[no_mangle]
 -/// static __mod_mdio__phydev_device_table: [::kernel::bindings::mdio_device_id; 2] = [
 +/// const _DEVICE_TABLE: [::kernel::bindings::mdio_device_id; 2] = [
  ///     ::kernel::bindings::mdio_device_id {
  ///         phy_id: 0x00000001,
  ///         phy_id_mask: 0xffffffff,
  ///         phy_id_mask: 0,
  ///     },
  /// ];
 +/// #[cfg(MODULE)]
 +/// #[no_mangle]
 +/// static __mod_mdio__phydev_device_table: [::kernel::bindings::mdio_device_id; 2] = _DEVICE_TABLE;
  /// ```
  #[macro_export]
  macro_rules! module_phy_driver {
  
      (@device_table [$($dev:expr),+]) => {
          // SAFETY: C will not read off the end of this constant since the last element is zero.
 -        #[cfg(MODULE)]
 -        #[no_mangle]
 -        static __mod_mdio__phydev_device_table: [$crate::bindings::mdio_device_id;
 +        const _DEVICE_TABLE: [$crate::bindings::mdio_device_id;
              $crate::module_phy_driver!(@count_devices $($dev),+) + 1] = [
              $($dev.mdio_device_id()),+,
              $crate::bindings::mdio_device_id {
                  phy_id_mask: 0
              }
          ];
 +
 +        #[cfg(MODULE)]
 +        #[no_mangle]
 +        static __mod_mdio__phydev_device_table: [$crate::bindings::mdio_device_id;
 +            $crate::module_phy_driver!(@count_devices $($dev),+) + 1] = _DEVICE_TABLE;
      };
  
      (drivers: [$($driver:ident),+ $(,)?], device_table: [$($dev:expr),+ $(,)?], $($f:tt)*) => {
diff --combined rust/kernel/sync.rs
index bae4a5179c721526eb492619e631c462d0aeb4ed,2bdd1cffcdab31220ea0e3805f5a27a1b59c603e..1eab7ebf25fd39d343bdab5856152177b4bfa8d4
@@@ -11,10 -11,10 +11,11 @@@ mod arc
  mod condvar;
  pub mod lock;
  mod locked_by;
 +pub mod poll;
  
  pub use arc::{Arc, ArcBorrow, UniqueArc};
  pub use condvar::{new_condvar, CondVar, CondVarTimeoutResult};
+ pub use lock::global::{global_lock, GlobalGuard, GlobalLock, GlobalLockBackend, GlobalLockedBy};
  pub use lock::mutex::{new_mutex, Mutex};
  pub use lock::spinlock::{new_spinlock, SpinLock};
  pub use locked_by::LockedBy;
diff --combined rust/kernel/sync/lock.rs
index d6e9bab114b87278491c32bbaccbff6ddcf8e289,6d3c8874eb26a9a22b3f3614364b3fe9175077e2..41dcddac69e2035777543356cd595e105c241102
@@@ -6,18 -6,16 +6,21 @@@
  //! spinlocks, raw spinlocks) to be provided with minimal effort.
  
  use super::LockClassKey;
 -use crate::{init::PinInit, pin_init, str::CStr, types::Opaque, types::ScopeGuard};
 -use core::{cell::UnsafeCell, marker::PhantomData, marker::PhantomPinned};
 +use crate::{
 +    init::PinInit,
 +    pin_init,
 +    str::CStr,
 +    types::{NotThreadSafe, Opaque, ScopeGuard},
 +};
 +use core::{cell::UnsafeCell, marker::PhantomPinned};
  use macros::pin_data;
  
  pub mod mutex;
  pub mod spinlock;
  
+ pub(super) mod global;
+ pub use global::{GlobalGuard, GlobalLock, GlobalLockBackend, GlobalLockedBy};
  /// The "backend" of a lock.
  ///
  /// It is the actual implementation of the lock, without the need to repeat patterns used in all
@@@ -51,7 -49,7 +54,7 @@@ pub unsafe trait Backend 
      /// remain valid for read indefinitely.
      unsafe fn init(
          ptr: *mut Self::State,
-         name: *const core::ffi::c_char,
+         name: *const crate::ffi::c_char,
          key: *mut bindings::lock_class_key,
      );
  
      #[must_use]
      unsafe fn lock(ptr: *mut Self::State) -> Self::GuardState;
  
+     /// Tries to acquire the lock.
+     ///
+     /// # Safety
+     ///
+     /// Callers must ensure that [`Backend::init`] has been previously called.
+     unsafe fn try_lock(ptr: *mut Self::State) -> Option<Self::GuardState>;
      /// Releases the lock, giving up its ownership.
      ///
      /// # Safety
@@@ -133,6 -138,15 +143,15 @@@ impl<T: ?Sized, B: Backend> Lock<T, B> 
          // SAFETY: The lock was just acquired.
          unsafe { Guard::new(self, state) }
      }
+     /// Tries to acquire the lock.
+     ///
+     /// Returns a guard that can be used to access the data protected by the lock if successful.
+     pub fn try_lock(&self) -> Option<Guard<'_, T, B>> {
+         // SAFETY: The constructor of the type calls `init`, so the existence of the object proves
+         // that `init` was called.
+         unsafe { B::try_lock(self.state.get()).map(|state| Guard::new(self, state)) }
+     }
  }
  
  /// A lock guard.
  pub struct Guard<'a, T: ?Sized, B: Backend> {
      pub(crate) lock: &'a Lock<T, B>,
      pub(crate) state: B::GuardState,
 -    _not_send: PhantomData<*mut ()>,
 +    _not_send: NotThreadSafe,
  }
  
  // SAFETY: `Guard` is sync when the data protected by the lock is also sync.
@@@ -155,9 -169,9 +174,9 @@@ impl<T: ?Sized, B: Backend> Guard<'_, T
          // SAFETY: The caller owns the lock, so it is safe to unlock it.
          unsafe { B::unlock(self.lock.state.get(), &self.state) };
  
-         // SAFETY: The lock was just unlocked above and is being relocked now.
-         let _relock =
-             ScopeGuard::new(|| unsafe { B::relock(self.lock.state.get(), &mut self.state) });
+         let _relock = ScopeGuard::new(||
+                 // SAFETY: The lock was just unlocked above and is being relocked now.
+                 unsafe { B::relock(self.lock.state.get(), &mut self.state) });
  
          cb()
      }
@@@ -196,7 -210,7 +215,7 @@@ impl<'a, T: ?Sized, B: Backend> Guard<'
          Self {
              lock,
              state,
 -            _not_send: PhantomData,
 +            _not_send: NotThreadSafe,
          }
      }
  }
diff --combined rust/kernel/task.rs
index c1163237a4aa6e4970458558378037d249c13bb9,5bce090a386977596c3007bb7531d78c94fee181..7a76be58312692d9cb116a066870358db563a041
@@@ -4,17 -4,9 +4,13 @@@
  //!
  //! C header: [`include/linux/sched.h`](srctree/include/linux/sched.h).
  
- use core::{
-     cmp::{Eq, PartialEq},
-     ffi::{c_int, c_long, c_uint},
-     ops::Deref,
-     ptr,
- };
 +use crate::{
 +    bindings,
 +    pid_namespace::PidNamespace,
 +    types::{ARef, NotThreadSafe, Opaque},
 +};
 -use crate::types::Opaque;
 -use core::{marker::PhantomData, ops::Deref, ptr};
+ use crate::ffi::{c_int, c_long, c_uint};
++use core::{cmp::{Eq, PartialEq},ops::Deref, ptr};
  
  /// A sentinel value used for infinite timeouts.
  pub const MAX_SCHEDULE_TIMEOUT: c_long = c_long::MAX;
@@@ -37,16 -29,6 +33,16 @@@ macro_rules! current 
      };
  }
  
 +/// Returns the currently running task's pid namespace.
 +#[macro_export]
 +macro_rules! current_pid_ns {
 +    () => {
 +        // SAFETY: Deref + addr-of below create a temporary `PidNamespaceRef` that cannot outlive
 +        // the caller.
 +        unsafe { &*$crate::task::Task::current_pid_ns() }
 +    };
 +}
 +
  /// Wraps the kernel's `struct task_struct`.
  ///
  /// # Invariants
@@@ -108,22 -90,7 +104,22 @@@ unsafe impl Sync for Task {
  /// The type of process identifiers (PIDs).
  type Pid = bindings::pid_t;
  
 +/// The type of user identifiers (UIDs).
 +#[derive(Copy, Clone)]
 +pub struct Kuid {
 +    kuid: bindings::kuid_t,
 +}
 +
  impl Task {
 +    /// Returns a raw pointer to the current task.
 +    ///
 +    /// It is up to the user to use the pointer correctly.
 +    #[inline]
 +    pub fn current_raw() -> *mut bindings::task_struct {
 +        // SAFETY: Getting the current pointer is always safe.
 +        unsafe { bindings::get_current() }
 +    }
 +
      /// Returns a task reference for the currently executing task/thread.
      ///
      /// The recommended way to get the current task/thread is to use the
      pub unsafe fn current() -> impl Deref<Target = Task> {
          struct TaskRef<'a> {
              task: &'a Task,
 -            _not_send: PhantomData<*mut ()>,
 +            _not_send: NotThreadSafe,
          }
  
          impl Deref for TaskRef<'_> {
              }
          }
  
 -        // SAFETY: Just an FFI call with no additional safety requirements.
 -        let ptr = unsafe { bindings::get_current() };
 -
 +        let current = Task::current_raw();
          TaskRef {
              // SAFETY: If the current thread is still running, the current task is valid. Given
              // that `TaskRef` is not `Send`, we know it cannot be transferred to another thread
              // (where it could potentially outlive the caller).
 -            task: unsafe { &*ptr.cast() },
 -            _not_send: PhantomData,
 +            task: unsafe { &*current.cast() },
 +            _not_send: NotThreadSafe,
 +        }
 +    }
 +
 +    /// Returns a PidNamespace reference for the currently executing task's/thread's pid namespace.
 +    ///
 +    /// This function can be used to create an unbounded lifetime by e.g., storing the returned
 +    /// PidNamespace in a global variable which would be a bug. So the recommended way to get the
 +    /// current task's/thread's pid namespace is to use the [`current_pid_ns`] macro because it is
 +    /// safe.
 +    ///
 +    /// # Safety
 +    ///
 +    /// Callers must ensure that the returned object doesn't outlive the current task/thread.
 +    pub unsafe fn current_pid_ns() -> impl Deref<Target = PidNamespace> {
 +        struct PidNamespaceRef<'a> {
 +            task: &'a PidNamespace,
 +            _not_send: NotThreadSafe,
 +        }
 +
 +        impl Deref for PidNamespaceRef<'_> {
 +            type Target = PidNamespace;
 +
 +            fn deref(&self) -> &Self::Target {
 +                self.task
 +            }
 +        }
 +
 +        // The lifetime of `PidNamespace` is bound to `Task` and `struct pid`.
 +        //
 +        // The `PidNamespace` of a `Task` doesn't ever change once the `Task` is alive. A
 +        // `unshare(CLONE_NEWPID)` or `setns(fd_pidns/pidfd, CLONE_NEWPID)` will not have an effect
 +        // on the calling `Task`'s pid namespace. It will only effect the pid namespace of children
 +        // created by the calling `Task`. This invariant guarantees that after having acquired a
 +        // reference to a `Task`'s pid namespace it will remain unchanged.
 +        //
 +        // When a task has exited and been reaped `release_task()` will be called. This will set
 +        // the `PidNamespace` of the task to `NULL`. So retrieving the `PidNamespace` of a task
 +        // that is dead will return `NULL`. Note, that neither holding the RCU lock nor holding a
 +        // referencing count to
 +        // the `Task` will prevent `release_task()` being called.
 +        //
 +        // In order to retrieve the `PidNamespace` of a `Task` the `task_active_pid_ns()` function
 +        // can be used. There are two cases to consider:
 +        //
 +        // (1) retrieving the `PidNamespace` of the `current` task
 +        // (2) retrieving the `PidNamespace` of a non-`current` task
 +        //
 +        // From system call context retrieving the `PidNamespace` for case (1) is always safe and
 +        // requires neither RCU locking nor a reference count to be held. Retrieving the
 +        // `PidNamespace` after `release_task()` for current will return `NULL` but no codepath
 +        // like that is exposed to Rust.
 +        //
 +        // Retrieving the `PidNamespace` from system call context for (2) requires RCU protection.
 +        // Accessing `PidNamespace` outside of RCU protection requires a reference count that
 +        // must've been acquired while holding the RCU lock. Note that accessing a non-`current`
 +        // task means `NULL` can be returned as the non-`current` task could have already passed
 +        // through `release_task()`.
 +        //
 +        // To retrieve (1) the `current_pid_ns!()` macro should be used which ensure that the
 +        // returned `PidNamespace` cannot outlive the calling scope. The associated
 +        // `current_pid_ns()` function should not be called directly as it could be abused to
 +        // created an unbounded lifetime for `PidNamespace`. The `current_pid_ns!()` macro allows
 +        // Rust to handle the common case of accessing `current`'s `PidNamespace` without RCU
 +        // protection and without having to acquire a reference count.
 +        //
 +        // For (2) the `task_get_pid_ns()` method must be used. This will always acquire a
 +        // reference on `PidNamespace` and will return an `Option` to force the caller to
 +        // explicitly handle the case where `PidNamespace` is `None`, something that tends to be
 +        // forgotten when doing the equivalent operation in `C`. Missing RCU primitives make it
 +        // difficult to perform operations that are otherwise safe without holding a reference
 +        // count as long as RCU protection is guaranteed. But it is not important currently. But we
 +        // do want it in the future.
 +        //
 +        // Note for (2) the required RCU protection around calling `task_active_pid_ns()`
 +        // synchronizes against putting the last reference of the associated `struct pid` of
 +        // `task->thread_pid`. The `struct pid` stored in that field is used to retrieve the
 +        // `PidNamespace` of the caller. When `release_task()` is called `task->thread_pid` will be
 +        // `NULL`ed and `put_pid()` on said `struct pid` will be delayed in `free_pid()` via
 +        // `call_rcu()` allowing everyone with an RCU protected access to the `struct pid` acquired
 +        // from `task->thread_pid` to finish.
 +        //
 +        // SAFETY: The current task's pid namespace is valid as long as the current task is running.
 +        let pidns = unsafe { bindings::task_active_pid_ns(Task::current_raw()) };
 +        PidNamespaceRef {
 +            // SAFETY: If the current thread is still running, the current task and its associated
 +            // pid namespace are valid. `PidNamespaceRef` is not `Send`, so we know it cannot be
 +            // transferred to another thread (where it could potentially outlive the current
 +            // `Task`). The caller needs to ensure that the PidNamespaceRef doesn't outlive the
 +            // current task/thread.
 +            task: unsafe { PidNamespace::from_ptr(pidns) },
 +            _not_send: NotThreadSafe,
          }
      }
  
 +    /// Returns a raw pointer to the task.
 +    #[inline]
 +    pub fn as_ptr(&self) -> *mut bindings::task_struct {
 +        self.0.get()
 +    }
 +
      /// Returns the group leader of the given task.
      pub fn group_leader(&self) -> &Task {
 -        // SAFETY: By the type invariant, we know that `self.0` is a valid task. Valid tasks always
 -        // have a valid `group_leader`.
 -        let ptr = unsafe { *ptr::addr_of!((*self.0.get()).group_leader) };
 +        // SAFETY: The group leader of a task never changes after initialization, so reading this
 +        // field is not a data race.
 +        let ptr = unsafe { *ptr::addr_of!((*self.as_ptr()).group_leader) };
  
          // SAFETY: The lifetime of the returned task reference is tied to the lifetime of `self`,
          // and given that a task has a reference to its group leader, we know it must be valid for
  
      /// Returns the PID of the given task.
      pub fn pid(&self) -> Pid {
 -        // SAFETY: By the type invariant, we know that `self.0` is a valid task. Valid tasks always
 -        // have a valid pid.
 -        unsafe { *ptr::addr_of!((*self.0.get()).pid) }
 +        // SAFETY: The pid of a task never changes after initialization, so reading this field is
 +        // not a data race.
 +        unsafe { *ptr::addr_of!((*self.as_ptr()).pid) }
 +    }
 +
 +    /// Returns the UID of the given task.
 +    pub fn uid(&self) -> Kuid {
 +        // SAFETY: It's always safe to call `task_uid` on a valid task.
 +        Kuid::from_raw(unsafe { bindings::task_uid(self.as_ptr()) })
 +    }
 +
 +    /// Returns the effective UID of the given task.
 +    pub fn euid(&self) -> Kuid {
 +        // SAFETY: It's always safe to call `task_euid` on a valid task.
 +        Kuid::from_raw(unsafe { bindings::task_euid(self.as_ptr()) })
      }
  
      /// Determines whether the given task has pending signals.
      pub fn signal_pending(&self) -> bool {
 +        // SAFETY: It's always safe to call `signal_pending` on a valid task.
 +        unsafe { bindings::signal_pending(self.as_ptr()) != 0 }
 +    }
 +
 +    /// Returns task's pid namespace with elevated reference count
 +    pub fn get_pid_ns(&self) -> Option<ARef<PidNamespace>> {
          // SAFETY: By the type invariant, we know that `self.0` is valid.
 -        unsafe { bindings::signal_pending(self.0.get()) != 0 }
 +        let ptr = unsafe { bindings::task_get_pid_ns(self.as_ptr()) };
 +        if ptr.is_null() {
 +            None
 +        } else {
 +            // SAFETY: `ptr` is valid by the safety requirements of this function. And we own a
 +            // reference count via `task_get_pid_ns()`.
 +            // CAST: `Self` is a `repr(transparent)` wrapper around `bindings::pid_namespace`.
 +            Some(unsafe { ARef::from_raw(ptr::NonNull::new_unchecked(ptr.cast::<PidNamespace>())) })
 +        }
 +    }
 +
 +    /// Returns the given task's pid in the provided pid namespace.
 +    #[doc(alias = "task_tgid_nr_ns")]
 +    pub fn tgid_nr_ns(&self, pidns: Option<&PidNamespace>) -> Pid {
 +        let pidns = match pidns {
 +            Some(pidns) => pidns.as_ptr(),
 +            None => core::ptr::null_mut(),
 +        };
 +        // SAFETY: By the type invariant, we know that `self.0` is valid. We received a valid
 +        // PidNamespace that we can use as a pointer or we received an empty PidNamespace and
 +        // thus pass a null pointer. The underlying C function is safe to be used with NULL
 +        // pointers.
 +        unsafe { bindings::task_tgid_nr_ns(self.as_ptr(), pidns) }
      }
  
      /// Wakes up the task.
      pub fn wake_up(&self) {
 -        // SAFETY: By the type invariant, we know that `self.0.get()` is non-null and valid.
 -        // And `wake_up_process` is safe to be called for any valid task, even if the task is
 +        // SAFETY: It's always safe to call `signal_pending` on a valid task, even if the task
          // running.
 -        unsafe { bindings::wake_up_process(self.0.get()) };
 +        unsafe { bindings::wake_up_process(self.as_ptr()) };
      }
  }
  
  unsafe impl crate::types::AlwaysRefCounted for Task {
      fn inc_ref(&self) {
          // SAFETY: The existence of a shared reference means that the refcount is nonzero.
 -        unsafe { bindings::get_task_struct(self.0.get()) };
 +        unsafe { bindings::get_task_struct(self.as_ptr()) };
      }
  
      unsafe fn dec_ref(obj: ptr::NonNull<Self>) {
          unsafe { bindings::put_task_struct(obj.cast().as_ptr()) }
      }
  }
 +
 +impl Kuid {
 +    /// Get the current euid.
 +    #[inline]
 +    pub fn current_euid() -> Kuid {
 +        // SAFETY: Just an FFI call.
 +        Self::from_raw(unsafe { bindings::current_euid() })
 +    }
 +
 +    /// Create a `Kuid` given the raw C type.
 +    #[inline]
 +    pub fn from_raw(kuid: bindings::kuid_t) -> Self {
 +        Self { kuid }
 +    }
 +
 +    /// Turn this kuid into the raw C type.
 +    #[inline]
 +    pub fn into_raw(self) -> bindings::kuid_t {
 +        self.kuid
 +    }
 +
 +    /// Converts this kernel UID into a userspace UID.
 +    ///
 +    /// Uses the namespace of the current task.
 +    #[inline]
 +    pub fn into_uid_in_current_ns(self) -> bindings::uid_t {
 +        // SAFETY: Just an FFI call.
 +        unsafe { bindings::from_kuid(bindings::current_user_ns(), self.kuid) }
 +    }
 +}
 +
 +impl PartialEq for Kuid {
 +    #[inline]
 +    fn eq(&self, other: &Kuid) -> bool {
 +        // SAFETY: Just an FFI call.
 +        unsafe { bindings::uid_eq(self.kuid, other.kuid) }
 +    }
 +}
 +
 +impl Eq for Kuid {}
diff --combined rust/kernel/types.rs
index 3238ffaab031be09a3c264e7016c65fd4958464b,a7eaa29f08a40a0f46d616c5b6aab8f9897a0f62..7a133d938551f95c9768c7fe2e592bc867c9ea0d
@@@ -3,13 -3,11 +3,11 @@@
  //! Kernel types.
  
  use crate::init::{self, PinInit};
- use alloc::boxed::Box;
  use core::{
      cell::UnsafeCell,
      marker::{PhantomData, PhantomPinned},
      mem::{ManuallyDrop, MaybeUninit},
      ops::{Deref, DerefMut},
-     pin::Pin,
      ptr::NonNull,
  };
  
@@@ -31,7 -29,7 +29,7 @@@ pub trait ForeignOwnable: Sized 
      /// For example, it might be invalid, dangling or pointing to uninitialized memory. Using it in
      /// any way except for [`ForeignOwnable::from_foreign`], [`ForeignOwnable::borrow`],
      /// [`ForeignOwnable::try_from_foreign`] can result in undefined behavior.
-     fn into_foreign(self) -> *const core::ffi::c_void;
+     fn into_foreign(self) -> *const crate::ffi::c_void;
  
      /// Borrows a foreign-owned object.
      ///
@@@ -39,7 -37,7 +37,7 @@@
      ///
      /// `ptr` must have been returned by a previous call to [`ForeignOwnable::into_foreign`] for
      /// which a previous matching [`ForeignOwnable::from_foreign`] hasn't been called yet.
-     unsafe fn borrow<'a>(ptr: *const core::ffi::c_void) -> Self::Borrowed<'a>;
+     unsafe fn borrow<'a>(ptr: *const crate::ffi::c_void) -> Self::Borrowed<'a>;
  
      /// Converts a foreign-owned object back to a Rust-owned one.
      ///
@@@ -49,7 -47,7 +47,7 @@@
      /// which a previous matching [`ForeignOwnable::from_foreign`] hasn't been called yet.
      /// Additionally, all instances (if any) of values returned by [`ForeignOwnable::borrow`] for
      /// this object must have been dropped.
-     unsafe fn from_foreign(ptr: *const core::ffi::c_void) -> Self;
+     unsafe fn from_foreign(ptr: *const crate::ffi::c_void) -> Self;
  
      /// Tries to convert a foreign-owned object back to a Rust-owned one.
      ///
@@@ -60,7 -58,7 +58,7 @@@
      ///
      /// `ptr` must either be null or satisfy the safety requirements for
      /// [`ForeignOwnable::from_foreign`].
-     unsafe fn try_from_foreign(ptr: *const core::ffi::c_void) -> Option<Self> {
+     unsafe fn try_from_foreign(ptr: *const crate::ffi::c_void) -> Option<Self> {
          if ptr.is_null() {
              None
          } else {
      }
  }
  
- impl<T: 'static> ForeignOwnable for Box<T> {
-     type Borrowed<'a> = &'a T;
-     fn into_foreign(self) -> *const core::ffi::c_void {
-         Box::into_raw(self) as _
-     }
-     unsafe fn borrow<'a>(ptr: *const core::ffi::c_void) -> &'a T {
-         // SAFETY: The safety requirements for this function ensure that the object is still alive,
-         // so it is safe to dereference the raw pointer.
-         // The safety requirements of `from_foreign` also ensure that the object remains alive for
-         // the lifetime of the returned value.
-         unsafe { &*ptr.cast() }
-     }
-     unsafe fn from_foreign(ptr: *const core::ffi::c_void) -> Self {
-         // SAFETY: The safety requirements of this function ensure that `ptr` comes from a previous
-         // call to `Self::into_foreign`.
-         unsafe { Box::from_raw(ptr as _) }
-     }
- }
- impl<T: 'static> ForeignOwnable for Pin<Box<T>> {
-     type Borrowed<'a> = Pin<&'a T>;
-     fn into_foreign(self) -> *const core::ffi::c_void {
-         // SAFETY: We are still treating the box as pinned.
-         Box::into_raw(unsafe { Pin::into_inner_unchecked(self) }) as _
-     }
-     unsafe fn borrow<'a>(ptr: *const core::ffi::c_void) -> Pin<&'a T> {
-         // SAFETY: The safety requirements for this function ensure that the object is still alive,
-         // so it is safe to dereference the raw pointer.
-         // The safety requirements of `from_foreign` also ensure that the object remains alive for
-         // the lifetime of the returned value.
-         let r = unsafe { &*ptr.cast() };
-         // SAFETY: This pointer originates from a `Pin<Box<T>>`.
-         unsafe { Pin::new_unchecked(r) }
-     }
-     unsafe fn from_foreign(ptr: *const core::ffi::c_void) -> Self {
-         // SAFETY: The safety requirements of this function ensure that `ptr` comes from a previous
-         // call to `Self::into_foreign`.
-         unsafe { Pin::new_unchecked(Box::from_raw(ptr as _)) }
-     }
- }
  impl ForeignOwnable for () {
      type Borrowed<'a> = ();
  
-     fn into_foreign(self) -> *const core::ffi::c_void {
+     fn into_foreign(self) -> *const crate::ffi::c_void {
          core::ptr::NonNull::dangling().as_ptr()
      }
  
-     unsafe fn borrow<'a>(_: *const core::ffi::c_void) -> Self::Borrowed<'a> {}
+     unsafe fn borrow<'a>(_: *const crate::ffi::c_void) -> Self::Borrowed<'a> {}
  
-     unsafe fn from_foreign(_: *const core::ffi::c_void) -> Self {}
+     unsafe fn from_foreign(_: *const crate::ffi::c_void) -> Self {}
  }
  
  /// Runs a cleanup function/closure when dropped.
  /// # use kernel::types::ScopeGuard;
  /// fn example3(arg: bool) -> Result {
  ///     let mut vec =
- ///         ScopeGuard::new_with_data(Vec::new(), |v| pr_info!("vec had {} elements\n", v.len()));
+ ///         ScopeGuard::new_with_data(KVec::new(), |v| pr_info!("vec had {} elements\n", v.len()));
  ///
  ///     vec.push(10u8, GFP_KERNEL)?;
  ///     if arg {
@@@ -225,7 -175,7 +175,7 @@@ impl<T, F: FnOnce(T)> ScopeGuard<T, F> 
  impl ScopeGuard<(), fn(())> {
      /// Creates a new guarded object with the given cleanup function.
      pub fn new(cleanup: impl FnOnce()) -> ScopeGuard<(), impl FnOnce(())> {
-         ScopeGuard::new_with_data((), move |_| cleanup())
+         ScopeGuard::new_with_data((), move |()| cleanup())
      }
  }
  
@@@ -256,7 -206,58 +206,58 @@@ impl<T, F: FnOnce(T)> Drop for ScopeGua
  
  /// Stores an opaque value.
  ///
- /// This is meant to be used with FFI objects that are never interpreted by Rust code.
+ /// `Opaque<T>` is meant to be used with FFI objects that are never interpreted by Rust code.
+ ///
+ /// It is used to wrap structs from the C side, like for example `Opaque<bindings::mutex>`.
+ /// It gets rid of all the usual assumptions that Rust has for a value:
+ ///
+ /// * The value is allowed to be uninitialized (for example have invalid bit patterns: `3` for a
+ ///   [`bool`]).
+ /// * The value is allowed to be mutated, when a `&Opaque<T>` exists on the Rust side.
+ /// * No uniqueness for mutable references: it is fine to have multiple `&mut Opaque<T>` point to
+ ///   the same value.
+ /// * The value is not allowed to be shared with other threads (i.e. it is `!Sync`).
+ ///
+ /// This has to be used for all values that the C side has access to, because it can't be ensured
+ /// that the C side is adhering to the usual constraints that Rust needs.
+ ///
+ /// Using `Opaque<T>` allows to continue to use references on the Rust side even for values shared
+ /// with C.
+ ///
+ /// # Examples
+ ///
+ /// ```
+ /// # #![expect(unreachable_pub, clippy::disallowed_names)]
+ /// use kernel::types::Opaque;
+ /// # // Emulate a C struct binding which is from C, maybe uninitialized or not, only the C side
+ /// # // knows.
+ /// # mod bindings {
+ /// #     pub struct Foo {
+ /// #         pub val: u8,
+ /// #     }
+ /// # }
+ ///
+ /// // `foo.val` is assumed to be handled on the C side, so we use `Opaque` to wrap it.
+ /// pub struct Foo {
+ ///     foo: Opaque<bindings::Foo>,
+ /// }
+ ///
+ /// impl Foo {
+ ///     pub fn get_val(&self) -> u8 {
+ ///         let ptr = Opaque::get(&self.foo);
+ ///
+ ///         // SAFETY: `Self` is valid from C side.
+ ///         unsafe { (*ptr).val }
+ ///     }
+ /// }
+ ///
+ /// // Create an instance of `Foo` with the `Opaque` wrapper.
+ /// let foo = Foo {
+ ///     foo: Opaque::new(bindings::Foo { val: 0xdb }),
+ /// };
+ ///
+ /// assert_eq!(foo.get_val(), 0xdb);
+ /// ```
  #[repr(transparent)]
  pub struct Opaque<T> {
      value: UnsafeCell<MaybeUninit<T>>,
@@@ -410,6 -411,7 +411,7 @@@ impl<T: AlwaysRefCounted> ARef<T> 
      ///
      /// struct Empty {}
      ///
+     /// # // SAFETY: TODO.
      /// unsafe impl AlwaysRefCounted for Empty {
      ///     fn inc_ref(&self) {}
      ///     unsafe fn dec_ref(_obj: NonNull<Self>) {}
      ///
      /// let mut data = Empty {};
      /// let ptr = NonNull::<Empty>::new(&mut data as *mut _).unwrap();
+     /// # // SAFETY: TODO.
      /// let data_ref: ARef<Empty> = unsafe { ARef::from_raw(ptr) };
      /// let raw_ptr: NonNull<Empty> = ARef::into_raw(data_ref);
      ///
@@@ -461,6 -464,15 +464,15 @@@ impl<T: AlwaysRefCounted> Drop for ARef
  }
  
  /// A sum type that always holds either a value of type `L` or `R`.
+ ///
+ /// # Examples
+ ///
+ /// ```
+ /// use kernel::types::Either;
+ ///
+ /// let left_value: Either<i32, &str> = Either::Left(7);
+ /// let right_value: Either<i32, &str> = Either::Right("right value");
+ /// ```
  pub enum Either<L, R> {
      /// Constructs an instance of [`Either`] containing a value of type `L`.
      Left(L),
      /// Constructs an instance of [`Either`] containing a value of type `R`.
      Right(R),
  }
- /// Types for which any bit pattern is valid.
- ///
- /// Not all types are valid for all values. For example, a `bool` must be either zero or one, so
- /// reading arbitrary bytes into something that contains a `bool` is not okay.
- ///
- /// It's okay for the type to have padding, as initializing those bytes has no effect.
- ///
- /// # Safety
- ///
- /// All bit-patterns must be valid for this type. This type must not have interior mutability.
- pub unsafe trait FromBytes {}
- // SAFETY: All bit patterns are acceptable values of the types below.
- unsafe impl FromBytes for u8 {}
- unsafe impl FromBytes for u16 {}
- unsafe impl FromBytes for u32 {}
- unsafe impl FromBytes for u64 {}
- unsafe impl FromBytes for usize {}
- unsafe impl FromBytes for i8 {}
- unsafe impl FromBytes for i16 {}
- unsafe impl FromBytes for i32 {}
- unsafe impl FromBytes for i64 {}
- unsafe impl FromBytes for isize {}
- // SAFETY: If all bit patterns are acceptable for individual values in an array, then all bit
- // patterns are also acceptable for arrays of that type.
- unsafe impl<T: FromBytes> FromBytes for [T] {}
- unsafe impl<T: FromBytes, const N: usize> FromBytes for [T; N] {}
- /// Types that can be viewed as an immutable slice of initialized bytes.
- ///
- /// If a struct implements this trait, then it is okay to copy it byte-for-byte to userspace. This
- /// means that it should not have any padding, as padding bytes are uninitialized. Reading
- /// uninitialized memory is not just undefined behavior, it may even lead to leaking sensitive
- /// information on the stack to userspace.
- ///
- /// The struct should also not hold kernel pointers, as kernel pointer addresses are also considered
- /// sensitive. However, leaking kernel pointers is not considered undefined behavior by Rust, so
- /// this is a correctness requirement, but not a safety requirement.
- ///
- /// # Safety
- ///
- /// Values of this type may not contain any uninitialized bytes. This type must not have interior
- /// mutability.
- pub unsafe trait AsBytes {}
- // SAFETY: Instances of the following types have no uninitialized portions.
- unsafe impl AsBytes for u8 {}
- unsafe impl AsBytes for u16 {}
- unsafe impl AsBytes for u32 {}
- unsafe impl AsBytes for u64 {}
- unsafe impl AsBytes for usize {}
- unsafe impl AsBytes for i8 {}
- unsafe impl AsBytes for i16 {}
- unsafe impl AsBytes for i32 {}
- unsafe impl AsBytes for i64 {}
- unsafe impl AsBytes for isize {}
- unsafe impl AsBytes for bool {}
- unsafe impl AsBytes for char {}
- unsafe impl AsBytes for str {}
- // SAFETY: If individual values in an array have no uninitialized portions, then the array itself
- // does not have any uninitialized portions either.
- unsafe impl<T: AsBytes> AsBytes for [T] {}
- unsafe impl<T: AsBytes, const N: usize> AsBytes for [T; N] {}
 +
 +/// Zero-sized type to mark types not [`Send`].
 +///
 +/// Add this type as a field to your struct if your type should not be sent to a different task.
 +/// Since [`Send`] is an auto trait, adding a single field that is `!Send` will ensure that the
 +/// whole type is `!Send`.
 +///
 +/// If a type is `!Send` it is impossible to give control over an instance of the type to another
 +/// task. This is useful to include in types that store or reference task-local information. A file
 +/// descriptor is an example of such task-local information.
 +///
 +/// This type also makes the type `!Sync`, which prevents immutable access to the value from
 +/// several threads in parallel.
 +pub type NotThreadSafe = PhantomData<*mut ()>;
 +
 +/// Used to construct instances of type [`NotThreadSafe`] similar to how `PhantomData` is
 +/// constructed.
 +///
 +/// [`NotThreadSafe`]: type@NotThreadSafe
 +#[allow(non_upper_case_globals)]
 +pub const NotThreadSafe: NotThreadSafe = PhantomData;
index 6d14b08cac1c2918b2f03ccff27910ffe54c515d,0000000000000000000000000000000000000000..aed90a6feecfa7e02c72cdb6ef6e194236b96643
mode 100644,000000..100644
--- /dev/null
@@@ -1,98 -1,0 +1,99 @@@
 +// SPDX-License-Identifier: GPL-2.0
 +
 +//! Rust printing macros sample.
 +
 +use kernel::pr_cont;
 +use kernel::prelude::*;
 +
 +module! {
 +    type: RustPrint,
 +    name: "rust_print",
 +    author: "Rust for Linux Contributors",
 +    description: "Rust printing macros sample",
 +    license: "GPL",
 +}
 +
 +struct RustPrint;
 +
++#[expect(clippy::disallowed_macros)]
 +fn arc_print() -> Result {
 +    use kernel::sync::*;
 +
 +    let a = Arc::new(1, GFP_KERNEL)?;
 +    let b = UniqueArc::new("hello, world", GFP_KERNEL)?;
 +
 +    // Prints the value of data in `a`.
 +    pr_info!("{}", a);
 +
 +    // Uses ":?" to print debug fmt of `b`.
 +    pr_info!("{:?}", b);
 +
 +    let a: Arc<&str> = b.into();
 +    let c = a.clone();
 +
 +    // Uses `dbg` to print, will move `c` (for temporary debugging purposes).
 +    dbg!(c);
 +
 +    // Pretty-prints the debug formatting with lower-case hexadecimal integers.
 +    pr_info!("{:#x?}", a);
 +
 +    Ok(())
 +}
 +
 +impl kernel::Module for RustPrint {
 +    fn init(_module: &'static ThisModule) -> Result<Self> {
 +        pr_info!("Rust printing macros sample (init)\n");
 +
 +        pr_emerg!("Emergency message (level 0) without args\n");
 +        pr_alert!("Alert message (level 1) without args\n");
 +        pr_crit!("Critical message (level 2) without args\n");
 +        pr_err!("Error message (level 3) without args\n");
 +        pr_warn!("Warning message (level 4) without args\n");
 +        pr_notice!("Notice message (level 5) without args\n");
 +        pr_info!("Info message (level 6) without args\n");
 +
 +        pr_info!("A line that");
 +        pr_cont!(" is continued");
 +        pr_cont!(" without args\n");
 +
 +        pr_emerg!("{} message (level {}) with args\n", "Emergency", 0);
 +        pr_alert!("{} message (level {}) with args\n", "Alert", 1);
 +        pr_crit!("{} message (level {}) with args\n", "Critical", 2);
 +        pr_err!("{} message (level {}) with args\n", "Error", 3);
 +        pr_warn!("{} message (level {}) with args\n", "Warning", 4);
 +        pr_notice!("{} message (level {}) with args\n", "Notice", 5);
 +        pr_info!("{} message (level {}) with args\n", "Info", 6);
 +
 +        pr_info!("A {} that", "line");
 +        pr_cont!(" is {}", "continued");
 +        pr_cont!(" with {}\n", "args");
 +
 +        arc_print()?;
 +
 +        trace::trace_rust_sample_loaded(42);
 +
 +        Ok(RustPrint)
 +    }
 +}
 +
 +impl Drop for RustPrint {
 +    fn drop(&mut self) {
 +        pr_info!("Rust printing macros sample (exit)\n");
 +    }
 +}
 +
 +mod trace {
 +    use core::ffi::c_int;
 +
 +    kernel::declare_trace! {
 +        /// # Safety
 +        ///
 +        /// Always safe to call.
 +        unsafe fn rust_sample_loaded(magic: c_int);
 +    }
 +
 +    pub(crate) fn trace_rust_sample_loaded(magic: i32) {
 +        // SAFETY: Always safe to call.
 +        unsafe { rust_sample_loaded(magic as c_int) }
 +    }
 +}
diff --combined scripts/Makefile.build
index 03ee558fcd4dfb602361744b79b2ff87ccbcc62c,2bba59e790b8a43f7f521e9c50a8ea6d43c2141a..f483a54380e71b460c1d54f2c2380e89de491f71
@@@ -248,18 -248,17 +248,18 @@@ $(obj)/%.lst: $(obj)/%.c FORC
  # Compile Rust sources (.rs)
  # ---------------------------------------------------------------------------
  
- rust_allowed_features := asm_const,asm_goto,new_uninit
 -rust_allowed_features := arbitrary_self_types,lint_reasons
++rust_allowed_features := asm_const,asm_goto,arbitrary_self_types,lint_reasons
  
  # `--out-dir` is required to avoid temporaries being created by `rustc` in the
  # current working directory, which may be not accessible in the out-of-tree
  # modules case.
  rust_common_cmd = \
 +      OBJTREE=$(abspath $(objtree)) \
        RUST_MODFILE=$(modfile) $(RUSTC_OR_CLIPPY) $(rust_flags) \
        -Zallow-features=$(rust_allowed_features) \
        -Zcrate-attr=no_std \
        -Zcrate-attr='feature($(rust_allowed_features))' \
-       -Zunstable-options --extern force:alloc --extern kernel \
+       -Zunstable-options --extern kernel \
        --crate-type rlib -L $(objtree)/rust/ \
        --crate-name $(basename $(notdir $@)) \
        --sysroot=/dev/null \
@@@ -304,12 -303,6 +304,12 @@@ quiet_cmd_rustc_ll_rs = $(RUSTC_OR_CLIP
  $(obj)/%.ll: $(obj)/%.rs FORCE
        +$(call if_changed_dep,rustc_ll_rs)
  
 +quiet_cmd_rustc_rs_rs_S = RSCPP $(quiet_modtag) $@
 +      cmd_rustc_rs_rs_S = $(CPP) $(c_flags) -xc -C -P $< | sed '1,/^\/\/ Cut here.$$/d' >$@
 +
 +$(obj)/%.rs: $(obj)/%.rs.S FORCE
 +      +$(call if_changed_dep,rustc_rs_rs_S)
 +
  # Compile assembler sources (.S)
  # ---------------------------------------------------------------------------
  
This page took 0.325785 seconds and 4 git commands to generate.