linux/drivers
Linus Torvalds f4e0ff7e45 Rust changes for v6.18
Toolchain and infrastructure:
 
  - Derive 'Zeroable' for all structs and unions generated by 'bindgen'
    where possible and corresponding cleanups. To do so, add the
    'pin-init' crate as a dependency to 'bindings' and 'uapi'.
 
    It also includes its first use in the 'cpufreq' module, with more to
    come in the next cycle.
 
  - Add warning to the 'rustdoc' target to detect broken 'srctree/' links
    and fix existing cases.
 
  - Remove support for unused (since v6.16) host '#[test]'s, simplifying
    the 'rusttest' target. Tests should generally run within KUnit.
 
 'kernel' crate:
 
  - Add 'ptr' module with a new 'Alignment' type, which is always a power
    of two and is used to validate that a given value is a valid
    alignment and to perform masking and alignment operations:
 
        // Checked at build time.
        assert_eq!(Alignment:🆕:<16>().as_usize(), 16);
 
        // Checked at runtime.
        assert_eq!(Alignment::new_checked(15), None);
 
        assert_eq!(Alignment::of::<u8>().log2(), 0);
 
        assert_eq!(0x25u8.align_down(Alignment:🆕:<0x10>()), 0x20);
        assert_eq!(0x5u8.align_up(Alignment:🆕:<0x10>()), Some(0x10));
        assert_eq!(u8::MAX.align_up(Alignment:🆕:<0x10>()), None);
 
    It also includes its first use in Nova.
 
  - Add 'core::mem::{align,size}_of{,_val}' to the prelude, matching
    Rust 1.80.0.
 
  - Keep going with the steps on our migration to the standard library
    'core::ffi::CStr' type (use 'kernel::{fmt, prelude::fmt!}' and use
    upstream method names).
 
  - 'error' module: improve 'Error::from_errno' and 'to_result'
    documentation, including examples/tests.
 
  - 'sync' module: extend 'aref' submodule documentation now that it
    exists, and more updates to complete the ongoing move of 'ARef' and
    'AlwaysRefCounted' to 'sync::aref'.
 
  - 'list' module: add an example/test for 'ListLinksSelfPtr' usage.
 
  - 'alloc' module:
 
    - Implement 'Box::pin_slice()', which constructs a pinned slice of
      elements.
 
    - Provide information about the minimum alignment guarantees of
      'Kmalloc', 'Vmalloc' and 'KVmalloc'.
 
    - Take minimum alignment guarantees of allocators for
      'ForeignOwnable' into account.
 
    - Remove the 'allocator_test' (including 'Cmalloc').
 
    - Add doctest for 'Vec::as_slice()'.
 
    - Constify various methods.
 
  - 'time' module:
 
    - Add methods on 'HrTimer' that can only be called with exclusive
      access to an unarmed timer, or from timer callback context.
 
    - Add arithmetic operations to 'Instant' and 'Delta'.
 
    - Add a few convenience and access methods to 'HrTimer' and
      'Instant'.
 
 'macros' crate:
 
  - Reduce collections in 'quote!' macro.
 
 And a few other cleanups and improvements.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEPjU5OPd5QIZ9jqqOGXyLc2htIW0FAmjZb3kACgkQGXyLc2ht
 IW2+PA//T23FOYFjN2M+N2qBFocL4qBK0nSjp1UnnTsJ7ohlLU3orApY/Nl2DJTq
 oO7SrWrdw6OVapvJN9IC2Jk0SfgFEiGu4L/eDg/xzkRmw89GGOOv+gp8gzz190mH
 vZS5Nbbvs1GOlALA0BxwJG0vXtAu1de284/v0CCzXms6tCxSaUSes0vB7JNNzBSW
 u73StEM5WlU3giGvnREl2lyX+jUFwG3mtfwpOuNavSYi3yO9Kg1pIIeP7ie/qrKF
 30D8X3VacO2JcGC1qpQPsFCSfIlNl0yjkVPpFi8mIQO/XEqcej3tlojXq9oyP9Tj
 tXcQL37ayBYnFSMPbelbOyTsgIyU9WwIJF+4V8u1H2C89k3f7/zqj+RMvW4y90Dc
 /43z0OwW/N5PzUQ/EyTY0JYfMeNcsOyVcGXYawD/0pZuHgOz39WHPJSdq+wMpZUy
 XESd6tr7ZHZudDsX+oq0hO1AI3pwkMvievFKG7ZtUiIcR9slv246M+WroOJcZUJ3
 6I9v/f/z9rxsIYExQA2rTHiJ0+GAuXZ5lH5x/owZEZmzN3WLCHwuMoaIp/oL6387
 y17yBpDtp6ar4B1KJILjuyjTF/kehazCNy7uiG1P8KTiCRUUTueIDYs257NMghg2
 VKkyfdABAwgnsdrGLQXgRmI09RHg0xqslgT11DiPmLVVxJYCeLI=
 =+VG2
 -----END PGP SIGNATURE-----

