linux/rust/helpers
Linus Torvalds c6e62d002b Driver core changes for 7.0-rc1
- Bus:
   - Ensure bus->match() is consistently called with the device lock held
   - Improve type safety of bus_find_device_by_acpi_dev()
 
 - Devtmpfs:
   - Parse 'devtmpfs.mount=' boot parameter with kstrtoint() instead of
     simple_strtoul()
   - Avoid sparse warning by making devtmpfs_context_ops static
 
 - IOMMU:
   - Do not register the qcom_smmu_tbu_driver in arm_smmu_device_probe()
 
 - MAINTAINERS:
   - Add the new driver-core mailing list (driver-core@lists.linux.dev)
     to all relevant entries
   - Add missing tree location for "FIRMWARE LOADER (request_firmware)"
   - Add driver-model documentation to the "DRIVER CORE" entry
   - Add missing driver-core maintainers to the "AUXILIARY BUS" entry
 
 - Misc:
   - Change return type of attribute_container_register() to void; it has
     always been infallible
   - Do not export sysfs_change_owner(), sysfs_file_change_owner() and
     device_change_owner()
   - Move devres_for_each_res() from the public devres header to
     drivers/base/base.h
   - Do not use a static struct device for the faux bus; allocate it
     dynamically
 
 - Revocable:
   - Patches for the revocable synchronization primitive have been
     scheduled for v7.0-rc1, but have been reverted as they need some
     more refinement
 
 - Rust:
   - Device:
     - Support dev_printk on all device types, not just the core Device
       struct; remove now-redundant .as_ref() calls in dev_* print calls
 
   - Devres:
     - Introduce an internal reference count in Devres<T> to avoid a
       deadlock condition in case of (indirect) nesting
 
   - DMA:
     - Allow drivers to tune the maximum DMA segment size via
       dma_set_max_seg_size()
 
   - I/O:
     - Introduce the concept of generic I/O backends to handle different
       kinds of device shared memory through a common interface.
 
       This enables higher-level concepts such as register abstractions,
       I/O slices, and field projections to be built generically on top.
 
       In a first step, introduce the Io, IoCapable<T>, and IoKnownSize
       trait hierarchy for sharing a common interface supporting offset
       validation and bound-checking logic between I/O backends.
 
     - Refactor MMIO to use the common I/O backend infrastructure
 
   - Misc:
     - Add __rust_helper annotations to C helpers for inlining into Rust
       code
     - Use "kernel vertical" style for imports
     - Replace kernel::c_str! with C string literals
     - Update ARef imports to use sync::aref
     - Use pin_init::zeroed() for struct auxiliary_device_id and debugfs
       file_operations initialization
     - Use LKMM atomic types in debugfs doc-tests
     - Various minor comment and documentation fixes
 
   - PCI:
     - Implement PCI configuration space accessors using the common I/O
       backend infrastructure
     - Document pci::Bar device endianness assumptions
 
   - SoC:
     - Abstractions for struct soc_device and struct soc_device_attribute
     - Sample driver for soc::Device
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQS2q/xV6QjXAdC7k+1FlHeO1qrKLgUCaY0JegAKCRBFlHeO1qrK
 LtCjAQDeSqGuzQM6hkMjsUWbjdWyw0yrrXcOxhwIINTc7uCzogEA7JL00+eiKHYu
 SV2Ckn6UnSQ14rpEaDIzgZdurZHGUAM=
 =TL00
 -----END PGP SIGNATURE-----

Merge tag 'driver-core-7.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/driver-core/driver-core

