lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <DBOQ1PS4Z00Q.ARCY8VPIY909@kernel.org>
Date: Tue, 29 Jul 2025 19:40:15 +0200
From: "Danilo Krummrich" <dakr@...nel.org>
To: "Linus Torvalds" <torvalds@...ux-foundation.org>
Cc: "Greg Kroah-Hartman" <gregkh@...uxfoundation.org>, "Rafael J. Wysocki"
 <rafael@...nel.org>, "Stephen Rothwell" <sfr@...b.auug.org.au>, "Miguel
 Ojeda" <ojeda@...nel.org>, "Andrew Morton" <akpm@...ux-foundation.org>,
 <linux-kernel@...r.kernel.org>
Subject: [GIT PULL] Driver core changes for 6.17-rc1

Hi Linus,

Please pull these driver-core changes.

There is one trivial conflict with your tree in rust/helpers/helpers.c.

There are also some non-trivial conflicts with Miguel's Rust tree. Additional to
the resolutions in linux-next, which should be correct, I also did a test merge
with Miguel's tree:

  https://git.kernel.org/pub/scm/linux/kernel/git/driver-core/driver-core.git driver-core-6.17-test-merge

All commits have been in linux-next for over a week with no reported issues.

Independently, preparing this PR I noticed one minor issue with one of the
debugfs changes. I already sent a fix [1] for this, which should reach you
through a normal -fixes PR (unless you decide to pick it right away).

- Danilo

[1] https://lore.kernel.org/lkml/20250727105937.7480-1-dakr@kernel.org/