Merge tag 'rust-6.18' of git://git.kernel.org/pub/scm/linux/kernel/git/ojeda/linux

Pull rust updates from Miguel Ojeda:
 "Toolchain and infrastructure:

   - Derive 'Zeroable' for all structs and unions generated by 'bindgen'
     where possible and corresponding cleanups. To do so, add the
     'pin-init' crate as a dependency to 'bindings' and 'uapi'.

     It also includes its first use in the 'cpufreq' module, with more
     to come in the next cycle.

   - Add warning to the 'rustdoc' target to detect broken 'srctree/'
     links and fix existing cases.

   - Remove support for unused (since v6.16) host '#[test]'s,
     simplifying the 'rusttest' target. Tests should generally run
     within KUnit.

  'kernel' crate:

   - Add 'ptr' module with a new 'Alignment' type, which is always a
     power of two and is used to validate that a given value is a valid
     alignment and to perform masking and alignment operations:

         // Checked at build time.
         assert_eq!(Alignment:🆕:<16>().as_usize(), 16);

         // Checked at runtime.
         assert_eq!(Alignment::new_checked(15), None);

         assert_eq!(Alignment::of::<u8>().log2(), 0);

         assert_eq!(0x25u8.align_down(Alignment:🆕:<0x10>()), 0x20);
         assert_eq!(0x5u8.align_up(Alignment:🆕:<0x10>()), Some(0x10));
         assert_eq!(u8::MAX.align_up(Alignment:🆕:<0x10>()), None);

     It also includes its first use in Nova.

   - Add 'core::mem::{align,size}_of{,_val}' to the prelude, matching
     Rust 1.80.0.

   - Keep going with the steps on our migration to the standard library
     'core::ffi::CStr' type (use 'kernel::{fmt, prelude::fmt!}' and use
     upstream method names).

   - 'error' module: improve 'Error::from_errno' and 'to_result'
     documentation, including examples/tests.

   - 'sync' module: extend 'aref' submodule documentation now that it
     exists, and more updates to complete the ongoing move of 'ARef' and
     'AlwaysRefCounted' to 'sync::aref'.

   - 'list' module: add an example/test for 'ListLinksSelfPtr' usage.

   - 'alloc' module:

      - Implement 'Box::pin_slice()', which constructs a pinned slice of
        elements.

      - Provide information about the minimum alignment guarantees of
        'Kmalloc', 'Vmalloc' and 'KVmalloc'.

      - Take minimum alignment guarantees of allocators for
        'ForeignOwnable' into account.

      - Remove the 'allocator_test' (including 'Cmalloc').

      - Add doctest for 'Vec::as_slice()'.

      - Constify various methods.

   - 'time' module:

      - Add methods on 'HrTimer' that can only be called with exclusive
        access to an unarmed timer, or from timer callback context.

      - Add arithmetic operations to 'Instant' and 'Delta'.

      - Add a few convenience and access methods to 'HrTimer' and
        'Instant'.

  'macros' crate:

   - Reduce collections in 'quote!' macro.

  And a few other cleanups and improvements"