Pull driver core updates from Danilo Krummrich:
 "Bus:

   - Ensure bus->match() is consistently called with the device lock
     held

   - Improve type safety of bus_find_device_by_acpi_dev()

  Devtmpfs:

   - Parse 'devtmpfs.mount=' boot parameter with kstrtoint() instead of
     simple_strtoul()

   - Avoid sparse warning by making devtmpfs_context_ops static

  IOMMU:

   - Do not register the qcom_smmu_tbu_driver in arm_smmu_device_probe()

  MAINTAINERS:

   - Add the new driver-core mailing list (driver-core@lists.linux.dev)
     to all relevant entries

   - Add missing tree location for "FIRMWARE LOADER (request_firmware)"

   - Add driver-model documentation to the "DRIVER CORE" entry

   - Add missing driver-core maintainers to the "AUXILIARY BUS" entry

  Misc:

   - Change return type of attribute_container_register() to void; it
     has always been infallible

   - Do not export sysfs_change_owner(), sysfs_file_change_owner() and
     device_change_owner()

   - Move devres_for_each_res() from the public devres header to
     drivers/base/base.h

   - Do not use a static struct device for the faux bus; allocate it
     dynamically

  Revocable:

   - Patches for the revocable synchronization primitive have been
     scheduled for v7.0-rc1, but have been reverted as they need some
     more refinement

  Rust:

   - Device:
      - Support dev_printk on all device types, not just the core Device
        struct; remove now-redundant .as_ref() calls in dev_* print
        calls

   - Devres:
      - Introduce an internal reference count in Devres<T> to avoid a
        deadlock condition in case of (indirect) nesting

   - DMA:
      - Allow drivers to tune the maximum DMA segment size via
        dma_set_max_seg_size()

   - I/O:
      - Introduce the concept of generic I/O backends to handle
        different kinds of device shared memory through a common
        interface.

        This enables higher-level concepts such as register
        abstractions, I/O slices, and field projections to be built
        generically on top.

        In a first step, introduce the Io, IoCapable<T>, and IoKnownSize
        trait hierarchy for sharing a common interface supporting offset
        validation and bound-checking logic between I/O backends.

      - Refactor MMIO to use the common I/O backend infrastructure

   - Misc:
      - Add __rust_helper annotations to C helpers for inlining into
        Rust code

      - Use "kernel vertical" style for imports

      - Replace kernel::c_str! with C string literals

      - Update ARef imports to use sync::aref

      - Use pin_init::zeroed() for struct auxiliary_device_id and
        debugfs file_operations initialization

      - Use LKMM atomic types in debugfs doc-tests

      - Various minor comment and documentation fixes

   - PCI:
      - Implement PCI configuration space accessors using the common I/O
        backend infrastructure

      - Document pci::Bar device endianness assumptions

   - SoC:
      - Abstractions for struct soc_device and struct soc_device_attribute

      - Sample driver for soc::Device"

* tag 'driver-core-7.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/driver-core/driver-core: (79 commits)
  rust: devres: fix race condition due to nesting
  rust: dma: add missing __rust_helper annotations
  samples: rust: pci: Remove some additional `.as_ref()` for `dev_*` print
  Revert "revocable: Revocable resource management"
  Revert "revocable: Add Kunit test cases"
  Revert "selftests: revocable: Add kselftest cases"
  driver core: remove device_change_owner() export
  sysfs: remove exports of sysfs_*change_owner()
  driver core: disable revocable code from build
  revocable: Add KUnit test for concurrent access
  revocable: fix SRCU index corruption by requiring caller-provided storage
  revocable: Add KUnit test for provider lifetime races
  revocable: Fix races in revocable_alloc() using RCU
  driver core: fix inverted "locked" suffix of driver_match_device()
  rust: io: move MIN_SIZE and io_addr_assert to IoKnownSize
  rust: pci: re-export ConfigSpace
  rust: dma: allow drivers to tune max segment size
  gpu: tyr: remove redundant `.as_ref()` for `dev_*` print
  rust: auxiliary: use `pin_init::zeroed()` for device ID
  rust: debugfs: use pin_init::zeroed() for file_operations
  ...
