| 100af58c | 07-Mar-2025 |
José Expósito <[email protected]> |
rust: kunit: allow to know if we are in a test
In some cases, we need to call test-only code from outside the test case, for example, to mock a function or a module.
In order to check whether we ar
rust: kunit: allow to know if we are in a test
In some cases, we need to call test-only code from outside the test case, for example, to mock a function or a module.
In order to check whether we are in a test or not, we need to test if `CONFIG_KUNIT` is set. Unfortunately, we cannot rely only on this condition because: - a test could be running in another thread, - some distros compile KUnit in production kernels, so checking at runtime that `current->kunit_test != NULL` is required.
Forturately, KUnit provides an optimised check in `kunit_get_current_test()`, which checks CONFIG_KUNIT, a global static key, and then the current thread's running KUnit test.
Add a safe wrapper function around this to know whether or not we are in a KUnit test and examples showing how to mock a function and a module.
Signed-off-by: José Expósito <[email protected]> Co-developed-by: Miguel Ojeda <[email protected]> Signed-off-by: Miguel Ojeda <[email protected]> Co-developed-by: David Gow <[email protected]> Signed-off-by: David Gow <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Miguel Ojeda <[email protected]>
show more ...
|
| c0010452 | 07-Mar-2025 |
José Expósito <[email protected]> |
rust: macros: add macro to easily run KUnit tests
Add a new procedural macro (`#[kunit_tests(kunit_test_suit_name)]`) to run KUnit tests using a user-space like syntax.
The macro, that should be us
rust: macros: add macro to easily run KUnit tests
Add a new procedural macro (`#[kunit_tests(kunit_test_suit_name)]`) to run KUnit tests using a user-space like syntax.
The macro, that should be used on modules, transforms every `#[test]` in a `kunit_case!` and adds a `kunit_unsafe_test_suite!` registering all of them.
The only difference with user-space tests is that instead of using `#[cfg(test)]`, `#[kunit_tests(kunit_test_suit_name)]` is used.
Note that `#[cfg(CONFIG_KUNIT)]` is added so the test module is not compiled when `CONFIG_KUNIT` is set to `n`.
Reviewed-by: David Gow <[email protected]> Signed-off-by: José Expósito <[email protected]> Co-developed-by: Boqun Feng <[email protected]> Signed-off-by: Boqun Feng <[email protected]> Co-developed-by: Miguel Ojeda <[email protected]> Signed-off-by: Miguel Ojeda <[email protected]> Reviewed-by: Tamir Duberstein <[email protected]> Signed-off-by: David Gow <[email protected]> Link: https://lore.kernel.org/r/[email protected] [ Removed spurious (in rendered form) newline in docs. - Miguel ] Signed-off-by: Miguel Ojeda <[email protected]>
show more ...
|
| 22097b96 | 07-Mar-2025 |
José Expósito <[email protected]> |
rust: kunit: add KUnit case and suite macros
Add a couple of Rust const functions and macros to allow to develop KUnit tests without relying on generated C code:
- The `kunit_unsafe_test_suite!` R
rust: kunit: add KUnit case and suite macros
Add a couple of Rust const functions and macros to allow to develop KUnit tests without relying on generated C code:
- The `kunit_unsafe_test_suite!` Rust macro is similar to the `kunit_test_suite` C macro. It requires a NULL-terminated array of test cases (see below). - The `kunit_case` Rust function is similar to the `KUNIT_CASE` C macro. It generates as case from the name and function. - The `kunit_case_null` Rust function generates a NULL test case, which is to be used as delimiter in `kunit_test_suite!`.
While these functions and macros can be used on their own, a future patch will introduce another macro to create KUnit tests using a user-space like syntax.
Signed-off-by: José Expósito <[email protected]> Co-developed-by: Matt Gilbride <[email protected]> Signed-off-by: Matt Gilbride <[email protected]> Co-developed-by: Miguel Ojeda <[email protected]> Signed-off-by: Miguel Ojeda <[email protected]> Co-developed-by: David Gow <[email protected]> Signed-off-by: David Gow <[email protected]> Link: https://lore.kernel.org/r/[email protected] [ Applied Markdown in comment. - Miguel ] Signed-off-by: Miguel Ojeda <[email protected]>
show more ...
|
| 455943aa | 18-Mar-2025 |
Danilo Krummrich <[email protected]> |
rust: platform: impl Send + Sync for platform::Device
Commit 4d320e30ee04 ("rust: platform: fix unrestricted &mut platform::Device") changed the definition of platform::Device and discarded the impl
rust: platform: impl Send + Sync for platform::Device
Commit 4d320e30ee04 ("rust: platform: fix unrestricted &mut platform::Device") changed the definition of platform::Device and discarded the implicitly derived Send and Sync traits.
This isn't required by upstream code yet, and hence did not cause any issues. However, it is relied on by upcoming drivers, hence add it back in.
Signed-off-by: Danilo Krummrich <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
| e2942bb4 | 18-Mar-2025 |
Danilo Krummrich <[email protected]> |
rust: pci: impl Send + Sync for pci::Device
Commit 7b948a2af6b5 ("rust: pci: fix unrestricted &mut pci::Device") changed the definition of pci::Device and discarded the implicitly derived Send and S
rust: pci: impl Send + Sync for pci::Device
Commit 7b948a2af6b5 ("rust: pci: fix unrestricted &mut pci::Device") changed the definition of pci::Device and discarded the implicitly derived Send and Sync traits.
This isn't required by upstream code yet, and hence did not cause any issues. However, it is relied on by upcoming drivers, hence add it back in.
Signed-off-by: Danilo Krummrich <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
| 0b9817ca | 17-Mar-2025 |
Kunwu Chan <[email protected]> |
rust: optimize rust symbol generation for SeqFile
When build the kernel using the llvm-18.1.3-rust-1.85.0-x86_64 with ARCH=arm64, the following symbols are generated:
$nm vmlinux | grep ' _R'.*SeqF
rust: optimize rust symbol generation for SeqFile
When build the kernel using the llvm-18.1.3-rust-1.85.0-x86_64 with ARCH=arm64, the following symbols are generated:
$nm vmlinux | grep ' _R'.*SeqFile | rustfilt ffff8000805b78ac T <kernel::seq_file::SeqFile>::call_printf
This Rust symbol is trivial wrappers around the C functions seq_printf. It doesn't make sense to go through a trivial wrapper for its functions, so mark it inline.
Link: https://github.com/Rust-for-Linux/linux/issues/1145 Suggested-by: Alice Ryhl <[email protected]> Co-developed-by: Grace Deng <[email protected]> Signed-off-by: Grace Deng <[email protected]> Signed-off-by: Kunwu Chan <[email protected]> Link: https://lore.kernel.org/r/[email protected] Reviewed-by: Alice Ryhl <[email protected]> Reviewed-by: Benno Lossin <[email protected]> Signed-off-by: Christian Brauner <[email protected]>
show more ...
|
| e27b0e3c | 17-Mar-2025 |
Kunwu Chan <[email protected]> |
rust: file: optimize rust symbol generation for FileDescriptorReservation
When build the kernel using the llvm-18.1.3-rust-1.85.0-x86_64 with ARCH=arm64, the following symbols are generated:
$ nm v
rust: file: optimize rust symbol generation for FileDescriptorReservation
When build the kernel using the llvm-18.1.3-rust-1.85.0-x86_64 with ARCH=arm64, the following symbols are generated:
$ nm vmlinux | grep ' _R'.*FileDescriptorReservation | rustfilt ... T <kernel::fs::file::FileDescriptorReservation>::fd_install ... T <kernel::fs::file::FileDescriptorReservation>::get_unused_fd_flags ... T <kernel::fs::file::FileDescriptorReservation as core::ops::drop::Drop>::drop
These Rust symbols are trivial wrappers around the C functions fd_install, put_unused_fd and put_task_struct. It doesn't make sense to go through a trivial wrapper for these functions, so mark them inline.
Link: https://github.com/Rust-for-Linux/linux/issues/1145 Suggested-by: Alice Ryhl <[email protected]> Co-developed-by: Grace Deng <[email protected]> Signed-off-by: Grace Deng <[email protected]> Signed-off-by: Kunwu Chan <[email protected]> Link: https://lore.kernel.org/r/[email protected] Reviewed-by: Alice Ryhl <[email protected]> Signed-off-by: Christian Brauner <[email protected]>
show more ...
/linux-6.15/.mailmap/linux-6.15/Documentation/ABI/stable/sysfs-class-bluetooth/linux-6.15/Documentation/arch/riscv/hwprobe.rst/linux-6.15/Documentation/block/ublk.rst/linux-6.15/Documentation/devicetree/bindings/arm/fsl.yaml/linux-6.15/Documentation/devicetree/bindings/dma/adi,axi-dmac.yaml/linux-6.15/Documentation/devicetree/bindings/dma/allwinner,sun4i-a10-dma.yaml/linux-6.15/Documentation/devicetree/bindings/dma/atmel,sama5d4-dma.yaml/linux-6.15/Documentation/devicetree/bindings/dma/fsl,edma.yaml/linux-6.15/Documentation/devicetree/bindings/dma/nvidia,tegra210-adma.yaml/linux-6.15/Documentation/devicetree/bindings/dma/qcom,gpi.yaml/linux-6.15/Documentation/devicetree/bindings/dma/stm32/st,stm32-dmamux.yaml/linux-6.15/Documentation/devicetree/bindings/dma/ti/k3-bcdma.yaml/linux-6.15/Documentation/devicetree/bindings/net/qcom,ethqos.yaml/linux-6.15/Documentation/devicetree/bindings/phy/phy-rockchip-naneng-combphy.yaml/linux-6.15/Documentation/devicetree/bindings/phy/qcom,ipq8074-qmp-pcie-phy.yaml/linux-6.15/Documentation/devicetree/bindings/phy/qcom,qusb2-phy.yaml/linux-6.15/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml/linux-6.15/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-usb3-uni-phy.yaml/linux-6.15/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-usb43dp-phy.yaml/linux-6.15/Documentation/devicetree/bindings/riscv/cpus.yaml/linux-6.15/Documentation/devicetree/bindings/riscv/extensions.yaml/linux-6.15/Documentation/devicetree/bindings/rtc/rtc-mxc.yaml/linux-6.15/Documentation/devicetree/bindings/sound/ti,pcm1681.yaml/linux-6.15/Documentation/filesystems/fuse-io-uring.rst/linux-6.15/Documentation/filesystems/index.rst/linux-6.15/Documentation/filesystems/locking.rst/linux-6.15/Documentation/filesystems/nfs/localio.rst/linux-6.15/Documentation/filesystems/porting.rst/linux-6.15/Documentation/filesystems/vfs.rst/linux-6.15/Documentation/kbuild/gendwarfksyms.rst/linux-6.15/Documentation/kbuild/index.rst/linux-6.15/Documentation/kbuild/modules.rst/linux-6.15/Documentation/networking/can.rst/linux-6.15/Documentation/networking/mptcp-sysctl.rst/linux-6.15/Documentation/networking/napi.rst/linux-6.15/Documentation/power/video.rst/linux-6.15/Documentation/process/changes.rst/linux-6.15/Documentation/translations/sp_SP/index.rst/linux-6.15/MAINTAINERS/linux-6.15/Makefile/linux-6.15/arch/arc/Kconfig/linux-6.15/arch/arc/Makefile/linux-6.15/arch/arc/boot/dts/Makefile/linux-6.15/arch/arc/configs/axs101_defconfig/linux-6.15/arch/arc/configs/axs103_defconfig/linux-6.15/arch/arc/configs/axs103_smp_defconfig/linux-6.15/arch/arc/configs/haps_hs_defconfig/linux-6.15/arch/arc/configs/haps_hs_smp_defconfig/linux-6.15/arch/arc/configs/hsdk_defconfig/linux-6.15/arch/arc/configs/nsim_700_defconfig/linux-6.15/arch/arc/configs/nsimosci_defconfig/linux-6.15/arch/arc/configs/nsimosci_hs_defconfig/linux-6.15/arch/arc/configs/nsimosci_hs_smp_defconfig/linux-6.15/arch/arc/configs/tb10x_defconfig/linux-6.15/arch/arc/configs/vdk_hs38_defconfig/linux-6.15/arch/arc/configs/vdk_hs38_smp_defconfig/linux-6.15/arch/arm/kernel/isa.c/linux-6.15/arch/arm64/kernel/fpsimd.c/linux-6.15/arch/arm64/kernel/process.c/linux-6.15/arch/hexagon/include/asm/cmpxchg.h/linux-6.15/arch/hexagon/include/asm/setup.h/linux-6.15/arch/hexagon/include/uapi/asm/setup.h/linux-6.15/arch/hexagon/kernel/time.c/linux-6.15/arch/hexagon/kernel/traps.c/linux-6.15/arch/m68k/configs/amiga_defconfig/linux-6.15/arch/m68k/configs/apollo_defconfig/linux-6.15/arch/m68k/configs/atari_defconfig/linux-6.15/arch/m68k/configs/bvme6000_defconfig/linux-6.15/arch/m68k/configs/hp300_defconfig/linux-6.15/arch/m68k/configs/mac_defconfig/linux-6.15/arch/m68k/configs/multi_defconfig/linux-6.15/arch/m68k/configs/mvme147_defconfig/linux-6.15/arch/m68k/configs/mvme16x_defconfig/linux-6.15/arch/m68k/configs/q40_defconfig/linux-6.15/arch/m68k/configs/sun3_defconfig/linux-6.15/arch/m68k/configs/sun3x_defconfig/linux-6.15/arch/mips/kernel/syscalls/syscall_o32.tbl/linux-6.15/arch/powerpc/configs/ppc64_defconfig/linux-6.15/arch/powerpc/kernel/idle.c/linux-6.15/arch/powerpc/kernel/module_64.c/linux-6.15/arch/powerpc/platforms/pseries/eeh_pseries.c/linux-6.15/arch/powerpc/platforms/pseries/iommu.c/linux-6.15/arch/powerpc/platforms/pseries/mobility.c/linux-6.15/arch/riscv/Kconfig.errata/linux-6.15/arch/riscv/Kconfig.vendor/linux-6.15/arch/riscv/Makefile.postlink/linux-6.15/arch/riscv/boot/dts/allwinner/sun20i-d1s.dtsi/linux-6.15/arch/riscv/configs/defconfig/linux-6.15/arch/riscv/errata/thead/errata.c/linux-6.15/arch/riscv/include/asm/bugs.h/linux-6.15/arch/riscv/include/asm/cpufeature.h/linux-6.15/arch/riscv/include/asm/csr.h/linux-6.15/arch/riscv/include/asm/errata_list.h/linux-6.15/arch/riscv/include/asm/futex.h/linux-6.15/arch/riscv/include/asm/hwprobe.h/linux-6.15/arch/riscv/include/asm/switch_to.h/linux-6.15/arch/riscv/include/asm/vector.h/linux-6.15/arch/riscv/include/asm/vendor_extensions/thead.h/linux-6.15/arch/riscv/include/asm/vendor_extensions/thead_hwprobe.h/linux-6.15/arch/riscv/include/asm/vendor_extensions/vendor_hwprobe.h/linux-6.15/arch/riscv/include/uapi/asm/hwprobe.h/linux-6.15/arch/riscv/include/uapi/asm/vendor/thead.h/linux-6.15/arch/riscv/kernel/Makefile/linux-6.15/arch/riscv/kernel/bugs.c/linux-6.15/arch/riscv/kernel/cpufeature.c/linux-6.15/arch/riscv/kernel/kernel_mode_vector.c/linux-6.15/arch/riscv/kernel/process.c/linux-6.15/arch/riscv/kernel/signal.c/linux-6.15/arch/riscv/kernel/sys_hwprobe.c/linux-6.15/arch/riscv/kernel/vector.c/linux-6.15/arch/riscv/kernel/vendor_extensions.c/linux-6.15/arch/riscv/kernel/vendor_extensions/Makefile/linux-6.15/arch/riscv/kernel/vendor_extensions/thead.c/linux-6.15/arch/riscv/kernel/vendor_extensions/thead_hwprobe.c/linux-6.15/arch/riscv/mm/fault.c/linux-6.15/arch/riscv/mm/init.c/linux-6.15/arch/s390/Kconfig/linux-6.15/arch/s390/Makefile/linux-6.15/arch/s390/Makefile.postlink/linux-6.15/arch/s390/appldata/appldata_base.c/linux-6.15/arch/s390/boot/als.c/linux-6.15/arch/s390/boot/boot.h/linux-6.15/arch/s390/boot/decompressor.c/linux-6.15/arch/s390/boot/ipl_parm.c/linux-6.15/arch/s390/boot/ipl_report.c/linux-6.15/arch/s390/boot/kaslr.c/linux-6.15/arch/s390/boot/pgm_check_info.c/linux-6.15/arch/s390/boot/physmem_info.c/linux-6.15/arch/s390/boot/printk.c/linux-6.15/arch/s390/boot/startup.c/linux-6.15/arch/s390/boot/vmem.c/linux-6.15/arch/s390/include/asm/asm-extable.h/linux-6.15/arch/s390/include/asm/asm.h/linux-6.15/arch/s390/include/asm/bitops.h/linux-6.15/arch/s390/include/asm/boot_data.h/linux-6.15/arch/s390/include/asm/fpu-insn.h/linux-6.15/arch/s390/include/asm/ftrace.h/linux-6.15/arch/s390/include/asm/futex.h/linux-6.15/arch/s390/include/asm/page.h/linux-6.15/arch/s390/include/asm/physmem_info.h/linux-6.15/arch/s390/include/asm/sclp.h/linux-6.15/arch/s390/include/asm/uaccess.h/linux-6.15/arch/s390/kernel/debug.c/linux-6.15/arch/s390/kernel/early.c/linux-6.15/arch/s390/kernel/ftrace.c/linux-6.15/arch/s390/kernel/hiperdispatch.c/linux-6.15/arch/s390/kernel/setup.c/linux-6.15/arch/s390/kernel/topology.c/linux-6.15/arch/s390/kernel/vmlinux.lds.S/linux-6.15/arch/s390/lib/uaccess.c/linux-6.15/arch/s390/mm/cmm.c/linux-6.15/arch/s390/mm/extable.c/linux-6.15/arch/s390/mm/pgalloc.c/linux-6.15/arch/s390/mm/vmem.c/linux-6.15/arch/s390/pci/pci_bus.c/linux-6.15/arch/s390/purgatory/Makefile/linux-6.15/arch/s390/tools/gen_opcode_table.c/linux-6.15/arch/sh/Kbuild/linux-6.15/arch/sh/Kconfig/linux-6.15/arch/sh/boards/Kconfig/linux-6.15/arch/sh/boot/dts/Makefile/linux-6.15/arch/sh/kernel/irq.c/linux-6.15/arch/sh/kernel/setup.c/linux-6.15/arch/um/drivers/rtc_kern.c/linux-6.15/arch/um/include/asm/pgtable.h/linux-6.15/arch/um/kernel/mem.c/linux-6.15/arch/um/kernel/process.c/linux-6.15/arch/um/kernel/um_arch.c/linux-6.15/arch/um/os-Linux/main.c/linux-6.15/arch/x86/Makefile.postlink/linux-6.15/arch/x86/coco/sev/Makefile/linux-6.15/arch/x86/entry/vdso/vdso32-setup.c/linux-6.15/arch/x86/include/asm/hpet.h/linux-6.15/arch/x86/include/asm/mmu.h/linux-6.15/arch/x86/include/asm/mmu_context.h/linux-6.15/arch/x86/include/asm/tlbflush.h/linux-6.15/arch/x86/kernel/acpi/boot.c/linux-6.15/arch/x86/kernel/alternative.c/linux-6.15/arch/x86/kernel/cpu/bus_lock.c/linux-6.15/arch/x86/kernel/hpet.c/linux-6.15/arch/x86/mm/fault.c/linux-6.15/arch/x86/mm/tlb.c/linux-6.15/arch/x86/um/shared/sysdep/ptrace.h/linux-6.15/arch/x86/xen/mmu_pv.c/linux-6.15/block/blk-cgroup.c/linux-6.15/block/blk-core.c/linux-6.15/block/blk-ia-ranges.c/linux-6.15/block/blk-iocost.c/linux-6.15/block/blk-iolatency.c/linux-6.15/block/blk-mq-cpumap.c/linux-6.15/block/blk-mq-sysfs.c/linux-6.15/block/blk-mq.c/linux-6.15/block/blk-pm.c/linux-6.15/block/blk-rq-qos.c/linux-6.15/block/blk-settings.c/linux-6.15/block/blk-sysfs.c/linux-6.15/block/blk-throttle.c/linux-6.15/block/blk-zoned.c/linux-6.15/block/elevator.c/linux-6.15/block/fops.c/linux-6.15/crypto/fips.c/linux-6.15/drivers/acpi/numa/hmat.c/linux-6.15/drivers/acpi/numa/srat.c/linux-6.15/drivers/acpi/x86/utils.c/linux-6.15/drivers/ata/libata-core.c/linux-6.15/drivers/ata/libata-sff.c/linux-6.15/drivers/base/cpu.c/linux-6.15/drivers/base/firmware_loader/fallback_table.c/linux-6.15/drivers/base/power/main.c/linux-6.15/drivers/block/aoe/aoedev.c/linux-6.15/drivers/block/ataflop.c/linux-6.15/drivers/block/loop.c/linux-6.15/drivers/block/nbd.c/linux-6.15/drivers/block/rbd.c/linux-6.15/drivers/block/sunvdc.c/linux-6.15/drivers/block/swim3.c/linux-6.15/drivers/block/virtio_blk.c/linux-6.15/drivers/bluetooth/btnxpuart.c/linux-6.15/drivers/bluetooth/btusb.c/linux-6.15/drivers/cdrom/cdrom.c/linux-6.15/drivers/char/hpet.c/linux-6.15/drivers/char/ipmi/ipmi_poweroff.c/linux-6.15/drivers/char/random.c/linux-6.15/drivers/cpufreq/Kconfig.arm/linux-6.15/drivers/cpufreq/acpi-cpufreq.c/linux-6.15/drivers/cpufreq/cppc_cpufreq.c/linux-6.15/drivers/cpufreq/cpufreq.c/linux-6.15/drivers/cpufreq/s3c64xx-cpufreq.c/linux-6.15/drivers/cpuidle/governors/teo.c/linux-6.15/drivers/cxl/core/pci.c/linux-6.15/drivers/cxl/core/regs.c/linux-6.15/drivers/cxl/core/trace.h/linux-6.15/drivers/cxl/cxl.h/linux-6.15/drivers/cxl/pci.c/linux-6.15/drivers/cxl/port.c/linux-6.15/drivers/dma/Kconfig/linux-6.15/drivers/dma/Makefile/linux-6.15/drivers/dma/amd/Kconfig/linux-6.15/drivers/dma/amd/Makefile/linux-6.15/drivers/dma/amd/ae4dma/Makefile/linux-6.15/drivers/dma/amd/ae4dma/ae4dma-dev.c/linux-6.15/drivers/dma/amd/ae4dma/ae4dma-pci.c/linux-6.15/drivers/dma/amd/ae4dma/ae4dma.h/linux-6.15/drivers/dma/amd/ptdma/Makefile/linux-6.15/drivers/dma/amd/ptdma/ptdma-debugfs.c/linux-6.15/drivers/dma/amd/ptdma/ptdma-dev.c/linux-6.15/drivers/dma/amd/ptdma/ptdma-dmaengine.c/linux-6.15/drivers/dma/amd/ptdma/ptdma-pci.c/linux-6.15/drivers/dma/amd/ptdma/ptdma.h/linux-6.15/drivers/dma/amd/qdma/qdma.c/linux-6.15/drivers/dma/bcm2835-dma.c/linux-6.15/drivers/dma/fsl-edma-common.c/linux-6.15/drivers/dma/fsl-edma-common.h/linux-6.15/drivers/dma/fsl-edma-main.c/linux-6.15/drivers/dma/idxd/cdev.c/linux-6.15/drivers/dma/idxd/idxd.h/linux-6.15/drivers/dma/idxd/init.c/linux-6.15/drivers/dma/idxd/irq.c/linux-6.15/drivers/dma/idxd/registers.h/linux-6.15/drivers/dma/idxd/sysfs.c/linux-6.15/drivers/dma/mv_xor.c/linux-6.15/drivers/dma/qcom/bam_dma.c/linux-6.15/drivers/dma/qcom/gpi.c/linux-6.15/drivers/dma/sh/rcar-dmac.c/linux-6.15/drivers/dma/sun4i-dma.c/linux-6.15/drivers/dma/tegra210-adma.c/linux-6.15/drivers/dma/ti/edma.c/linux-6.15/drivers/dma/ti/k3-udma.c/linux-6.15/drivers/dma/xilinx/xdma.c/linux-6.15/drivers/dma/xilinx/xilinx_dma.c/linux-6.15/drivers/firmware/cirrus/Kconfig/linux-6.15/drivers/gpio/gpio-mxc.c/linux-6.15/drivers/gpu/drm/amd/amdgpu/gfx_v12_0.c/linux-6.15/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c/linux-6.15/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c/linux-6.15/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c/linux-6.15/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c/linux-6.15/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c/linux-6.15/drivers/gpu/drm/i915/i915_perf.c/linux-6.15/drivers/gpu/drm/xe/xe_observation.c/linux-6.15/drivers/hv/hv_common.c/linux-6.15/drivers/i2c/busses/Kconfig/linux-6.15/drivers/i2c/i2c-core-base.c/linux-6.15/drivers/md/md-bitmap.c/linux-6.15/drivers/md/md.c/linux-6.15/drivers/media/usb/uvc/uvc_driver.c/linux-6.15/drivers/misc/sgi-xp/xpc_main.c/linux-6.15/drivers/mtd/mtd_blkdevs.c/linux-6.15/drivers/mtd/ubi/build.c/linux-6.15/drivers/mtd/ubi/cdev.c/linux-6.15/drivers/mtd/ubi/ubi.h/linux-6.15/drivers/mtd/ubi/wl.c/linux-6.15/drivers/net/bonding/bond_main.c/linux-6.15/drivers/net/ethernet/broadcom/bgmac.h/linux-6.15/drivers/net/ethernet/broadcom/tg3.c/linux-6.15/drivers/net/ethernet/davicom/dm9000.c/linux-6.15/drivers/net/ethernet/freescale/fec_main.c/linux-6.15/drivers/net/ethernet/hisilicon/hns3/hnae3.c/linux-6.15/drivers/net/ethernet/hisilicon/hns3/hnae3.h/linux-6.15/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c/linux-6.15/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c/linux-6.15/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c/linux-6.15/drivers/net/ethernet/intel/iavf/iavf_main.c/linux-6.15/drivers/net/ethernet/intel/ice/ice_adminq_cmd.h/linux-6.15/drivers/net/ethernet/intel/ice/ice_ethtool.c/linux-6.15/drivers/net/ethernet/intel/ice/ice_ethtool.h/linux-6.15/drivers/net/ethernet/intel/ice/ice_parser.h/linux-6.15/drivers/net/ethernet/intel/ice/ice_parser_rt.c/linux-6.15/drivers/net/ethernet/intel/idpf/idpf_controlq.c/linux-6.15/drivers/net/ethernet/intel/idpf/idpf_main.c/linux-6.15/drivers/net/ethernet/intel/idpf/idpf_virtchnl.c/linux-6.15/drivers/net/ethernet/marvell/mvneta.c/linux-6.15/drivers/net/ethernet/mediatek/airoha_eth.c/linux-6.15/drivers/net/ethernet/mellanox/mlx5/core/en_main.c/linux-6.15/drivers/net/ethernet/nvidia/forcedeth.c/linux-6.15/drivers/net/ethernet/realtek/8139too.c/linux-6.15/drivers/net/ethernet/renesas/ravb_main.c/linux-6.15/drivers/net/ethernet/renesas/sh_eth.c/linux-6.15/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c/linux-6.15/drivers/net/ethernet/sun/niu.c/linux-6.15/drivers/net/ethernet/via/via-rhine.c/linux-6.15/drivers/net/netdevsim/ethtool.c/linux-6.15/drivers/net/netdevsim/netdevsim.h/linux-6.15/drivers/net/netdevsim/udp_tunnels.c/linux-6.15/drivers/net/phy/marvell-88q2xxx.c/linux-6.15/drivers/net/phy/nxp-c45-tja11xx.c/linux-6.15/drivers/net/usb/ipheth.c/linux-6.15/drivers/net/usb/rtl8150.c/linux-6.15/drivers/net/vxlan/vxlan_vnifilter.c/linux-6.15/drivers/net/wireless/mediatek/mt76/mt7603/mac.c/linux-6.15/drivers/net/wireless/mediatek/mt76/mt7615/pci.c/linux-6.15/drivers/net/wireless/mediatek/mt76/mt7615/pci_mac.c/linux-6.15/drivers/net/wireless/mediatek/mt76/mt76x0/pci.c/linux-6.15/drivers/net/wireless/mediatek/mt76/mt76x02_mmio.c/linux-6.15/drivers/net/wireless/mediatek/mt76/mt76x2/pci.c/linux-6.15/drivers/net/wireless/mediatek/mt76/mt7915/mac.c/linux-6.15/drivers/net/wireless/mediatek/mt76/mt7921/pci.c/linux-6.15/drivers/net/wireless/mediatek/mt76/mt7921/pci_mac.c/linux-6.15/drivers/net/wireless/mediatek/mt76/mt7925/pci.c/linux-6.15/drivers/net/wireless/mediatek/mt76/mt7925/pci_mac.c/linux-6.15/drivers/net/wireless/mediatek/mt76/mt7996/mac.c/linux-6.15/drivers/nvme/host/core.c/linux-6.15/drivers/nvme/host/multipath.c/linux-6.15/drivers/pci/devres.c/linux-6.15/drivers/perf/arm_pmuv3.c/linux-6.15/drivers/perf/riscv_pmu_sbi.c/linux-6.15/drivers/phy/allwinner/phy-sun4i-usb.c/linux-6.15/drivers/phy/freescale/phy-fsl-samsung-hdmi.c/linux-6.15/drivers/phy/hisilicon/phy-hi3670-pcie.c/linux-6.15/drivers/phy/marvell/phy-mvebu-cp110-comphy.c/linux-6.15/drivers/phy/mediatek/phy-mtk-hdmi-mt8195.c/linux-6.15/drivers/phy/mediatek/phy-mtk-hdmi-mt8195.h/linux-6.15/drivers/phy/mediatek/phy-mtk-hdmi.c/linux-6.15/drivers/phy/mediatek/phy-mtk-hdmi.h/linux-6.15/drivers/phy/phy-core.c/linux-6.15/drivers/phy/qualcomm/phy-qcom-qmp-combo.c/linux-6.15/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c/linux-6.15/drivers/phy/qualcomm/phy-qcom-qmp-pcs-pcie-v4_20.h/linux-6.15/drivers/phy/qualcomm/phy-qcom-qmp-pcs-pcie-v5_20.h/linux-6.15/drivers/phy/qualcomm/phy-qcom-qmp-pcs-pcie-v6.h/linux-6.15/drivers/phy/qualcomm/phy-qcom-qmp-pcs-v2.h/linux-6.15/drivers/phy/qualcomm/phy-qcom-qmp-pcs-v6.h/linux-6.15/drivers/phy/qualcomm/phy-qcom-qmp-qserdes-txrx-v6.h/linux-6.15/drivers/phy/qualcomm/phy-qcom-qmp-usb.c/linux-6.15/drivers/phy/qualcomm/phy-qcom-qusb2.c/linux-6.15/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c/linux-6.15/drivers/phy/rockchip/phy-rockchip-pcie.c/linux-6.15/drivers/phy/rockchip/phy-rockchip-typec.c/linux-6.15/drivers/phy/samsung/Kconfig/linux-6.15/drivers/phy/samsung/phy-samsung-ufs.c/linux-6.15/drivers/phy/tegra/Kconfig/linux-6.15/drivers/ptp/ptp_chardev.c/linux-6.15/drivers/ptp/ptp_clock.c/linux-6.15/drivers/regulator/core.c/linux-6.15/drivers/regulator/tps6287x-regulator.c/linux-6.15/drivers/rtc/Kconfig/linux-6.15/drivers/rtc/rtc-88pm80x.c/linux-6.15/drivers/rtc/rtc-88pm860x.c/linux-6.15/drivers/rtc/rtc-amlogic-a4.c/linux-6.15/drivers/rtc/rtc-armada38x.c/linux-6.15/drivers/rtc/rtc-as3722.c/linux-6.15/drivers/rtc/rtc-at91rm9200.c/linux-6.15/drivers/rtc/rtc-at91sam9.c/linux-6.15/drivers/rtc/rtc-cadence.c/linux-6.15/drivers/rtc/rtc-cmos.c/linux-6.15/drivers/rtc/rtc-cpcap.c/linux-6.15/drivers/rtc/rtc-cros-ec.c/linux-6.15/drivers/rtc/rtc-da9055.c/linux-6.15/drivers/rtc/rtc-ds3232.c/linux-6.15/drivers/rtc/rtc-isl1208.c/linux-6.15/drivers/rtc/rtc-jz4740.c/linux-6.15/drivers/rtc/rtc-loongson.c/linux-6.15/drivers/rtc/rtc-lp8788.c/linux-6.15/drivers/rtc/rtc-lpc32xx.c/linux-6.15/drivers/rtc/rtc-max77686.c/linux-6.15/drivers/rtc/rtc-max8925.c/linux-6.15/drivers/rtc/rtc-max8997.c/linux-6.15/drivers/rtc/rtc-meson-vrtc.c/linux-6.15/drivers/rtc/rtc-mpc5121.c/linux-6.15/drivers/rtc/rtc-mt6397.c/linux-6.15/drivers/rtc/rtc-mv.c/linux-6.15/drivers/rtc/rtc-mxc.c/linux-6.15/drivers/rtc/rtc-mxc_v2.c/linux-6.15/drivers/rtc/rtc-omap.c/linux-6.15/drivers/rtc/rtc-palmas.c/linux-6.15/drivers/rtc/rtc-pcf2127.c/linux-6.15/drivers/rtc/rtc-pcf85063.c/linux-6.15/drivers/rtc/rtc-pic32.c/linux-6.15/drivers/rtc/rtc-pm8xxx.c/linux-6.15/drivers/rtc/rtc-pxa.c/linux-6.15/drivers/rtc/rtc-rc5t583.c/linux-6.15/drivers/rtc/rtc-rc5t619.c/linux-6.15/drivers/rtc/rtc-renesas-rtca3.c/linux-6.15/drivers/rtc/rtc-rk808.c/linux-6.15/drivers/rtc/rtc-s3c.c/linux-6.15/drivers/rtc/rtc-s5m.c/linux-6.15/drivers/rtc/rtc-sa1100.c/linux-6.15/drivers/rtc/rtc-sc27xx.c/linux-6.15/drivers/rtc/rtc-sh.c/linux-6.15/drivers/rtc/rtc-spear.c/linux-6.15/drivers/rtc/rtc-stm32.c/linux-6.15/drivers/rtc/rtc-sun6i.c/linux-6.15/drivers/rtc/rtc-sunplus.c/linux-6.15/drivers/rtc/rtc-tegra.c/linux-6.15/drivers/rtc/rtc-test.c/linux-6.15/drivers/rtc/rtc-tps6586x.c/linux-6.15/drivers/rtc/rtc-tps65910.c/linux-6.15/drivers/rtc/rtc-tps6594.c/linux-6.15/drivers/rtc/rtc-twl.c/linux-6.15/drivers/rtc/rtc-wm831x.c/linux-6.15/drivers/rtc/rtc-wm8350.c/linux-6.15/drivers/rtc/rtc-xgene.c/linux-6.15/drivers/rtc/rtc-zynqmp.c/linux-6.15/drivers/s390/char/sclp.c/linux-6.15/drivers/s390/char/vmlogrdr.c/linux-6.15/drivers/scsi/scsi_lib.c/linux-6.15/drivers/scsi/scsi_scan.c/linux-6.15/drivers/scsi/scsi_sysctl.c/linux-6.15/drivers/scsi/sg.c/linux-6.15/drivers/soundwire/amd_manager.c/linux-6.15/drivers/soundwire/bus.c/linux-6.15/drivers/soundwire/bus.h/linux-6.15/drivers/soundwire/bus_type.c/linux-6.15/drivers/soundwire/generic_bandwidth_allocation.c/linux-6.15/drivers/soundwire/irq.c/linux-6.15/drivers/soundwire/irq.h/linux-6.15/drivers/soundwire/mipi_disco.c/linux-6.15/drivers/soundwire/qcom.c/linux-6.15/drivers/soundwire/stream.c/linux-6.15/drivers/ufs/core/ufs-sysfs.c/linux-6.15/drivers/vfio/pci/nvgrace-gpu/main.c/linux-6.15/drivers/vfio/pci/vfio_pci_config.c/linux-6.15/drivers/vfio/pci/vfio_pci_core.c/linux-6.15/drivers/vfio/pci/vfio_pci_rdwr.c/linux-6.15/drivers/vfio/platform/vfio_platform_common.c/linux-6.15/drivers/xen/balloon.c/linux-6.15/drivers/xen/pcpu.c/linux-6.15/drivers/xen/pvcalls-front.c/linux-6.15/drivers/xen/pvcalls-front.h/linux-6.15/fs/9p/v9fs.h/linux-6.15/fs/9p/vfs_dentry.c/linux-6.15/fs/afs/dir.c/linux-6.15/fs/aio.c/linux-6.15/fs/anon_inodes.c/linux-6.15/fs/bcachefs/btree_cache.c/linux-6.15/fs/bcachefs/btree_iter.c/linux-6.15/fs/bcachefs/btree_key_cache.c/linux-6.15/fs/bcachefs/btree_trans_commit.c/linux-6.15/fs/bcachefs/compress.c/linux-6.15/fs/bcachefs/compress.h/linux-6.15/fs/bcachefs/data_update.c/linux-6.15/fs/bcachefs/debug.c/linux-6.15/fs/bcachefs/fsck.c/linux-6.15/fs/bcachefs/io_write.c/linux-6.15/fs/bcachefs/io_write.h/linux-6.15/fs/bcachefs/journal.c/linux-6.15/fs/bcachefs/journal.h/linux-6.15/fs/bcachefs/journal_io.c/linux-6.15/fs/bcachefs/journal_reclaim.c/linux-6.15/fs/bcachefs/journal_reclaim.h/linux-6.15/fs/bcachefs/journal_types.h/linux-6.15/fs/bcachefs/movinggc.c/linux-6.15/fs/bcachefs/opts.h/linux-6.15/fs/bcachefs/recovery.c/linux-6.15/fs/bcachefs/sb-errors_format.h/linux-6.15/fs/bcachefs/str_hash.c/linux-6.15/fs/bcachefs/trace.h/linux-6.15/fs/bcachefs/util.h/linux-6.15/fs/cachefiles/error_inject.c/linux-6.15/fs/ceph/debugfs.c/linux-6.15/fs/ceph/dir.c/linux-6.15/fs/ceph/mds_client.c/linux-6.15/fs/ceph/mds_client.h/linux-6.15/fs/coda/dir.c/linux-6.15/fs/coda/sysctl.c/linux-6.15/fs/coredump.c/linux-6.15/fs/crypto/fname.c/linux-6.15/fs/dcache.c/linux-6.15/fs/debugfs/file.c/linux-6.15/fs/devpts/inode.c/linux-6.15/fs/ecryptfs/dentry.c/linux-6.15/fs/erofs/xattr.c/linux-6.15/fs/eventpoll.c/linux-6.15/fs/exec.c/linux-6.15/fs/exfat/namei.c/linux-6.15/fs/ext4/fast_commit.c/linux-6.15/fs/ext4/fast_commit.h/linux-6.15/fs/fat/namei_vfat.c/linux-6.15/fs/file_table.c/linux-6.15/fs/fuse/Kconfig/linux-6.15/fs/fuse/Makefile/linux-6.15/fs/fuse/dax.c/linux-6.15/fs/fuse/dev.c/linux-6.15/fs/fuse/dev_uring.c/linux-6.15/fs/fuse/dev_uring_i.h/linux-6.15/fs/fuse/dir.c/linux-6.15/fs/fuse/fuse_dev_i.h/linux-6.15/fs/fuse/fuse_i.h/linux-6.15/fs/fuse/inode.c/linux-6.15/fs/fuse/sysctl.c/linux-6.15/fs/fuse/xattr.c/linux-6.15/fs/gfs2/dentry.c/linux-6.15/fs/hfs/sysdep.c/linux-6.15/fs/hostfs/hostfs_kern.c/linux-6.15/fs/inode.c/linux-6.15/fs/jfs/namei.c/linux-6.15/fs/kernfs/dir.c/linux-6.15/fs/kernfs/file.c/linux-6.15/fs/libfs.c/linux-6.15/fs/lockd/svc.c/linux-6.15/fs/locks.c/linux-6.15/fs/namei.c/linux-6.15/fs/namespace.c/linux-6.15/fs/nfs/Kconfig/linux-6.15/fs/nfs/callback_proc.c/linux-6.15/fs/nfs/client.c/linux-6.15/fs/nfs/dir.c/linux-6.15/fs/nfs/direct.c/linux-6.15/fs/nfs/flexfilelayout/flexfilelayout.c/linux-6.15/fs/nfs/flexfilelayout/flexfilelayout.h/linux-6.15/fs/nfs/inode.c/linux-6.15/fs/nfs/internal.h/linux-6.15/fs/nfs/localio.c/linux-6.15/fs/nfs/namespace.c/linux-6.15/fs/nfs/nfs3proc.c/linux-6.15/fs/nfs/nfs42proc.c/linux-6.15/fs/nfs/nfs42xdr.c/linux-6.15/fs/nfs/nfs4proc.c/linux-6.15/fs/nfs/nfs4state.c/linux-6.15/fs/nfs/nfs4sysctl.c/linux-6.15/fs/nfs/nfstrace.h/linux-6.15/fs/nfs/pagelist.c/linux-6.15/fs/nfs/proc.c/linux-6.15/fs/nfs/sysctl.c/linux-6.15/fs/nfs/sysfs.c/linux-6.15/fs/nfs/write.c/linux-6.15/fs/nfs_common/Makefile/linux-6.15/fs/nfs_common/common.c/linux-6.15/fs/nfs_common/localio_trace.c/linux-6.15/fs/nfs_common/localio_trace.h/linux-6.15/fs/nfs_common/nfslocalio.c/linux-6.15/fs/nfsd/filecache.c/linux-6.15/fs/nfsd/localio.c/linux-6.15/fs/nfsd/netns.h/linux-6.15/fs/nfsd/nfsctl.c/linux-6.15/fs/nfsd/nfssvc.c/linux-6.15/fs/nilfs2/inode.c/linux-6.15/fs/notify/dnotify/dnotify.c/linux-6.15/fs/notify/fanotify/fanotify_user.c/linux-6.15/fs/notify/inotify/inotify_user.c/linux-6.15/fs/ntfs3/attrib.c/linux-6.15/fs/ntfs3/dir.c/linux-6.15/fs/ntfs3/frecord.c/linux-6.15/fs/ntfs3/fsntfs.c/linux-6.15/fs/ntfs3/index.c/linux-6.15/fs/ntfs3/inode.c/linux-6.15/fs/ntfs3/ntfs_fs.h/linux-6.15/fs/ntfs3/record.c/linux-6.15/fs/ocfs2/dcache.c/linux-6.15/fs/ocfs2/stackglue.c/linux-6.15/fs/ocfs2/super.c/linux-6.15/fs/orangefs/dcache.c/linux-6.15/fs/orangefs/orangefs-debugfs.c/linux-6.15/fs/overlayfs/namei.c/linux-6.15/fs/overlayfs/super.c/linux-6.15/fs/pipe.c/linux-6.15/fs/proc/base.c/linux-6.15/fs/proc/fd.c/linux-6.15/fs/proc/generic.c/linux-6.15/fs/proc/proc_sysctl.c/linux-6.15/fs/quota/dquot.c/linux-6.15/fs/smb/client/asn1.c/linux-6.15/fs/smb/client/cifs_spnego.c/linux-6.15/fs/smb/client/cifsacl.c/linux-6.15/fs/smb/client/cifsfs.c/linux-6.15/fs/smb/client/cifsfs.h/linux-6.15/fs/smb/client/cifsglob.h/linux-6.15/fs/smb/client/cifspdu.h/linux-6.15/fs/smb/client/cifsproto.h/linux-6.15/fs/smb/client/cifssmb.c/linux-6.15/fs/smb/client/connect.c/linux-6.15/fs/smb/client/dir.c/linux-6.15/fs/smb/client/fs_context.c/linux-6.15/fs/smb/client/fs_context.h/linux-6.15/fs/smb/client/inode.c/linux-6.15/fs/smb/client/link.c/linux-6.15/fs/smb/client/netmisc.c/linux-6.15/fs/smb/client/nterr.c/linux-6.15/fs/smb/client/nterr.h/linux-6.15/fs/smb/client/reparse.c/linux-6.15/fs/smb/client/reparse.h/linux-6.15/fs/smb/client/sess.c/linux-6.15/fs/smb/client/smb1ops.c/linux-6.15/fs/smb/client/smb2file.c/linux-6.15/fs/smb/client/smb2inode.c/linux-6.15/fs/smb/client/smb2maperror.c/linux-6.15/fs/smb/client/smb2ops.c/linux-6.15/fs/smb/client/smb2pdu.c/linux-6.15/fs/smb/client/smb2proto.h/linux-6.15/fs/smb/common/smb2pdu.h/linux-6.15/fs/sysctls.c/linux-6.15/fs/tracefs/inode.c/linux-6.15/fs/ubifs/debug.c/linux-6.15/fs/ubifs/lpt_commit.c/linux-6.15/fs/userfaultfd.c/linux-6.15/fs/vboxsf/dir.c/linux-6.15/fs/verity/init.c/linux-6.15/fs/xfs/xfs_sysctl.c/linux-6.15/include/cxl/event.h/linux-6.15/include/linux/blk-mq.h/linux-6.15/include/linux/blkdev.h/linux-6.15/include/linux/ceph/ceph_fs.h/linux-6.15/include/linux/cpu.h/linux-6.15/include/linux/dcache.h/linux-6.15/include/linux/export.h/linux-6.15/include/linux/fscrypt.h/linux-6.15/include/linux/io_uring/cmd.h/linux-6.15/include/linux/io_uring_types.h/linux-6.15/include/linux/mm_types.h/linux-6.15/include/linux/module.h/linux-6.15/include/linux/netdevice.h/linux-6.15/include/linux/nfs_common.h/linux-6.15/include/linux/nfs_fs.h/linux-6.15/include/linux/nfs_fs_sb.h/linux-6.15/include/linux/nfs_xdr.h/linux-6.15/include/linux/nfslocalio.h/linux-6.15/include/linux/pm.h/linux-6.15/include/linux/soundwire/sdw.h/linux-6.15/include/linux/stat.h/linux-6.15/include/linux/sunrpc/clnt.h/linux-6.15/include/linux/swap.h/linux-6.15/include/net/page_pool/types.h/linux-6.15/include/net/xfrm.h/linux-6.15/include/uapi/linux/fuse.h/linux-6.15/include/uapi/mtd/ubi-user.h/linux-6.15/init/Kconfig/linux-6.15/init/do_mounts_initrd.c/linux-6.15/io_uring/Makefile/linux-6.15/io_uring/alloc_cache.c/linux-6.15/io_uring/alloc_cache.h/linux-6.15/io_uring/filetable.c/linux-6.15/io_uring/futex.c/linux-6.15/io_uring/io_uring.c/linux-6.15/io_uring/io_uring.h/linux-6.15/io_uring/msg_ring.c/linux-6.15/io_uring/net.c/linux-6.15/io_uring/net.h/linux-6.15/io_uring/poll.c/linux-6.15/io_uring/register.c/linux-6.15/io_uring/rsrc.c/linux-6.15/io_uring/rsrc.h/linux-6.15/io_uring/rw.c/linux-6.15/io_uring/rw.h/linux-6.15/io_uring/timeout.c/linux-6.15/io_uring/uring_cmd.c/linux-6.15/io_uring/waitid.c/linux-6.15/ipc/ipc_sysctl.c/linux-6.15/ipc/mq_sysctl.c/linux-6.15/kernel/acct.c/linux-6.15/kernel/audit.c/linux-6.15/kernel/bpf/syscall.c/linux-6.15/kernel/delayacct.c/linux-6.15/kernel/events/uprobes.c/linux-6.15/kernel/exit.c/linux-6.15/kernel/fork.c/linux-6.15/kernel/gen_kheaders.sh/linux-6.15/kernel/hung_task.c/linux-6.15/kernel/kexec_core.c/linux-6.15/kernel/kprobes.c/linux-6.15/kernel/latencytop.c/linux-6.15/kernel/locking/lockdep.c/linux-6.15/kernel/module/Kconfig/linux-6.15/kernel/module/internal.h/linux-6.15/kernel/module/main.c/linux-6.15/kernel/module/version.c/linux-6.15/kernel/panic.c/linux-6.15/kernel/pid.c/linux-6.15/kernel/pid_namespace.c/linux-6.15/kernel/pid_sysctl.h/linux-6.15/kernel/power/hibernate.c/linux-6.15/kernel/printk/sysctl.c/linux-6.15/kernel/reboot.c/linux-6.15/kernel/sched/autogroup.c/linux-6.15/kernel/sched/core.c/linux-6.15/kernel/sched/cpufreq_schedutil.c/linux-6.15/kernel/sched/deadline.c/linux-6.15/kernel/sched/fair.c/linux-6.15/kernel/sched/rt.c/linux-6.15/kernel/sched/syscalls.c/linux-6.15/kernel/sched/topology.c/linux-6.15/kernel/seccomp.c/linux-6.15/kernel/signal.c/linux-6.15/kernel/stackleak.c/linux-6.15/kernel/sysctl-test.c/linux-6.15/kernel/sysctl.c/linux-6.15/kernel/time/timer.c/linux-6.15/kernel/trace/ftrace.c/linux-6.15/kernel/trace/trace_events_user.c/linux-6.15/kernel/umh.c/linux-6.15/kernel/utsname_sysctl.c/linux-6.15/kernel/watchdog.c/linux-6.15/lib/Kconfig/linux-6.15/lib/Kconfig.debug/linux-6.15/lib/Makefile/linux-6.15/lib/crc32.c/linux-6.15/lib/gen_crc32table.c/linux-6.15/lib/stackinit_kunit.c/linux-6.15/lib/test_sysctl.c/linux-6.15/lib/test_xarray.c/linux-6.15/mm/compaction.c/linux-6.15/mm/gup.c/linux-6.15/mm/hugetlb.c/linux-6.15/mm/hugetlb_vmemmap.c/linux-6.15/mm/kfence/core.c/linux-6.15/mm/kmemleak.c/linux-6.15/mm/memory-failure.c/linux-6.15/mm/oom_kill.c/linux-6.15/mm/page-writeback.c/linux-6.15/mm/page_alloc.c/linux-6.15/mm/secretmem.c/linux-6.15/mm/swapfile.c/linux-6.15/mm/vmscan.c/linux-6.15/mm/zsmalloc.c/linux-6.15/net/bluetooth/l2cap_sock.c/linux-6.15/net/core/dev.c/linux-6.15/net/core/page_pool.c/linux-6.15/net/core/page_pool_priv.h/linux-6.15/net/core/page_pool_user.c/linux-6.15/net/ethtool/ioctl.c/linux-6.15/net/hsr/hsr_forward.c/linux-6.15/net/ipv4/esp4.c/linux-6.15/net/ipv4/ipmr_base.c/linux-6.15/net/ipv4/tcp_output.c/linux-6.15/net/ipv6/esp6.c/linux-6.15/net/ipv6/xfrm6_output.c/linux-6.15/net/mptcp/ctrl.c/linux-6.15/net/mptcp/options.c/linux-6.15/net/mptcp/pm_netlink.c/linux-6.15/net/mptcp/protocol.c/linux-6.15/net/mptcp/protocol.h/linux-6.15/net/ncsi/ncsi-manage.c/linux-6.15/net/ncsi/ncsi-rsp.c/linux-6.15/net/netfilter/nf_tables_api.c/linux-6.15/net/nfc/nci/hci.c/linux-6.15/net/rose/rose_timer.c/linux-6.15/net/rxrpc/peer_event.c/linux-6.15/net/rxrpc/peer_object.c/linux-6.15/net/sched/sch_ets.c/linux-6.15/net/sunrpc/clnt.c/linux-6.15/net/sunrpc/debugfs.c/linux-6.15/net/sunrpc/rpc_pipe.c/linux-6.15/net/vmw_vsock/af_vsock.c/linux-6.15/net/xfrm/xfrm_interface_core.c/linux-6.15/net/xfrm/xfrm_output.c/linux-6.15/net/xfrm/xfrm_policy.c/linux-6.15/net/xfrm/xfrm_replay.c/linux-6.15/net/xfrm/xfrm_state.c/linux-6.15/rust/Makefilefs/file.rs/linux-6.15/samples/check-exec/inc.c/linux-6.15/scripts/Makefile/linux-6.15/scripts/Makefile.build/linux-6.15/scripts/Makefile.defconf/linux-6.15/scripts/Makefile.extrawarn/linux-6.15/scripts/Makefile.lib/linux-6.15/scripts/Makefile.modinst/linux-6.15/scripts/Makefile.modpost/linux-6.15/scripts/gdb/linux/cpus.py/linux-6.15/scripts/gendwarfksyms/.gitignore/linux-6.15/scripts/gendwarfksyms/Makefile/linux-6.15/scripts/gendwarfksyms/cache.c/linux-6.15/scripts/gendwarfksyms/die.c/linux-6.15/scripts/gendwarfksyms/dwarf.c/linux-6.15/scripts/gendwarfksyms/examples/kabi.h/linux-6.15/scripts/gendwarfksyms/examples/kabi_ex.c/linux-6.15/scripts/gendwarfksyms/examples/kabi_ex.h/linux-6.15/scripts/gendwarfksyms/examples/symbolptr.c/linux-6.15/scripts/gendwarfksyms/gendwarfksyms.c/linux-6.15/scripts/gendwarfksyms/gendwarfksyms.h/linux-6.15/scripts/gendwarfksyms/kabi.c/linux-6.15/scripts/gendwarfksyms/symbols.c/linux-6.15/scripts/gendwarfksyms/types.c/linux-6.15/scripts/genksyms/Makefile/linux-6.15/scripts/genksyms/genksyms.c/linux-6.15/scripts/genksyms/genksyms.h/linux-6.15/scripts/genksyms/lex.l/linux-6.15/scripts/genksyms/parse.y/linux-6.15/scripts/kconfig/Makefile/linux-6.15/scripts/kconfig/confdata.c/linux-6.15/scripts/kconfig/qconf.cc/linux-6.15/scripts/kconfig/symbol.c/linux-6.15/scripts/mod/modpost.c/linux-6.15/scripts/package/PKGBUILD/linux-6.15/scripts/package/builddeb/linux-6.15/scripts/package/install-extmod-build/linux-6.15/scripts/package/mkdebian/linux-6.15/security/apparmor/lsm.c/linux-6.15/security/keys/sysctl.c/linux-6.15/security/yama/yama_lsm.c/linux-6.15/sound/core/pcm_native.c/linux-6.15/sound/pci/hda/hda_auto_parser.c/linux-6.15/sound/pci/hda/hda_auto_parser.h/linux-6.15/sound/pci/hda/patch_realtek.c/linux-6.15/sound/soc/amd/acp/acp-i2s.c/linux-6.15/sound/soc/amd/yc/acp6x-mach.c/linux-6.15/sound/soc/codecs/da7213.c/linux-6.15/sound/soc/codecs/es8316.c/linux-6.15/sound/soc/codecs/es8326.c/linux-6.15/sound/soc/codecs/rt5514.c/linux-6.15/sound/soc/fsl/Kconfig/linux-6.15/sound/soc/fsl/fsl_asrc_m2m.c/linux-6.15/sound/soc/generic/audio-graph-card2.c/linux-6.15/sound/soc/intel/boards/bytcr_rt5640.c/linux-6.15/sound/soc/renesas/Kconfig/linux-6.15/sound/soc/rockchip/rockchip_i2s_tdm.c/linux-6.15/sound/soc/sof/imx/imx8.c/linux-6.15/sound/soc/sof/imx/imx8m.c/linux-6.15/sound/soc/sof/imx/imx8ulp.c/linux-6.15/sound/soc/sof/intel/bdw.c/linux-6.15/sound/soc/sof/intel/byt.c/linux-6.15/sound/soc/sof/mediatek/mt8186/mt8186.c/linux-6.15/sound/soc/sof/mediatek/mt8195/mt8195.c/linux-6.15/sound/usb/quirks.c/linux-6.15/tools/net/ynl/lib/ynl.c/linux-6.15/tools/perf/builtin-trace.c/linux-6.15/tools/perf/tests/shell/trace_btf_enum.sh/linux-6.15/tools/perf/util/annotate.c/linux-6.15/tools/perf/util/annotate.h/linux-6.15/tools/perf/util/bpf_skel/augmented_raw_syscalls.bpf.c/linux-6.15/tools/perf/util/cpumap.c/linux-6.15/tools/perf/util/disasm.c/linux-6.15/tools/power/x86/turbostat/turbostat.8/linux-6.15/tools/power/x86/turbostat/turbostat.c/linux-6.15/tools/testing/cxl/test/mem.c/linux-6.15/tools/testing/cxl/test/mock.c/linux-6.15/tools/testing/selftests/bpf/progs/find_vma.c/linux-6.15/tools/testing/selftests/drivers/net/netdevsim/udp_tunnel_nic.sh/linux-6.15/tools/testing/selftests/exec/check-exec.c/linux-6.15/tools/testing/selftests/gpio/gpio-sim.sh/linux-6.15/tools/testing/selftests/landlock/fs_test.c/linux-6.15/tools/testing/selftests/net/bpf_offload.py/linux-6.15/tools/testing/selftests/net/lib/Makefile/linux-6.15/tools/testing/selftests/net/mptcp/Makefile/linux-6.15/tools/testing/selftests/net/openvswitch/Makefile/linux-6.15/tools/testing/selftests/net/packetdrill/ksft_runner.sh/linux-6.15/tools/testing/selftests/riscv/vector/.gitignore/linux-6.15/tools/testing/selftests/riscv/vector/Makefile/linux-6.15/tools/testing/selftests/riscv/vector/v_exec_initval_nolibc.c/linux-6.15/tools/testing/selftests/riscv/vector/v_helpers.c/linux-6.15/tools/testing/selftests/riscv/vector/v_helpers.h/linux-6.15/tools/testing/selftests/riscv/vector/v_initval.c/linux-6.15/tools/testing/selftests/riscv/vector/vstate_exec_nolibc.c/linux-6.15/tools/testing/selftests/riscv/vector/vstate_prctl.c/linux-6.15/tools/testing/selftests/x86/lam.c/linux-6.15/tools/testing/vsock/util.c/linux-6.15/tools/testing/vsock/util.h/linux-6.15/tools/testing/vsock/vsock_test.c |
| 4d320e30 | 14-Mar-2025 |
Danilo Krummrich <[email protected]> |
rust: platform: fix unrestricted &mut platform::Device
As by now, platform::Device is implemented as:
#[derive(Clone)] pub struct Device(ARef<device::Device>);
This may be convenient, but has th
rust: platform: fix unrestricted &mut platform::Device
As by now, platform::Device is implemented as:
#[derive(Clone)] pub struct Device(ARef<device::Device>);
This may be convenient, but has the implication that drivers can call device methods that require a mutable reference concurrently at any point of time.
Instead define platform::Device as
pub struct Device<Ctx: DeviceContext = Normal>( Opaque<bindings::platform_dev>, PhantomData<Ctx>, );
and manually implement the AlwaysRefCounted trait.
With this we can implement methods that should only be called from bus callbacks (such as probe()) for platform::Device<Core>. Consequently, we make this type accessible in bus callbacks only.
Arbitrary references taken by the driver are still of type ARef<platform::Device> and hence don't provide access to methods that are reserved for bus callbacks.
Fixes: 683a63befc73 ("rust: platform: add basic platform device / driver abstractions") Reviewed-by: Benno Lossin <[email protected]> Signed-off-by: Danilo Krummrich <[email protected]> Acked-by: Boqun Feng <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
| 7b948a2a | 14-Mar-2025 |
Danilo Krummrich <[email protected]> |
rust: pci: fix unrestricted &mut pci::Device
As by now, pci::Device is implemented as:
#[derive(Clone)] pub struct Device(ARef<device::Device>);
This may be convenient, but has the implication t
rust: pci: fix unrestricted &mut pci::Device
As by now, pci::Device is implemented as:
#[derive(Clone)] pub struct Device(ARef<device::Device>);
This may be convenient, but has the implication that drivers can call device methods that require a mutable reference concurrently at any point of time.
Instead define pci::Device as
pub struct Device<Ctx: DeviceContext = Normal>( Opaque<bindings::pci_dev>, PhantomData<Ctx>, );
and manually implement the AlwaysRefCounted trait.
With this we can implement methods that should only be called from bus callbacks (such as probe()) for pci::Device<Core>. Consequently, we make this type accessible in bus callbacks only.
Arbitrary references taken by the driver are still of type ARef<pci::Device> and hence don't provide access to methods that are reserved for bus callbacks.
Fixes: 1bd8b6b2c5d3 ("rust: pci: add basic PCI device / driver abstractions") Reviewed-by: Benno Lossin <[email protected]> Signed-off-by: Danilo Krummrich <[email protected]> Acked-by: Boqun Feng <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
| 4d032779 | 14-Mar-2025 |
Danilo Krummrich <[email protected]> |
rust: device: implement device context marker
Some bus device functions should only be called from bus callbacks, such as probe(), remove(), resume(), suspend(), etc.
To ensure this add device cont
rust: device: implement device context marker
Some bus device functions should only be called from bus callbacks, such as probe(), remove(), resume(), suspend(), etc.
To ensure this add device context marker structs, that can be used as generics for bus device implementations.
Reviewed-by: Benno Lossin <[email protected]> Suggested-by: Benno Lossin <[email protected]> Signed-off-by: Danilo Krummrich <[email protected]> Acked-by: Boqun Feng <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
| d1f6d6c5 | 14-Mar-2025 |
Danilo Krummrich <[email protected]> |
rust: pci: use to_result() in enable_device_mem()
Simplify enable_device_mem() by using to_result() to handle the return value of the corresponding FFI call.
Reviewed-by: Benno Lossin <benno.lossin
rust: pci: use to_result() in enable_device_mem()
Simplify enable_device_mem() by using to_result() to handle the return value of the corresponding FFI call.
Reviewed-by: Benno Lossin <[email protected]> Signed-off-by: Danilo Krummrich <[email protected]> Acked-by: Boqun Feng <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
| dbd5058b | 08-Mar-2025 |
Benno Lossin <[email protected]> |
rust: make pin-init its own crate
Rename relative paths inside of the crate to still refer to the same items, also rename paths inside of the kernel crate and adjust the build system to build the cr
rust: make pin-init its own crate
Rename relative paths inside of the crate to still refer to the same items, also rename paths inside of the kernel crate and adjust the build system to build the crate.
[ Remove the `expect` (and thus the `lint_reasons` feature) since the tree now uses `quote!` from `rust/macros/export.rs`. Remove the `TokenStream` import removal, since it is now used as well.
In addition, temporarily (i.e. just for this commit) use an `--extern force:alloc` to prevent an unknown `new_uninit` error in the `rustdoc` target. For context, please see a similar case in:
https://lore.kernel.org/lkml/[email protected]/
And adjusted the message above. - Miguel ]
Signed-off-by: Benno Lossin <[email protected]> Reviewed-by: Fiona Behrens <[email protected]> Tested-by: Andreas Hindborg <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Miguel Ojeda <[email protected]>
show more ...
|
| 129e97be | 08-Mar-2025 |
Benno Lossin <[email protected]> |
rust: pin-init: fix documentation links
Before switching to compile the `pin-init` crate directly, change any links that would be invalid to links that are valid both before and after the switch.
S
rust: pin-init: fix documentation links
Before switching to compile the `pin-init` crate directly, change any links that would be invalid to links that are valid both before and after the switch.
Signed-off-by: Benno Lossin <[email protected]> Reviewed-by: Fiona Behrens <[email protected]> Tested-by: Andreas Hindborg <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Miguel Ojeda <[email protected]>
show more ...
|
| 5657c3a9 | 08-Mar-2025 |
Benno Lossin <[email protected]> |
rust: add `ZeroableOption` and implement it instead of `Zeroable` for `Option<Box<T, A>>`
When making pin-init its own crate, `Zeroable` will no longer be defined by the kernel crate and thus implem
rust: add `ZeroableOption` and implement it instead of `Zeroable` for `Option<Box<T, A>>`
When making pin-init its own crate, `Zeroable` will no longer be defined by the kernel crate and thus implementing it for `Option<Box<T, A>>` is no longer possible due to the orphan rule. For this reason introduce a new `ZeroableOption` trait that circumvents this problem.
Signed-off-by: Benno Lossin <[email protected]> Reviewed-by: Fiona Behrens <[email protected]> Reviewed-by: Andreas Hindborg <[email protected]> Tested-by: Andreas Hindborg <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Miguel Ojeda <[email protected]>
show more ...
|
| 9d29c682 | 08-Mar-2025 |
Benno Lossin <[email protected]> |
rust: pin-init: move impl `Zeroable` for `Opaque` and `Option<KBox<T>>` into the kernel crate
In order to make pin-init a standalone crate, move kernel-specific code directly into the kernel crate.
rust: pin-init: move impl `Zeroable` for `Opaque` and `Option<KBox<T>>` into the kernel crate
In order to make pin-init a standalone crate, move kernel-specific code directly into the kernel crate. Since `Opaque<T>` and `KBox<T>` are part of the kernel, move their `Zeroable` implementation into the kernel crate.
Signed-off-by: Benno Lossin <[email protected]> Tested-by: Andreas Hindborg <[email protected]> Reviewed-by: Fiona Behrens <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Miguel Ojeda <[email protected]>
show more ...
|
| 114ca41f | 08-Mar-2025 |
Benno Lossin <[email protected]> |
rust: pin-init: move `InPlaceInit` and impls of `InPlaceWrite` into the kernel crate
In order to make pin-init a standalone crate, move kernel-specific code directly into the kernel crate. This incl
rust: pin-init: move `InPlaceInit` and impls of `InPlaceWrite` into the kernel crate
In order to make pin-init a standalone crate, move kernel-specific code directly into the kernel crate. This includes the `InPlaceInit<T>` trait, its implementations and the implementations of `InPlaceWrite` for `Arc` and `UniqueArc`. All of these use the kernel's error type which will become unavailable in pin-init.
Signed-off-by: Benno Lossin <[email protected]> Reviewed-by: Fiona Behrens <[email protected]> Tested-by: Andreas Hindborg <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Miguel Ojeda <[email protected]>
show more ...
|
| 578eb8b6 | 08-Mar-2025 |
Benno Lossin <[email protected]> |
rust: pin-init: move the default error behavior of `try_[pin_]init`
Move the ability to just write `try_pin_init!(Foo { a <- a_init })` (note the missing `? Error` at the end) into the kernel crate.
rust: pin-init: move the default error behavior of `try_[pin_]init`
Move the ability to just write `try_pin_init!(Foo { a <- a_init })` (note the missing `? Error` at the end) into the kernel crate. Remove this notation from the pin-init crate, since the default when no error is specified is the kernel-internal `Error` type. Instead add two macros in the kernel crate that serve this default and are used instead of the ones from `pin-init`.
This is done, because the `Error` type that is used as the default is from the kernel crate and it thus prevents making the pin-init crate standalone.
In order to not cause a build error due to a name overlap, the macros in the pin-init crate are renamed, but this change is reverted in a future commit when it is a standalone crate.
Signed-off-by: Benno Lossin <[email protected]> Reviewed-by: Fiona Behrens <[email protected]> Reviewed-by: Andreas Hindborg <[email protected]> Tested-by: Andreas Hindborg <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Miguel Ojeda <[email protected]>
show more ...
|
| 86f7daca | 08-Mar-2025 |
Benno Lossin <[email protected]> |
rust: add extensions to the pin-init crate and move relevant documentation there
In preparation of splitting off the pin-init crate from the kernel crate, move all kernel-specific documentation from
rust: add extensions to the pin-init crate and move relevant documentation there
In preparation of splitting off the pin-init crate from the kernel crate, move all kernel-specific documentation from pin-init back into the kernel crate.
Also include an example from the user-space version [1] adapted to the kernel.
The new `init.rs` file will also be populated by kernel-specific extensions to the pin-init crate by the next commits.
Link: https://github.com/Rust-for-Linux/pin-init/blob/c1417c64c71229f0fd444d75e88f33e3c547c829/src/lib.rs#L161 [1] Signed-off-by: Benno Lossin <[email protected]> Reviewed-by: Fiona Behrens <[email protected]> Tested-by: Andreas Hindborg <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Miguel Ojeda <[email protected]>
show more ...
|
| fbf8fb32 | 08-Mar-2025 |
Benno Lossin <[email protected]> |
rust: move pin-init API into its own directory
In preparation of splitting off the pin-init crate from the kernel crate, move all pin-init API code (including proc-macros) into `rust/pin-init`.
Mov
rust: move pin-init API into its own directory
In preparation of splitting off the pin-init crate from the kernel crate, move all pin-init API code (including proc-macros) into `rust/pin-init`.
Moved modules have their import path adjusted via the `#[path = "..."]` attribute. This allows the files to still be imported in the kernel crate even though the files are in different directories.
Code that is moved out of files (but the file itself stays where it is) is imported via the `include!` macro. This also allows the code to be moved while still being part of the kernel crate.
Note that this commit moves the generics parsing code out of the GPL-2.0 file `rust/macros/helpers.rs` into the Apache-2.0 OR MIT file `rust/pin_init/internal/src/helpers.rs`. I am the sole author of that code and it already is available with that license at [1]. The same is true for the entry-points of the proc-macros `pin_data`, `pinned_drop` and `derive_zeroable` in `rust/macros/lib.rs` that are moved to `rust/pin_data/internal/src/lib.rs`. Although there are some smaller patches that fix the doctests.
Link: https://github.com/Rust-for-Linux/pinned-init [1] Signed-off-by: Benno Lossin <[email protected]> Reviewed-by: Andreas Hindborg <[email protected]> Reviewed-by: Fiona Behrens <[email protected]> Tested-by: Andreas Hindborg <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Miguel Ojeda <[email protected]>
show more ...
|
| 206dea39 | 08-Mar-2025 |
Benno Lossin <[email protected]> |
rust: init: disable doctests
The build system cannot handle doctests in the kernel crate in files outside of `rust/kernel/`. Subsequent commits will move files out of that directory, but will still
rust: init: disable doctests
The build system cannot handle doctests in the kernel crate in files outside of `rust/kernel/`. Subsequent commits will move files out of that directory, but will still compile them as part of the kernel crate. Thus ignore all doctests in the to-be-moved files.
Leave tests disabled until they are separated into their own crate and they stop causing breakage.
Signed-off-by: Benno Lossin <[email protected]> Reviewed-by: Fiona Behrens <[email protected]> Reviewed-by: Andreas Hindborg <[email protected]> Tested-by: Andreas Hindborg <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Miguel Ojeda <[email protected]>
show more ...
|
| dc60dd0c | 22-Jan-2025 |
Dirk Behme <[email protected]> |
rust: error: extend the Result documentation
Extend the Result documentation by some guidelines and examples how to handle Result error cases gracefully. And how to not handle them.
While at it fix
rust: error: extend the Result documentation
Extend the Result documentation by some guidelines and examples how to handle Result error cases gracefully. And how to not handle them.
While at it fix one missing `Result` link in the existing documentation.
[ Moved links out-of-line for improved readability. Fixed `srctree` link. Sorted out-of-line links. Added newlines for consistency with other docs. Applied paragraph break suggestion. Reworded slightly the docs in a couple places. Added Markdown.
In addition, added `#[allow(clippy::single_match)` for the first example. It cannot be an `expect` since due to a difference introduced in Rust 1.85.0 when there are comments in the arms of the `match`. Reported it upstream, but it was intended:
https://github.com/rust-lang/rust-clippy/issues/14418
Perhaps Clippy will lint about it in the future, but without autofix:
https://github.com/rust-lang/rust-clippy/pull/14420
- Miguel ]
Link: https://lore.kernel.org/rust-for-linux/CANiq72keOdXy0LFKk9SzYWwSjiD710v=hQO4xi+5E4xNALa6cA@mail.gmail.com/ Signed-off-by: Dirk Behme <[email protected]> Reviewed-by: Fiona Behrens <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Miguel Ojeda <[email protected]>
show more ...
|
| d7bf4786 | 09-Mar-2025 |
Andreas Hindborg <[email protected]> |
rust: hrtimer: implement `HrTimerPointer` for `Arc`
Allow the use of intrusive `hrtimer` fields in structs that are managed by an `Arc` by implementing `HrTimerPointer` and `RawTimerCallbck` for `Ar
rust: hrtimer: implement `HrTimerPointer` for `Arc`
Allow the use of intrusive `hrtimer` fields in structs that are managed by an `Arc` by implementing `HrTimerPointer` and `RawTimerCallbck` for `Arc`.
Acked-by: Frederic Weisbecker <[email protected]> Acked-by: Thomas Gleixner <[email protected]> Reviewed-by: Lyude Paul <[email protected]> Reviewed-by: Benno Lossin <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Andreas Hindborg <[email protected]>
show more ...
|
| a0c6fa8b | 09-Mar-2025 |
Andreas Hindborg <[email protected]> |
rust: sync: add `Arc::as_ptr`
Add a method to get a pointer to the data contained in an `Arc`.
Reviewed-by: Lyude Paul <[email protected]> Reviewed-by: Alice Ryhl <[email protected]> Reviewed-by:
rust: sync: add `Arc::as_ptr`
Add a method to get a pointer to the data contained in an `Arc`.
Reviewed-by: Lyude Paul <[email protected]> Reviewed-by: Alice Ryhl <[email protected]> Reviewed-by: Benno Lossin <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Andreas Hindborg <[email protected]>
show more ...
|
| 8a8afe93 | 09-Mar-2025 |
Andreas Hindborg <[email protected]> |
rust: hrtimer: introduce hrtimer support
Add support for intrusive use of the hrtimer system. For now, only add support for embedding one timer per Rust struct.
The hrtimer Rust API is based on the
rust: hrtimer: introduce hrtimer support
Add support for intrusive use of the hrtimer system. For now, only add support for embedding one timer per Rust struct.
The hrtimer Rust API is based on the intrusive style pattern introduced by the Rust workqueue API.
Acked-by: Frederic Weisbecker <[email protected]> Acked-by: Thomas Gleixner <[email protected]> Reviewed-by: Benno Lossin <[email protected]> Reviewed-by: Tamir Duberstein <[email protected]> Reviewed-by: Lyude Paul <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Andreas Hindborg <[email protected]>
show more ...
|
| 10b20f2d | 10-Mar-2025 |
Ethan Carter Edwards <[email protected]> |
rust/kernel/faux: mark Registration methods inline
When building the kernel on Arch Linux using on x86_64 with tools: $ rustc --version rustc 1.84.0 (9fc6b4312 2025-01-07) $ clang --version clang ve
rust/kernel/faux: mark Registration methods inline
When building the kernel on Arch Linux using on x86_64 with tools: $ rustc --version rustc 1.84.0 (9fc6b4312 2025-01-07) $ clang --version clang version 19.1.7 Target: x86_64-pc-linux-gnu
The following symbols are generated: $ nm vmlinux | rg ' _R' | rustfilt | rg faux ffffffff81959ae0 T <kernel::faux::Registration>::new ffffffff81959b40 T <kernel::faux::Registration as core::ops::drop::Drop>::drop
However, these Rust symbols are wrappers around bindings in the C faux code. Inlining these functions removes the middle-man wrapper function After applying this patch, the above function signatures disappear.
Link: https://github.com/Rust-for-Linux/linux/issues/1145 Signed-off-by: Ethan Carter Edwards <[email protected]> Acked-by: Danilo Krummrich <[email protected]> Reviewed-by: Alice Ryhl <[email protected]> Link: https://lore.kernel.org/r/jesg4yu7m6fvzmgg5tlsktrrjm36l4qsranto5mdmnucx4pvf3@nhvt4juw5es3 Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|