* tag 'rust-6.18' of git://git.kernel.org/pub/scm/linux/kernel/git/ojeda/linux: (58 commits)
  gpu: nova-core: use Alignment for alignment-related operations
  rust: add `Alignment` type
  rust: macros: reduce collections in `quote!` macro
  rust: acpi: use `core::ffi::CStr` method names
  rust: of: use `core::ffi::CStr` method names
  rust: net: use `core::ffi::CStr` method names
  rust: miscdevice: use `core::ffi::CStr` method names
  rust: kunit: use `core::ffi::CStr` method names
  rust: firmware: use `core::ffi::CStr` method names
  rust: drm: use `core::ffi::CStr` method names
  rust: cpufreq: use `core::ffi::CStr` method names
  rust: configfs: use `core::ffi::CStr` method names
  rust: auxiliary: use `core::ffi::CStr` method names
  drm/panic: use `core::ffi::CStr` method names
  rust: device: use `kernel::{fmt,prelude::fmt!}`
  rust: sync: use `kernel::{fmt,prelude::fmt!}`
  rust: seq_file: use `kernel::{fmt,prelude::fmt!}`
  rust: kunit: use `kernel::{fmt,prelude::fmt!}`
  rust: file: use `kernel::{fmt,prelude::fmt!}`
  rust: device: use `kernel::{fmt,prelude::fmt!}`
  ...