2026-02-11 17:43:59 -08:00
..
atomic.c rust: helpers: Move #define __rust_helper out of atomic.c 2026-01-09 19:01:42 +08:00
atomic_ext.c rust: helpers: Add i8/i16 atomic try_cmpxchg_relaxed helpers 2026-01-09 19:01:41 +08:00
auxiliary.c rust: auxiliary: add __rust_helper to helpers 2025-12-15 22:19:53 +01:00
barrier.c rust: barrier: Add __rust_helper to helpers 2026-01-09 19:01:41 +08:00
binder.c rust_binder: add Rust Binder driver 2025-09-19 09:40:46 +02:00
bitmap.c rust: bitmap: add __rust_helper to helpers 2026-01-06 12:14:10 -05:00
bitops.c bitmap updates for v6.20 2026-02-10 11:39:45 -08:00
blk.c rust: blk: Add __rust_helper to helpers 2026-01-09 19:01:41 +08:00
bug.c rust: bug: add __rust_helper to helpers 2026-01-26 03:48:25 +01:00
build_assert.c rust: kbuild: split up helpers.c 2024-08-18 23:34:26 +02:00
build_bug.c rust: err: add __rust_helper to helpers 2026-01-26 03:49:04 +01:00
clk.c rust: clk: Add helpers for Rust code 2025-05-19 12:55:40 +05:30
completion.c rust: completion: Add __rust_helper to helpers 2026-01-09 19:01:41 +08:00
cpu.c rust: cpu: Add __rust_helper to helpers 2026-01-09 19:01:41 +08:00
cpufreq.c rust: cpufreq: add __rust_helper to helpers 2026-01-27 11:21:22 +05:30
cpumask.c rust: cpumask: add __rust_helper to helpers 2026-01-06 12:14:10 -05:00
cred.c rust: cred: add __rust_helper to helpers 2026-01-06 20:30:09 -05:00
device.c rust: device: add __rust_helper to helpers 2025-12-15 22:26:10 +01:00
dma.c rust: dma: add missing __rust_helper annotations 2026-02-06 20:19:09 +01:00
drm.c rust: drm: add __rust_helper to helpers 2025-12-15 22:43:08 +01:00
err.c rust: err: add __rust_helper to helpers 2026-01-26 03:49:04 +01:00
fs.c rust: fs: add __rust_helper to helpers 2025-12-15 14:13:03 +01:00
helpers.c rust: helpers: Move #define __rust_helper out of atomic.c 2026-01-09 19:01:42 +08:00
io.c rust: io: add __rust_helper to helpers 2025-12-15 22:26:10 +01:00
irq.c rust: irq: add __rust_helper to helpers 2025-12-15 22:26:10 +01:00
jump_label.c rust: add static_branch_unlikely for static_key_false 2024-11-04 16:21:44 -05:00
kunit.c rust: kunit: add __rust_helper to helpers 2026-01-05 15:32:03 -07:00
maple_tree.c rust: maple_tree: add __rust_helper to helpers 2026-01-26 03:49:09 +01:00
mm.c rust: mm: add __rust_helper to helpers 2026-01-26 03:49:56 +01:00
mutex.c rust: sync: Add __rust_helper to helpers 2026-01-09 19:01:42 +08:00
of.c rust: of: add __rust_helper to helpers 2026-01-26 03:50:21 +01:00
page.c rust: mm: add __rust_helper to helpers 2026-01-26 03:49:56 +01:00
pci.c rust: pci: add __rust_helper to helpers 2025-12-15 22:39:11 +01:00
pid_namespace.c rust: pid_namespace: add __rust_helper to helpers 2025-12-15 14:13:03 +01:00
platform.c rust: platform: add __rust_helper to helpers 2025-12-15 22:39:42 +01:00
poll.c rust: poll: add __rust_helper to helpers 2025-12-15 14:13:04 +01:00
processor.c rust: processor: Add __rust_helper to helpers 2026-01-09 19:01:41 +08:00
property.c rust: property: add __rust_helper to helpers 2025-12-15 22:39:42 +01:00
pwm.c rust: pwm: Add __rust_helper to helpers 2026-01-20 18:52:43 +01:00
rbtree.c rust: rbtree: add __rust_helper to helpers 2026-01-26 03:50:41 +01:00
rcu.c rust: rcu: Add __rust_helper to helpers 2026-01-09 19:01:42 +08:00
refcount.c rust: refcount: Add __rust_helper to helpers 2026-01-09 19:01:42 +08:00
regulator.c rust: regulator: add __rust_helper to helpers 2025-12-14 19:37:55 +09:00
scatterlist.c rust: scatterlist: add __rust_helper to helpers 2025-12-15 22:39:42 +01:00
security.c rust: security: add __rust_helper to helpers 2026-01-06 20:30:09 -05:00
signal.c rust: task: Add __rust_helper to helpers 2026-01-09 19:01:42 +08:00
slab.c rust: slab: add __rust_helper to helpers 2026-01-26 03:50:50 +01:00
spinlock.c rust: sync: Add __rust_helper to helpers 2026-01-09 19:01:42 +08:00
sync.c rust: sync: Add __rust_helper to helpers 2026-01-09 19:01:42 +08:00
task.c rust: task: Add __rust_helper to helpers 2026-01-09 19:01:42 +08:00
time.c rust: time: Add __rust_helper to helpers 2026-01-09 19:01:42 +08:00
uaccess.c rust: uaccess: add __rust_helper to helpers 2026-01-26 03:51:16 +01:00
usb.c rust: usb: add basic USB abstractions 2025-09-24 13:13:04 +02:00
vmalloc.c rust: mm: add __rust_helper to helpers 2026-01-26 03:49:56 +01:00
wait.c rust: wait: Add __rust_helper to helpers 2026-01-09 19:01:42 +08:00
workqueue.c rust: workqueue: add __rust_helper to helpers 2026-01-26 03:51:31 +01:00
xarray.c rust: xarray: add __rust_helper to helpers 2026-01-15 10:01:23 +01:00