The following changes since commit 86731a2a651e58953fc949573895f2fa6d456841:

  Linux 6.16-rc3 (2025-06-22 13:30:08 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/driver-core/driver-core.git tags/driver-core-6.17-rc1

for you to fetch changes up to 51a486feac0ca002bee6429f03da0a6c206d0dc5:

  rust: io: fix broken intra-doc links to `platform::Device` (2025-07-22 11:08:59 +0200)

----------------------------------------------------------------
Driver core changes for 6.17-rc1

- DEBUGFS

  - Remove unneeded debugfs_file_{get,put}() instances

  - Remove last remnants of debugfs_real_fops()

  - Allow storing non-const void * in struct debugfs_inode_info::aux

- SYSFS

  - Switch back to attribute_group::bin_attrs (treewide)

  - Switch back to bin_attribute::read()/write() (treewide)

  - Constify internal references to 'struct bin_attribute'

- Support cache-ids for device-tree systems

  - Add arch hook arch_compact_of_hwid()

  - Use arch_compact_of_hwid() to compact MPIDR values on arm64

- Rust

  - Device

    - Introduce CoreInternal device context (for bus internal methods)

    - Provide generic drvdata accessors for bus devices

    - Provide Driver::unbind() callbacks

    - Use the infrastructure above for auxiliary, PCI and platform

    - Implement Device::as_bound()

    - Rename Device::as_ref() to Device::from_raw() (treewide)

    - Implement fwnode and device property abstractions

      - Implement example usage in the Rust platform sample driver

  - Devres

    - Remove the inner reference count (Arc) and use pin-init instead

    - Replace Devres::new_foreign_owned() with devres::register()

    - Require T to be Send in Devres<T>

    - Initialize the data kept inside a Devres last

    - Provide an accessor for the Devres associated Device

  - Device ID

    - Add support for ACPI device IDs and driver match tables

    - Split up generic device ID infrastructure

    - Use generic device ID infrastructure in net::phy

  - DMA

    - Implement the dma::Device trait

    - Add DMA mask accessors to dma::Device

    - Implement dma::Device for PCI and platform devices

    - Use DMA masks from the DMA sample module

  - I/O

    - Implement abstraction for resource regions (struct resource)

    - Implement resource-based ioremap() abstractions

    - Provide platform device accessors for I/O (remap) requests

  - Misc

    - Support fallible PinInit types in Revocable

    - Implement Wrapper<T> for Opaque<T>

    - Merge pin-init blanket dependencies (for Devres)

- Misc

  - Fix OF node leak in auxiliary_device_create()

  - Use util macros in device property iterators

  - Improve kobject sample code

  - Add device_link_test() for testing device link flags

  - Fix typo in Documentation/ABI/testing/sysfs-kernel-address_bits

  - Hint to prefer container_of_const() over container_of()

----------------------------------------------------------------
Al Viro (11):
      zynqmp: don't bother with debugfs_file_{get,put}() in proxied fops
      hfi1: get rid of redundant debugfs_file_{get,put}()
      regmap: get rid of redundant debugfs_file_{get,put}()
      resctrl: get rid of pointless debugfs_file_{get,put}()
      vmscan: don't bother with debugfs_real_fops()
      netronome: don't bother with debugfs_real_fops()
      debugfs: split short and full proxy wrappers, kill debugfs_real_fops()
      fix tt_command_write()
      debugfs_get_aux(): allow storing non-const void *
      blk-mq-debugfs: use debugfs_get_aux()
      lpfc: don't use file->f_path.dentry for comparisons

Alice Ryhl (1):
      device: rust: rename Device::as_ref() to Device::from_raw()

Benno Lossin (2):
      rust: pin-init: improve safety documentation for `impl<T> [Pin]Init<T> for T`
      rust: pin-init: change blanket impls for `[Pin]Init` and add one for `Result<T, E>`

Christian Schrefl (1):
      rust: implement `Wrapper<T>` for `Opaque<T>`

Daniel Almeida (3):
      rust: io: add resource abstraction
      rust: io: mem: add a generic iomem abstraction
      rust: platform: add resource accessors

Danilo Krummrich (25):
      rust: device: implement FwNode::is_of_node()
      samples: rust: platform: don't call as_ref() repeatedly
      samples: rust: platform: conditionally call Self::properties_parse()
      rust: devres: require T: Send for Devres
      Merge tag 'pin-init-v6.17-result-blanket' of https://github.com/Rust-for-Linux/linux.git
      rust: revocable: support fallible PinInit types
      rust: devres: replace Devres::new_foreign_owned()
      rust: devres: get rid of Devres' inner Arc
      rust: device: introduce device::CoreInternal
      rust: device: add drvdata accessors
      rust: platform: use generic device drvdata accessors
      rust: pci: use generic device drvdata accessors
      rust: auxiliary: use generic device drvdata accessors
      rust: platform: implement Driver::unbind()
      rust: pci: implement Driver::unbind()
      samples: rust: pci: reset pci-testdev in unbind()
      rust: devres: initialize Devres::inner::data last
      rust: devres: provide an accessor for the device
      rust: device: implement Device::as_bound()
      rust: dma: implement `dma::Device` trait
      rust: dma: add DMA addressing capabilities
      rust: pci: implement the `dma::Device` trait
      rust: platform: implement the `dma::Device` trait
      rust: samples: dma: set DMA mask
      rust: io: mem: enable IoRequest doc-tests

FUJITA Tomonori (4):
      rust: fix typo in #[repr(transparent)] comments
      rust: device_id: split out index support into a separate trait
      rust: net::phy represent DeviceId as transparent wrapper over mdio_device_id
      rust: net::phy Change module_phy_driver macro to use module_device_table macro

Greg Kroah-Hartman (1):
      Merge 6.16-rc3 into driver-core-next

Igor Korotin (6):
      rust: acpi: add `acpi::DeviceId` abstraction
      rust: driver: Consolidate `Adapter::of_id_info` methods using `#[cfg]`
      rust: driver: Add ACPI id table support to Adapter trait
      rust: platform: Set `OF_ID_TABLE` default to `None` in `Driver` trait
      rust: platform: Add ACPI match table support to `Driver` trait
      samples: rust: add ACPI match table example to platform driver

James Morse (2):
      cacheinfo: Add arch hook to compress CPU h/w id into 32 bits for cache-id
      arm64: cacheinfo: Provide helper to compress MPIDR value into u32

Johan Hovold (1):
      driver core: auxiliary bus: fix OF node leak

Matti Vaittinen (1):
      device property: Use tidy for_each_named_* macros

Meng Shao Liu (2):
      samples/kobject: fix path comment
      samples/kobject: make attribute_group const

Miguel Ojeda (3):
      rust: acpi: remove unneeded cast to clean future Clippy warning
      rust: io: fix broken intra-doc link to missing `flags` module
      rust: io: fix broken intra-doc links to `platform::Device`

Rafael J. Wysocki (1):
      driver core: Add device_link_test() for testing device link flags

Rahul Rameshbabu (1):
      rust: pci: fix documentation related to Device instances

Remo Senekowitsch (10):
      rust: device: Create FwNode abstraction for accessing device properties
      rust: device: Enable accessing the FwNode of a Device
      rust: device: Move property_present() to FwNode
      rust: device: Enable printing fwnode name and path
      rust: device: Introduce PropertyGuard
      rust: device: Implement accessors for firmware properties
      samples: rust: platform: Add property read examples
      rust: device: Add child accessor and iterator
      rust: device: Add property_get_reference_args
      samples: rust: platform: Add property child and reference args examples

Richard Weinberger (1):
      Docs/ABI: Fix sysfs-kernel-address_bits path

Rob Herring (1):
      cacheinfo: Set cache 'id' based on DT data

Sakari Ailus (1):
      container_of: Document container_of() is not to be used in new code

Shankari Anand (1):
      rust: miscdevice: clarify invariant for `MiscDeviceRegistration`

Tamir Duberstein (3):
      rust: platform: remove unnecessary import
      rust: auxiliary: remove unnecessary import
      rust: devres: remove unused import

Thomas Weißschuh (4):
      const_structs.checkpatch: add bin_attribute
      sysfs: constify internal references to 'struct bin_attribute'
      sysfs: treewide: switch back to bin_attribute::read()/write()
      sysfs: treewide: switch back to attribute_group::bin_attrs

 Documentation/ABI/testing/sysfs-kernel-address_bits    |   2 +-
 MAINTAINERS                                            |   3 +
 arch/arm64/include/asm/cache.h                         |  17 +++
 arch/powerpc/kernel/secvar-sysfs.c                     |   2 +-
 arch/powerpc/perf/hv-24x7.c                            |   2 +-
 arch/powerpc/platforms/powernv/opal-core.c             |   4 +-
 arch/powerpc/platforms/powernv/opal-dump.c             |   2 +-
 arch/powerpc/platforms/powernv/opal-elog.c             |   2 +-
 arch/powerpc/platforms/powernv/opal-flash.c            |   2 +-
 arch/powerpc/platforms/powernv/opal-msglog.c           |   2 +-
 arch/powerpc/platforms/powernv/opal.c                  |   2 +-
 arch/powerpc/platforms/powernv/ultravisor.c            |   2 +-
 arch/s390/kernel/cpacf.c                               |   2 +-
 arch/s390/kernel/ipl.c                                 |  18 +--
 arch/s390/pci/pci_sysfs.c                              |   2 +-
 arch/x86/kernel/ksysfs.c                               |   8 +-
 block/blk-mq-debugfs.c                                 |  12 +-
 drivers/accel/habanalabs/common/sysfs.c                |   4 +-
 drivers/acpi/bgrt.c                                    |   2 +-
 drivers/acpi/sysfs.c                                   |   4 +-
 drivers/base/auxiliary.c                               |   2 +
 drivers/base/cacheinfo.c                               |  50 ++++++++
 drivers/base/core.c                                    |  73 ++++++------
 drivers/base/devcoredump.c                             |   2 +-
 drivers/base/firmware_loader/sysfs.c                   |   6 +-
 drivers/base/node.c                                    |   2 +-
 drivers/base/power/main.c                              |   2 +-
 drivers/base/power/runtime.c                           |   6 +-
 drivers/base/regmap/regmap-debugfs.c                   |  10 --
 drivers/base/topology.c                                |   2 +-
 drivers/cpufreq/rcpufreq_dt.rs                         |   3 +-
 drivers/cxl/port.c                                     |   2 +-
 drivers/firmware/efi/mokvar-table.c                    |   2 +-
 drivers/firmware/google/cbmem.c                        |   2 +-
 drivers/firmware/google/gsmi.c                         |   2 +-
 drivers/firmware/google/memconsole.c                   |   2 +-
 drivers/firmware/google/vpd.c                          |   4 +-
 drivers/firmware/qemu_fw_cfg.c                         |   2 +-
 drivers/fsi/fsi-core.c                                 |   4 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c                |   6 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c                |   2 +-
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c |   4 +-
 drivers/gpu/drm/drm_sysfs.c                            |   4 +-
 drivers/gpu/drm/i915/i915_gpu_error.c                  |   4 +-
 drivers/gpu/drm/i915/i915_sysfs.c                      |   8 +-
 drivers/gpu/drm/lima/lima_drv.c                        |   4 +-
 drivers/gpu/drm/xlnx/zynqmp_dp.c                       |  38 +-----
 drivers/gpu/nova-core/driver.rs                        |   7 +-
 drivers/gpu/nova-core/gpu.rs                           |   6 +-
 drivers/hid/hid-core.c                                 |   2 +-
 drivers/hid/hid-roccat-arvo.c                          |   2 +-
 drivers/hid/hid-roccat-common.h                        |   8 +-
 drivers/hid/hid-roccat-isku.c                          |  10 +-
 drivers/hid/hid-roccat-kone.c                          |   6 +-
 drivers/hid/hid-roccat-koneplus.c                      |  14 +--
 drivers/hid/hid-roccat-konepure.c                      |   2 +-
 drivers/hid/hid-roccat-kovaplus.c                      |  12 +-
 drivers/hid/hid-roccat-lua.c                           |   4 +-
 drivers/hid/hid-roccat-pyra.c                          |  14 +--
 drivers/hid/hid-roccat-ryos.c                          |   2 +-
 drivers/hid/hid-roccat-savu.c                          |   2 +-
 drivers/i2c/i2c-slave-eeprom.c                         |   4 +-
 drivers/iio/imu/bno055/bno055.c                        |   2 +-
 drivers/infiniband/hw/hfi1/debugfs.c                   |  28 -----
 drivers/infiniband/hw/hfi1/debugfs.h                   |   9 +-
 drivers/infiniband/hw/hfi1/fault.c                     |   9 --
 drivers/infiniband/hw/hfi1/sysfs.c                     |   2 +-
 drivers/infiniband/hw/qib/qib_sysfs.c                  |   2 +-
 drivers/input/touchscreen/goodix_berlin_core.c         |   2 +-
 drivers/leds/led-class.c                               |   2 +-
 drivers/media/pci/solo6x10/solo6x10-core.c             |   2 +-
 drivers/misc/c2port/core.c                             |   2 +-
 drivers/misc/ds1682.c                                  |   4 +-
 drivers/misc/eeprom/max6875.c                          |   2 +-
 drivers/misc/ocxl/sysfs.c                              |   2 +-
 drivers/misc/pch_phub.c                                |   4 +-
 drivers/misc/sram.c                                    |   4 +-
 drivers/mtd/spi-nor/sysfs.c                            |   2 +-
 drivers/net/ethernet/netronome/nfp/nfp_net_debugfs.c   |  15 ++-
 drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c   |  10 +-
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c      |  34 +++---
 drivers/net/phy/spi_ks8995.c                           |   4 +-
 drivers/net/wireless/ti/wlcore/sysfs.c                 |   2 +-
 drivers/nvmem/core.c                                   |  14 +--
 drivers/of/kobj.c                                      |   2 +-
 drivers/of/unittest-data/tests-platform.dtsi           |  10 ++
 drivers/of/unittest.c                                  |   2 +
 drivers/pci/hotplug/acpiphp_ibm.c                      |   2 +-
 drivers/pci/p2pdma.c                                   |   2 +-
 drivers/pci/pci-sysfs.c                                |  12 +-
 drivers/pci/vpd.c                                      |   2 +-
 drivers/pcmcia/cistpl.c                                |   4 +-
 drivers/platform/chrome/cros_ec_vbc.c                  |   2 +-
 drivers/platform/mellanox/mlxbf-bootctl.c              |   2 +-
 drivers/platform/x86/amd/hsmp/acpi.c                   |   4 +-
 drivers/platform/x86/amd/hsmp/plat.c                   |   4 +-
 drivers/platform/x86/dell/dcdbas.c                     |   2 +-
 drivers/platform/x86/dell/dell_rbu.c                   |   2 +-
 drivers/platform/x86/intel/pmt/class.c                 |   2 +-
 drivers/platform/x86/intel/sdsi.c                      |   2 +-
 drivers/platform/x86/wmi-bmof.c                        |   2 +-
 drivers/power/supply/ds2760_battery.c                  |   2 +-
 drivers/power/supply/ds2780_battery.c                  |  10 +-
 drivers/power/supply/ds2781_battery.c                  |  10 +-
 drivers/power/supply/olpc_battery.c                    |   4 +-
 drivers/ptp/ptp_ocp.c                                  |   2 +-
 drivers/rapidio/rio-sysfs.c                            |   6 +-
 drivers/s390/char/sclp_config.c                        |   2 +-
 drivers/s390/char/sclp_sd.c                            |   2 +-
 drivers/s390/cio/chp.c                                 |   2 +-
 drivers/s390/crypto/pkey_sysfs.c                       |   8 +-
 drivers/scsi/3w-sas.c                                  |   4 +-
 drivers/scsi/arcmsr/arcmsr_attr.c                      |   6 +-
 drivers/scsi/esas2r/esas2r_main.c                      |   6 +-
 drivers/scsi/ibmvscsi/ibmvfc.c                         |   2 +-
 drivers/scsi/ipr.c                                     |  10 +-
 drivers/scsi/lpfc/lpfc_attr.c                          |   8 +-
 drivers/scsi/lpfc/lpfc_debugfs.c                       |  87 ++++++--------
 drivers/scsi/lpfc/lpfc_debugfs.h                       |  11 ++
 drivers/scsi/qedf/qedf_attr.c                          |   4 +-
 drivers/scsi/qla2xxx/qla_attr.c                        |  28 ++---
 drivers/scsi/qla4xxx/ql4_attr.c                        |   4 +-
 drivers/scsi/scsi_sysfs.c                              |   6 +-
 drivers/staging/greybus/camera.c                       |   2 +-
 drivers/thermal/testing/command.c                      |  30 ++---
 drivers/usb/core/sysfs.c                               |   2 +-
 drivers/usb/usbip/vudc_sysfs.c                         |   2 +-
 drivers/video/fbdev/aty/radeon_base.c                  |   4 +-
 drivers/video/fbdev/udlfb.c                            |   4 +-
 drivers/virt/coco/guest/tsm-mr.c                       |   8 +-
 drivers/w1/slaves/w1_ds2406.c                          |   4 +-
 drivers/w1/slaves/w1_ds2408.c                          |   2 +-
 drivers/w1/slaves/w1_ds2413.c                          |   2 +-
 drivers/w1/slaves/w1_ds2430.c                          |   2 +-
 drivers/w1/slaves/w1_ds2431.c                          |   2 +-
 drivers/w1/slaves/w1_ds2433.c                          |  12 +-
 drivers/w1/slaves/w1_ds2438.c                          |   2 +-
 drivers/w1/slaves/w1_ds2780.c                          |   2 +-
 drivers/w1/slaves/w1_ds2781.c                          |   2 +-
 drivers/w1/slaves/w1_ds2805.c                          |   4 +-
 drivers/w1/slaves/w1_ds28e04.c                         |   2 +-
 drivers/w1/w1.c                                        |   2 +-
 drivers/zorro/zorro-sysfs.c                            |   4 +-
 fs/debugfs/file.c                                      |  89 ++++++--------
 fs/debugfs/inode.c                                     |   2 +-
 fs/debugfs/internal.h                                  |   2 +-
 fs/resctrl/pseudo_lock.c                               |   4 -
 fs/sysfs/file.c                                        |  10 +-
 include/linux/container_of.h                           |   3 +
 include/linux/debugfs.h                                |   4 +-
 include/linux/device.h                                 |   5 +
 include/linux/property.h                               |   7 +-
 kernel/bpf/btf.c                                       |   2 +-
 kernel/bpf/sysfs_btf.c                                 |   2 +-
 kernel/module/sysfs.c                                  |  14 +--
 mm/page_idle.c                                         |   2 +-
 mm/vmscan.c                                            |   8 +-
 net/bridge/br_sysfs_br.c                               |   2 +-
 rust/bindings/bindings_helper.h                        |   2 +
 rust/helpers/auxiliary.c                               |  10 --
 rust/helpers/device.c                                  |  17 +++
 rust/helpers/dma.c                                     |   5 +
 rust/helpers/helpers.c                                 |   2 +
 rust/helpers/io.c                                      |  41 +++++++
 rust/helpers/of.c                                      |   8 ++
 rust/helpers/pci.c                                     |  10 --
 rust/helpers/platform.c                                |  10 --
 rust/helpers/property.c                                |   8 ++
 rust/kernel/acpi.rs                                    |  70 +++++++++++
 rust/kernel/auxiliary.rs                               |  49 ++++----
 rust/kernel/block/mq/tag_set.rs                        |  12 +-
 rust/kernel/cpu.rs                                     |   2 +-
 rust/kernel/cpufreq.rs                                 |  11 +-
 rust/kernel/device.rs                                  | 108 +++++++++++++++--
 rust/kernel/device/property.rs                         | 631 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 rust/kernel/device_id.rs                               |  91 ++++++++++----
 rust/kernel/devres.rs                                  | 289 +++++++++++++++++++++++++++++---------------
 rust/kernel/dma.rs                                     | 156 ++++++++++++++++++++++--
 rust/kernel/driver.rs                                  |  87 ++++++++++----
 rust/kernel/drm/device.rs                              |   2 +-
 rust/kernel/drm/driver.rs                              |  14 ++-
 rust/kernel/faux.rs                                    |   2 +-
 rust/kernel/io.rs                                      |   5 +
 rust/kernel/io/mem.rs                                  | 279 +++++++++++++++++++++++++++++++++++++++++++
 rust/kernel/io/resource.rs                             | 230 +++++++++++++++++++++++++++++++++++
 rust/kernel/lib.rs                                     |   1 +
 rust/kernel/miscdevice.rs                              |  10 +-
 rust/kernel/net/phy.rs                                 | 108 +++++++++--------
 rust/kernel/of.rs                                      |  15 ++-
 rust/kernel/pci.rs                                     |  87 ++++++++------
 rust/kernel/platform.rs                                | 144 ++++++++++++++++++----
 rust/kernel/revocable.rs                               |   8 +-
 rust/kernel/types.rs                                   |  26 ++--
 rust/pin-init/src/lib.rs                               |  40 +++++--
 samples/kobject/kobject-example.c                      |   4 +-
 samples/kobject/kset-example.c                         |   4 +-
 samples/rust/rust_dma.rs                               |  14 ++-
 samples/rust/rust_driver_auxiliary.rs                  |   3 +-
 samples/rust/rust_driver_pci.rs                        |  30 +++--
 samples/rust/rust_driver_platform.rs                   | 147 ++++++++++++++++++++++-
 scripts/const_structs.checkpatch                       |   1 +
 201 files changed, 2956 insertions(+), 963 deletions(-)
 create mode 100644 rust/helpers/of.c
 create mode 100644 rust/helpers/property.c
 create mode 100644 rust/kernel/acpi.rs
 create mode 100644 rust/kernel/device/property.rs
 create mode 100644 rust/kernel/io/mem.rs
 create mode 100644 rust/kernel/io/resource.rs

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