2025-09-30 19:12:49 -07:00
..
accel accel/ivpu: Prevent recovery work from being queued during device removal 2025-09-01 12:37:21 +02:00
accessibility
acpi Updates for the clocksource/clockevents drivers subsystem: 2025-09-30 16:53:59 -07:00
amba PM: domains: Add flags to specify power on attach/detach 2025-07-07 20:41:20 +02:00
android Char / Misc / IIO / other driver updates for 6.17-rc1 2025-07-29 09:52:01 -07:00
ata ata: ahci_xgene: Use int type for 'rc' to store error codes 2025-08-28 13:36:14 +09:00
atm atm: atmtcp: Prevent arbitrary write in atmtcp_recv_control(). 2025-08-22 17:23:15 -07:00
auxdisplay
base vfs-6.18-rc1.async 2025-09-29 11:55:15 -07:00
bcma treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
block Rust changes for v6.18 2025-09-30 19:12:49 -07:00
bluetooth Bluetooth: Fix build after header cleanup 2025-09-20 10:57:44 -04:00
bus soc: driver updates for 6.17 2025-07-29 11:13:27 -07:00
cache
cdrom cdrom: Call cdrom_mrw_exit from cdrom_release function 2025-07-22 19:10:17 -06:00
cdx - Add support for new AMD family 0x1a models to amd64_edac 2025-09-30 11:41:03 -07:00
char Some small fixes for the IPMI driver 2025-08-07 07:38:25 +03:00
clk Allwinner Clock Fixes for 6.17 2025-09-19 21:28:01 -07:00
clocksource clocksource/drivers/sh_cmt: Split start/stop of clock source and events 2025-09-23 12:42:43 +02:00
comedi comedi: Make insn_rw_emulate_bits() do insn->n samples 2025-08-19 12:57:01 +02:00
connector
counter
cpufreq cpufreq: Initialize cpufreq-based invariance before subsys 2025-09-20 13:00:20 +02:00
cpuidle cpuidle: governors: menu: Avoid selecting states with too much latency 2025-08-18 19:04:25 +02:00
crypto - Add functionality to provide runtime firmware updates for the non-x86 parts 2025-09-30 13:40:35 -07:00
cxl Significant patch series in this pull request: 2025-08-03 16:23:09 -07:00
dax fs: rename generic_delete_inode() and generic_drop_inode() 2025-09-15 16:09:42 +02:00
dca
devfreq PM / devfreq: Add HiSilicon uncore frequency scaling driver 2025-07-14 20:23:57 +09:00
dio
dma dmaengine: dw: dmamux: Fix device reference leak in rzn1_dmamux_route_allocate 2025-09-02 15:01:51 +05:30
dma-buf drm for 6.17-rc1 2025-07-30 19:26:49 -07:00
dpll dpll: fix clock quality level reporting 2025-09-14 13:03:40 -07:00
edac - Add support for new AMD family 0x1a models to amd64_edac 2025-09-30 11:41:03 -07:00
eisa
extcon
firewire firewire: core: fix overlooked update of subsystem ABI version 2025-09-20 12:17:50 +09:00
firmware - Add functionality to provide runtime firmware updates for the non-x86 parts 2025-09-30 13:40:35 -07:00
fpga fpga: zynq_fpga: Fix the wrong usage of dma_map_sgtable() 2025-08-19 12:54:45 +02:00
fsi Driver core changes for 6.17-rc1 2025-07-29 12:15:39 -07:00
fwctl
gnss
gpio powerpc updates for 6.18 2025-09-29 19:28:50 -07:00
gpu Rust changes for v6.18 2025-09-30 19:12:49 -07:00
greybus
hid hid-for-linus-2025092201 2025-09-22 11:01:37 -07:00
hsi
hte
hv ARM: 2025-07-30 17:14:01 -07:00
hwmon hwmon: (ina238) Correctly clamp power limits 2025-09-01 08:03:05 -07:00
hwspinlock
hwtracing coresight: trbe: Prevent overflow in PERF_IDX2OFF() 2025-09-18 15:23:58 +01:00
i2c i2c: rtl9300: Drop unsupported I2C_FUNC_SMBUS_I2C_BLOCK 2025-09-28 00:23:34 +02:00
i3c i3c: add missing include to internal header 2025-07-31 02:25:17 +02:00
idle intel_idle: Allow loading ACPI tables for any family 2025-08-11 21:43:26 +02:00
iio iio: pressure: bmp280: Use IS_ERR() in bmp280_common_probe() 2025-08-18 19:22:18 +01:00
infiniband IB/mlx5: Fix obj_type mismatch for SRQ event subscriptions 2025-08-25 15:06:46 -03:00
input Input updates for v6.17-rc5 2025-09-14 08:09:37 -07:00
interconnect Char / Misc / IIO / other driver updates for 6.17-rc1 2025-07-29 09:52:01 -07:00
iommu iommufd 6.17 second rc pull 2025-09-22 11:16:14 -07:00
ipack
irqchip Updates for interrupt chip drivers: 2025-09-30 16:00:29 -07:00
isdn mISDN: Fix memory leak in dsp_hwec_enable() 2025-08-29 19:19:39 -07:00
leds treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
macintosh
mailbox mailbox/pcc: support mailbox management of the shared buffer 2025-08-07 23:49:56 -05:00
mcb mcb: use sysfs_emit_at() instead of scnprintf() in show functions 2025-07-16 14:17:07 +02:00
md dlm for 6.18 2025-09-29 15:24:58 -07:00
media media: pwm-ir-tx: Avoid direct access to hrtimer clockbase 2025-09-09 12:27:18 +02:00
memory Memory controller drivers for v6.17 2025-07-22 22:47:00 +02:00
memstick memstick: Fix deadlock by moving removing flag earlier 2025-08-18 12:01:20 +02:00
message
mfd treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
misc hardening updates for v6.18-rc1 2025-09-29 17:48:27 -07:00
mmc mmc: sdhci-pci-gli: GL9767: Fix initializing the UHS-II interface during a power-on 2025-09-12 15:00:52 +02:00
most most: core: Drop device reference after usage in get_channel() 2025-08-19 12:57:34 +02:00
mtd mtd: spinand: winbond: Fix oob_layout for W25N01JW 2025-09-05 17:03:44 +02:00
mux hardening updates for v6.17-rc1 2025-07-28 17:16:12 -07:00
net Crypto library updates for 6.18 2025-09-29 15:48:56 -07:00
nfc
ntb
nubus
nvdimm Summary of significant series in this pull request: 2025-07-31 14:57:54 -07:00
nvme nvme: fix PI insert on write 2025-09-02 12:21:42 -07:00
nvmem Driver core changes for 6.17-rc1 2025-07-29 12:15:39 -07:00
of Updates for the clocksource/clockevents drivers subsystem: 2025-09-30 16:53:59 -07:00
opp
parisc parisc/power: Move soft-power into power.c 2025-07-23 11:52:48 +02:00
parport
pci Updates for interrupt chip drivers: 2025-09-30 16:00:29 -07:00
pcmcia pcmcia: Add error handling for add_interval() in do_validate_mem() 2025-08-16 15:49:58 +02:00
peci
perf RISC-V updates for the v6.18 merge window (part one) 2025-09-29 19:01:08 -07:00
phy phy: qcom: qmp-pcie: Fix PHY initialization when powered down by firmware 2025-09-01 22:29:20 +05:30
pinctrl pinctrl: airoha: fix wrong MDIO function bitmaks 2025-09-08 23:01:19 +02:00
platform - Make UMIP instruction detection more robust 2025-09-30 13:19:08 -07:00
pmdomain pmdomain: mediatek: set default off flag for MT8195 AUDIO power domain 2025-09-23 16:33:34 +02:00
pnp
power power: supply: bq27xxx: restrict no-battery detection to bq27000 2025-09-06 02:11:38 +02:00
powercap platform-drivers-x86 for v6.17-1 2025-07-28 23:21:28 -07:00
pps
ps3 powerpc/ps3: Use str_write_read() in ps3stor_read_write_sectors() 2025-09-06 17:01:26 +05:30
ptp ptp: ocp: fix use-after-free bugs causing by ptp_ocp_watchdog 2025-08-29 19:10:22 -07:00
pwm treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
rapidio
ras RAS: Export log_non_standard_event() to drivers 2025-09-15 16:20:29 +02:00
regulator regulator: sy7636a: fix lifecycle of power good gpio 2025-09-08 16:33:24 +01:00
remoteproc remoteproc updates for v6.17 2025-08-01 15:02:25 -07:00
reset reset: eyeq: fix OF node leak 2025-08-27 16:40:13 +02:00
rpmsg remoteproc updates for v6.17 2025-08-01 15:02:25 -07:00
rtc RTC for 6.17 2025-08-03 20:17:34 -07:00
s390 s390 updates for 6.18 merge window 2025-09-29 19:14:25 -07:00
sbus
scsi scsi: sr: Reinstate rotational media flag 2025-08-30 21:46:21 -04:00
sh
siox
slimbus
soc soc: fixes for 6.17, part 2 2025-09-03 14:44:34 -07:00
soundwire soundwire updates for 6.17 2025-08-01 11:09:27 -07:00
spi spi: omap2-mcspi: drive SPI_CLK on transfer_setup() 2025-09-22 09:28:50 +01:00
spmi
ssb treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
staging treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
target SCSI misc on 20250806 2025-08-06 15:44:25 +03:00
tc
tee OP-TEE driver fix for v6.17 2025-09-01 10:35:03 +02:00
thermal Driver core changes for 6.17-rc1 2025-07-29 12:15:39 -07:00
thunderbolt thunderbolt: Fix copy+paste error in match_service_id() 2025-07-21 16:33:43 +02:00
tty TTY/Serial fixes for 6.17-rc6 2025-09-14 10:54:54 -07:00
ufs scsi: ufs: mcq: Fix memory allocation checks for SQE and CQE 2025-09-09 22:38:38 -04:00
uio
usb vfs-6.18-rc1.misc 2025-09-29 09:03:07 -07:00
vdpa vdpa: Fix IDR memory leak in VDUSE module exit 2025-08-01 09:11:08 -04:00
vfio VFIO updates for v6.17-rc1 v2 2025-08-07 07:32:50 +03:00
vhost vhost-net: flush batched before enabling notifications 2025-09-19 04:15:26 -04:00
video fbcon: Fix OOB access in font allocation 2025-09-23 11:36:14 +02:00
virt arm64 updates for 6.18 2025-09-29 18:48:39 -07:00
virtio virtio_input: Improve freeze handling 2025-08-26 03:38:19 -04:00
w1
watchdog watchdog: sbsa: Adjust keepalive timeout to avoid MediaTek WS0 race condition 2025-07-28 12:07:08 +02:00
xen xen: take system_transition_mutex on suspend 2025-09-22 10:16:55 +02:00
zorro zorro: Remove extra whitespace in macro definitions 2025-09-15 14:30:17 +02:00
Kconfig drm for 6.17-rc1 2025-07-30 19:26:49 -07:00
Makefile