<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/source/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in xarray.rs</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>26ff969926a08eee069767ddbbbc301adbcd9676 - Merge tag &apos;rust-7.1&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/ojeda/linux</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/xarray.rs#26ff969926a08eee069767ddbbbc301adbcd9676</link>
        <description>Merge tag &apos;rust-7.1&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/ojeda/linuxPull Rust updates from Miguel Ojeda: &quot;Toolchain and infrastructure:   - Bump the minimum Rust version to 1.85.0 (and &apos;bindgen&apos; to 0.71.1).     As proposed in LPC 2025 and the Maintainers Summit [1], we are     going to follow Debian Stable&apos;s Rust versions as our minimum     versions.     Debian Trixie was released on 2025-08-09 with a Rust 1.85.0 and     &apos;bindgen&apos; 0.71.1 toolchain, which is a fair amount of time for e.g.     kernel developers to upgrade.     Other major distributions support a Rust version that is high     enough as well, including:       + Arch Linux.       + Fedora Linux.       + Gentoo Linux.       + Nix.       + openSUSE Slowroll and openSUSE Tumbleweed.       + Ubuntu 25.10 and 26.04 LTS. In addition, 24.04 LTS using         their versioned packages.     The merged patch series comes with the associated cleanups and     simplifications treewide that can be performed thanks to both     bumps, as well as documentation updates.     In addition, start using &apos;bindgen&apos;&apos;s &apos;--with-attribute-custom-enum&apos;     feature to set the &apos;cfi_encoding&apos; attribute for the &apos;lru_status&apos;     enum used in Binder.     Link: https://lwn.net/Articles/1050174/ [1]   - Add experimental Kconfig option (&apos;CONFIG_RUST_INLINE_HELPERS&apos;) that     inlines C helpers into Rust.     Essentially, it performs a step similar to LTO, but just for the     helpers, i.e. very local and fast.     It relies on &apos;llvm-link&apos; and its &apos;--internalize&apos; flag, and requires     a compatible LLVM between Clang and &apos;rustc&apos; (i.e. same major     version, &apos;CONFIG_RUSTC_CLANG_LLVM_COMPATIBLE&apos;). It is only enabled     for two architectures for now.     The result is a measurable speedup in different workloads that     different users have tested. For instance, for the null block     driver, it amounts to a 2%.   - Support global per-version flags.     While we already have per-version flags in many places, we didn&apos;t     have a place to set global ones that depend on the compiler     version, i.e. in &apos;rust_common_flags&apos;, which sometimes is needed to     e.g. tweak the lints set per version.     Use that to allow the &apos;clippy::precedence&apos; lint for Rust &lt; 1.86.0,     since it had a change in behavior.   - Support overriding the crate name and apply it to Rust Binder,     which wanted the module to be called &apos;rust_binder&apos;.   - Add the remaining &apos;__rust_helper&apos; annotations (started in the     previous cycle).  &apos;kernel&apos; crate:   - Introduce the &apos;const_assert!&apos; macro: a more powerful version of     &apos;static_assert!&apos; that can refer to generics inside functions or     implementation bodies, e.g.:         fn f&lt;const N: usize&gt;() {             const_assert!(N &gt; 1);         }         fn g&lt;T&gt;() {             const_assert!(size_of::&lt;T&gt;() &gt; 0, &quot;T cannot be ZST&quot;);         }     In addition, reorganize our set of build-time assertion macros     (&apos;{build,const,static_assert}!&apos;) to live in the &apos;build_assert&apos;     module.     Finally, improve the docs as well to clarify how these are     different from one another and how to pick the right one to use,     and their equivalence (if any) to the existing C ones for extra     clarity.   - &apos;sizes&apos; module: add &apos;SizeConstants&apos; trait.     This gives us typed &apos;SZ_*&apos; constants (avoiding casts) for use in     device address spaces where the address width depends on the     hardware (e.g. 32-bit MMIO windows, 64-bit GPU framebuffers, etc.),     e.g.:         let gpu_heap = 14 * u64::SZ_1M;         let mmio_window = u32::SZ_16M;   - &apos;clk&apos; module: implement &apos;Send&apos; and &apos;Sync&apos; for &apos;Clk&apos; and thus     simplify the users in Tyr and PWM.   - &apos;ptr&apos; module: add &apos;const_align_up&apos;.   - &apos;str&apos; module: improve the documentation of the &apos;c_str!&apos; macro to     explain that one should only use it for non-literal cases (for the     other case we instead use C string literals, e.g. &apos;c&quot;abc&quot;&apos;).   - Disallow the use of &apos;CStr::{as_ptr,from_ptr}&apos; and clean one such     use in the &apos;task&apos; module.   - &apos;sync&apos; module: finish the move of &apos;ARef&apos; and &apos;AlwaysRefCounted&apos;     outside of the &apos;types&apos; module, i.e. update the last remaining     instances and finally remove the re-exports.   - &apos;error&apos; module: clarify that &apos;from_err_ptr&apos; can return &apos;Ok(NULL)&apos;,     including runtime-tested examples.     The intention is to hopefully prevent UB that assumes the result of     the function is not &apos;NULL&apos; if successful. This originated from a     case of UB I noticed in &apos;regulator&apos; that created a &apos;NonNull&apos; on it.  Timekeeping:   - Expand the example section in the &apos;HrTimer&apos; documentation.   - Mark the &apos;ClockSource&apos; trait as unsafe to ensure valid values for     &apos;ktime_get()&apos;.   - Add &apos;Delta::from_nanos()&apos;.  &apos;pin-init&apos; crate:   - Replace the &apos;Zeroable&apos; impls for &apos;Option&lt;NonZero*&gt;&apos; with impls of     &apos;ZeroableOption&apos; for &apos;NonZero*&apos;.   - Improve feature gate handling for unstable features.   - Declutter the documentation of implementations of &apos;Zeroable&apos; for     tuples.   - Replace uses of &apos;addr_of[_mut]!&apos; with &apos;&amp;raw [mut]&apos;.  rust-analyzer:   - Add type annotations to &apos;generate_rust_analyzer.py&apos;.   - Add support for scripts written in Rust (&apos;generate_rust_target.rs&apos;,     &apos;rustdoc_test_builder.rs&apos;, &apos;rustdoc_test_gen.rs&apos;).   - Refactor &apos;generate_rust_analyzer.py&apos; to explicitly identify host     and target crates, improve readability, and reduce duplication.  And some other fixes, cleanups and improvements&quot;* tag &apos;rust-7.1&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/ojeda/linux: (79 commits)  rust: sizes: add SizeConstants trait for device address space constants  rust: kernel: update `file_with_nul` comment  rust: kbuild: allow `clippy::precedence` for Rust &lt; 1.86.0  rust: kbuild: support global per-version flags  rust: declare cfi_encoding for lru_status  docs: rust: general-information: use real example  docs: rust: general-information: simplify Kconfig example  docs: rust: quick-start: remove GDB/Binutils mention  docs: rust: quick-start: remove Nix &quot;unstable channel&quot; note  docs: rust: quick-start: remove Gentoo &quot;testing&quot; note  docs: rust: quick-start: add Ubuntu 26.04 LTS and remove subsection title  docs: rust: quick-start: update minimum Ubuntu version  docs: rust: quick-start: update Ubuntu versioned packages  docs: rust: quick-start: openSUSE provides `rust-src` package nowadays  rust: kbuild: remove &quot;dummy parameter&quot; workaround for `bindgen` &lt; 0.71.1  rust: kbuild: update `bindgen --rust-target` version and replace comment  rust: rust_is_available: remove warning for `bindgen` &lt; 0.69.5 &amp;&amp; libclang &gt;= 19.1  rust: rust_is_available: remove warning for `bindgen` 0.66.[01]  rust: bump `bindgen` minimum supported version to 0.71.1 (Debian Trixie)  rust: block: update `const_refs_to_static` MSRV TODO comment  ...

            List of files:
            /linux/rust/kernel/xarray.rs</description>
        <pubDate>Mon, 13 Apr 2026 18:54:20 +0200</pubDate>
        <dc:creator>Linus Torvalds &lt;torvalds@linux-foundation.org&gt;</dc:creator>
    </item>
<item>
        <title>4f13c93497e366cd8e41561a8e30ad4da887cb82 - rust: kernel: mark as `#[inline]` all `From::from()`s for `Error`</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/xarray.rs#4f13c93497e366cd8e41561a8e30ad4da887cb82</link>
        <description>rust: kernel: mark as `#[inline]` all `From::from()`s for `Error`There was a recent request [1] to mark as `#[inline]` the simple`From::from()` functions implemented for `Error`.Thus mark all of the existing    impl From&lt;...&gt; for Error {        fn from(err: ...) -&gt; Self {            ...        }    }functions in the `kernel` crate as `#[inline]`.Suggested-by: Gary Guo &lt;gary@garyguo.net&gt;Link: https://lore.kernel.org/all/8403c8b7a832b5274743816eb77abfa4@garyguo.net/ [1]Signed-off-by: Alistair Francis &lt;alistair.francis@wdc.com&gt;Acked-by: Danilo Krummrich &lt;dakr@kernel.org&gt;Acked-by: Andreas Hindborg &lt;a.hindborg@kernel.org&gt;Link: https://patch.msgid.link/20260326020406.1438210-1-alistair.francis@wdc.com[ Dropped `projection.rs` since it is in another tree and already marked  as `inline(always)` and reworded accordingly. Changed Link tag to  Gary&apos;s original message and added Suggested-by. - Miguel ]Signed-off-by: Miguel Ojeda &lt;ojeda@kernel.org&gt;

            List of files:
            /linux/rust/kernel/xarray.rs</description>
        <pubDate>Thu, 26 Mar 2026 03:04:06 +0100</pubDate>
        <dc:creator>Alistair Francis &lt;alistair.francis@wdc.com&gt;</dc:creator>
    </item>
<item>
        <title>cb9f145f638d7afa633632a9290d6ad06caeb8ee - Merge remote-tracking branch &apos;drm/drm-next&apos; into msm-next-robclark</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/xarray.rs#cb9f145f638d7afa633632a9290d6ad06caeb8ee</link>
        <description>Merge remote-tracking branch &apos;drm/drm-next&apos; into msm-next-robclarkBack-merge drm-next to get caught up.Signed-off-by: Rob Clark &lt;robin.clark@oss.qualcomm.com&gt;

            List of files:
            /linux/rust/kernel/xarray.rs</description>
        <pubDate>Sat, 01 Nov 2025 13:47:30 +0100</pubDate>
        <dc:creator>Rob Clark &lt;robin.clark@oss.qualcomm.com&gt;</dc:creator>
    </item>
<item>
        <title>f088104d837a991c65e51fa30bb4196169b3244d - Merge drm/drm-next into drm-intel-gt-next</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/xarray.rs#f088104d837a991c65e51fa30bb4196169b3244d</link>
        <description>Merge drm/drm-next into drm-intel-gt-nextBackmerge in order to get the commit:  048832a3f400 (&quot;drm/i915: Refactor shmem_pwrite() to use kiocb and write_iter&quot;)To drm-intel-gt-next as there are followup fixes to be applied.Signed-off-by: Joonas Lahtinen &lt;joonas.lahtinen@linux.intel.com&gt;

            List of files:
            /linux/rust/kernel/xarray.rs</description>
        <pubDate>Tue, 16 Sep 2025 12:53:20 +0200</pubDate>
        <dc:creator>Joonas Lahtinen &lt;joonas.lahtinen@linux.intel.com&gt;</dc:creator>
    </item>
<item>
        <title>a53d0cf7f1cb3182ad533ff5cacfa5fd29c419ad - Merge commit &apos;linus&apos; into core/bugs, to resolve conflicts</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/xarray.rs#a53d0cf7f1cb3182ad533ff5cacfa5fd29c419ad</link>
        <description>Merge commit &apos;linus&apos; into core/bugs, to resolve conflictsResolve conflicts with this commit that was developed in parallelduring the merge window: 8c8efa93db68 (&quot;x86/bug: Add ARCH_WARN_ASM macro for BUG/WARN asm code sharing with Rust&quot;) Conflicts:	arch/riscv/include/asm/bug.h	arch/x86/include/asm/bug.hSigned-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;

            List of files:
            /linux/rust/kernel/xarray.rs</description>
        <pubDate>Tue, 05 Aug 2025 11:15:34 +0200</pubDate>
        <dc:creator>Ingo Molnar &lt;mingo@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>8b87f67b4c87452e21721887fa8dec1f4c6b2b7c - Merge branch &apos;next&apos; into for-linus</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/xarray.rs#8b87f67b4c87452e21721887fa8dec1f4c6b2b7c</link>
        <description>Merge branch &apos;next&apos; into for-linusPrepare input updates for 6.18 merge window.

            List of files:
            /linux/rust/kernel/xarray.rs</description>
        <pubDate>Wed, 08 Oct 2025 06:53:13 +0200</pubDate>
        <dc:creator>Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>4b051897df2375414587a245ecb9bb1a4d26b3b8 - Merge tag &apos;v6.17-rc2&apos; into HEAD</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/xarray.rs#4b051897df2375414587a245ecb9bb1a4d26b3b8</link>
        <description>Merge tag &apos;v6.17-rc2&apos; into HEADSync up with mainline to bring in changes to include/linux/sprintf.h

            List of files:
            /linux/rust/kernel/xarray.rs</description>
        <pubDate>Thu, 21 Aug 2025 20:46:49 +0200</pubDate>
        <dc:creator>Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>d325efac5938efa3c2a25df72a1bd1af16cd0ed8 - Merge branch &apos;for-6.18/core&apos; into for-linus</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/xarray.rs#d325efac5938efa3c2a25df72a1bd1af16cd0ed8</link>
        <description>Merge branch &apos;for-6.18/core&apos; into for-linus- allow HID-BPF to rebind a driver to hid-multitouch (Benjamin  Tissoires)- Change hid_driver to use a const char* for .name (Rahul Rameshbabu)

            List of files:
            /linux/rust/kernel/xarray.rs</description>
        <pubDate>Tue, 30 Sep 2025 16:31:10 +0200</pubDate>
        <dc:creator>Benjamin Tissoires &lt;bentiss@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>71b28769d708f20046fc6f853cf93fb88a8b6e11 - Merge remote-tracking branch &apos;origin&apos; into for-6.18/intel-thc-hid</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/xarray.rs#71b28769d708f20046fc6f853cf93fb88a8b6e11</link>
        <description>Merge remote-tracking branch &apos;origin&apos; into for-6.18/intel-thc-hidNeeded as a basisi for followup support for quicki2c advanced BIOS features.Signed-off-by: Jiri Kosina &lt;jkosina@suse.com&gt;

            List of files:
            /linux/rust/kernel/xarray.rs</description>
        <pubDate>Fri, 19 Sep 2025 17:08:20 +0200</pubDate>
        <dc:creator>Jiri Kosina &lt;jkosina@suse.com&gt;</dc:creator>
    </item>
<item>
        <title>b4d90dbc4c1bc4bd3eb2d2989330af0eb95c98e8 - Merge drm/drm-next into drm-misc-next-fixes</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/xarray.rs#b4d90dbc4c1bc4bd3eb2d2989330af0eb95c98e8</link>
        <description>Merge drm/drm-next into drm-misc-next-fixesBackmerging to drm-misc-next-fixes to get features and fixes fromv6.17-rc6.Signed-off-by: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;

            List of files:
            /linux/rust/kernel/xarray.rs</description>
        <pubDate>Mon, 15 Sep 2025 10:23:28 +0200</pubDate>
        <dc:creator>Thomas Zimmermann &lt;tzimmermann@suse.de&gt;</dc:creator>
    </item>
<item>
        <title>702fdf3513b045f596f836d9a4b8672c76f11834 - Merge drm/drm-next into drm-intel-next</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/xarray.rs#702fdf3513b045f596f836d9a4b8672c76f11834</link>
        <description>Merge drm/drm-next into drm-intel-nextCatching up with some display dependencies.Signed-off-by: Rodrigo Vivi &lt;rodrigo.vivi@intel.com&gt;

            List of files:
            /linux/rust/kernel/xarray.rs</description>
        <pubDate>Wed, 10 Sep 2025 14:01:42 +0200</pubDate>
        <dc:creator>Rodrigo Vivi &lt;rodrigo.vivi@intel.com&gt;</dc:creator>
    </item>
<item>
        <title>ca994e8922f25f7fed2075098f185cf198109eaa - Merge drm/drm-next into drm-xe-next</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/xarray.rs#ca994e8922f25f7fed2075098f185cf198109eaa</link>
        <description>Merge drm/drm-next into drm-xe-nextBring v6.17-rc1 to propagate commits from other subsystems, particularlyPCI, which has some new functions needed for SR-IOV integration.Signed-off-by: Lucas De Marchi &lt;lucas.demarchi@intel.com&gt;

            List of files:
            /linux/rust/kernel/xarray.rs</description>
        <pubDate>Tue, 12 Aug 2025 14:58:37 +0200</pubDate>
        <dc:creator>Lucas De Marchi &lt;lucas.demarchi@intel.com&gt;</dc:creator>
    </item>
<item>
        <title>08c51f5bddc81c8c97c1eb11861b0dc009e5ccd8 - Merge drm/drm-next into drm-misc-n</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/xarray.rs#08c51f5bddc81c8c97c1eb11861b0dc009e5ccd8</link>
        <description>Merge drm/drm-next into drm-misc-nUpdating drm-misc-next to the state of v6.17-rc1. Begins a new releasecycle.Signed-off-by: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;

            List of files:
            /linux/rust/kernel/xarray.rs</description>
        <pubDate>Mon, 11 Aug 2025 14:37:45 +0200</pubDate>
        <dc:creator>Thomas Zimmermann &lt;tzimmermann@suse.de&gt;</dc:creator>
    </item>
<item>
        <title>9e293d47bfb9e812196670f2deeefc8b9d0226e4 - Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/xarray.rs#9e293d47bfb9e812196670f2deeefc8b9d0226e4</link>
        <description>Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpfCross merge bpf/master after 6.17-rc1.No conflict.Signed-off-by: Martin KaFai Lau &lt;martin.lau@kernel.org&gt;

            List of files:
            /linux/rust/kernel/xarray.rs</description>
        <pubDate>Tue, 12 Aug 2025 01:15:41 +0200</pubDate>
        <dc:creator>Martin KaFai Lau &lt;martin.lau@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>8d2b0853add1d7534dc0794e3c8e0b9e8c4ec640 - Merge drm/drm-fixes into drm-misc-fixes</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/xarray.rs#8d2b0853add1d7534dc0794e3c8e0b9e8c4ec640</link>
        <description>Merge drm/drm-fixes into drm-misc-fixesUpdating drm-misc-fixes to the state of v6.17-rc1. Begins a new releasecycle.Signed-off-by: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;

            List of files:
            /linux/rust/kernel/xarray.rs</description>
        <pubDate>Mon, 11 Aug 2025 16:49:06 +0200</pubDate>
        <dc:creator>Thomas Zimmermann &lt;tzimmermann@suse.de&gt;</dc:creator>
    </item>
<item>
        <title>0074281bb6316108e0cff094bd4db78ab3eee236 - Merge commit &apos;6e64f4580381e32c06ee146ca807c555b8f73e24&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into gpio/for-next</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/xarray.rs#0074281bb6316108e0cff094bd4db78ab3eee236</link>
        <description>Merge commit &apos;6e64f4580381e32c06ee146ca807c555b8f73e24&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into gpio/for-next

            List of files:
            /linux/rust/kernel/xarray.rs</description>
        <pubDate>Thu, 07 Aug 2025 09:55:19 +0200</pubDate>
        <dc:creator>Bartosz Golaszewski &lt;bartosz.golaszewski@linaro.org&gt;</dc:creator>
    </item>
<item>
        <title>ab93e0dd72c37d378dd936f031ffb83ff2bd87ce - Merge branch &apos;next&apos; into for-linus</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/xarray.rs#ab93e0dd72c37d378dd936f031ffb83ff2bd87ce</link>
        <description>Merge branch &apos;next&apos; into for-linusPrepare input updates for 6.17 merge window.

            List of files:
            /linux/rust/kernel/xarray.rs</description>
        <pubDate>Wed, 06 Aug 2025 19:08:54 +0200</pubDate>
        <dc:creator>Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>a7bee4e7f78089c101be2ad51f4b5ec64782053e - Merge tag &apos;ib-mfd-gpio-input-pwm-v6.17&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd into next</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/xarray.rs#a7bee4e7f78089c101be2ad51f4b5ec64782053e</link>
        <description>Merge tag &apos;ib-mfd-gpio-input-pwm-v6.17&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd into nextMerge an immutable branch between MFD, GPIO, Input and PWM to resolveconflicts for the merge window pull request.

            List of files:
            /linux/rust/kernel/xarray.rs</description>
        <pubDate>Mon, 04 Aug 2025 08:28:48 +0200</pubDate>
        <dc:creator>Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>352af6a011d586ff042db4b2d1f7421875eb8a14 - Merge tag &apos;rust-6.17&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/ojeda/linux</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/xarray.rs#352af6a011d586ff042db4b2d1f7421875eb8a14</link>
        <description>Merge tag &apos;rust-6.17&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/ojeda/linuxPull Rust updates from Miguel Ojeda: &quot;Toolchain and infrastructure:   - Enable a set of Clippy lints: &apos;ptr_as_ptr&apos;, &apos;ptr_cast_constness&apos;,     &apos;as_ptr_cast_mut&apos;, &apos;as_underscore&apos;, &apos;cast_lossless&apos; and     &apos;ref_as_ptr&apos;     These are intended to avoid type casts with the &apos;as&apos; operator,     which are quite powerful, into restricted variants that are less     powerful and thus should help to avoid mistakes   - Remove the &apos;author&apos; key now that most instances were moved to the     plural one in the previous cycle  &apos;kernel&apos; crate:   - New &apos;bug&apos; module: add &apos;warn_on!&apos; macro which reuses the existing     &apos;BUG&apos;/&apos;WARN&apos; infrastructure, i.e. it respects the usual sysctls and     kernel parameters:         warn_on!(value == 42);     To avoid duplicating the assembly code, the same strategy is     followed as for the static branch code in order to share the     assembly between both C and Rust     This required a few rearrangements on C arch headers -- the     existing C macros should still generate the same outputs, thus no     functional change expected there   - &apos;workqueue&apos; module: add delayed work items, including a     &apos;DelayedWork&apos; struct, a &apos;impl_has_delayed_work!&apos; macro and an     &apos;enqueue_delayed&apos; method, e.g.:         /// Enqueue the struct for execution on the system workqueue,         /// where its value will be printed 42 jiffies later.         fn print_later(value: Arc&lt;MyStruct&gt;) {             let _ = workqueue::system().enqueue_delayed(value, 42);         }   - New &apos;bits&apos; module: add support for &apos;bit&apos; and &apos;genmask&apos; functions,     with runtime- and compile-time variants, e.g.:         static_assert!(0b00010000 == bit_u8(4));         static_assert!(0b00011110 == genmask_u8(1..=4));         assert!(checked_bit_u32(u32::BITS).is_none());   - &apos;uaccess&apos; module: add &apos;UserSliceReader::strcpy_into_buf&apos;, which     reads NUL-terminated strings from userspace into a &apos;&amp;CStr&apos;     Introduce &apos;UserPtr&apos; newtype, similar in purpose to &apos;__user&apos; in C,     to minimize mistakes handling userspace pointers, including mixing     them up with integers and leaking them via the &apos;Debug&apos; trait. Add     it to the prelude, too   - Start preparations for the replacement of our custom &apos;CStr&apos; type     with the analogous type in the &apos;core&apos; standard library. This will     take place across several cycles to make it easier. For this one,     it includes a new &apos;fmt&apos; module, using upstream method names and     some other cleanups     Replace &apos;fmt!&apos; with a re-export, which helps Clippy lint properly,     and clean up the found &apos;uninlined-format-args&apos; instances   - &apos;dma&apos; module:      - Clarify wording and be consistent in &apos;coherent&apos; nomenclature      - Convert the &apos;read!()&apos; and &apos;write!()&apos; macros to return a &apos;Result&apos;      - Add &apos;as_slice()&apos;, &apos;write()&apos; methods in &apos;CoherentAllocation&apos;      - Expose &apos;count()&apos; and &apos;size()&apos; in &apos;CoherentAllocation&apos; and add        the corresponding type invariants      - Implement &apos;CoherentAllocation::dma_handle_with_offset()&apos;   - &apos;time&apos; module:      - Make &apos;Instant&apos; generic over clock source. This allows the        compiler to assert that arithmetic expressions involving the        &apos;Instant&apos; use &apos;Instants&apos; based on the same clock source      - Make &apos;HrTimer&apos; generic over the timer mode. &apos;HrTimer&apos; timers        take a &apos;Duration&apos; or an &apos;Instant&apos; when setting the expiry time,        depending on the timer mode. With this change, the compiler can        check the type matches the timer mode      - Add an abstraction for &apos;fsleep&apos;. &apos;fsleep&apos; is a flexible sleep        function that will select an appropriate sleep method depending        on the requested sleep time      - Avoid 64-bit divisions on 32-bit hardware when calculating        timestamps      - Seal the &apos;HrTimerMode&apos; trait. This prevents users of the        &apos;HrTimerMode&apos; from implementing the trait on their own types      - Pass the correct timer mode ID to &apos;hrtimer_start_range_ns()&apos;   - &apos;list&apos; module: remove &apos;OFFSET&apos; constants, allowing to remove     pointer arithmetic; now &apos;impl_list_item!&apos; invokes     &apos;impl_has_list_links!&apos; or &apos;impl_has_list_links_self_ptr!&apos;. Other     simplifications too   - &apos;types&apos; module: remove &apos;ForeignOwnable::PointedTo&apos; in favor of a     constant, which avoids exposing the type of the opaque pointer, and     require &apos;into_foreign&apos; to return non-null     Remove the &apos;Either&lt;L, R&gt;&apos; type as well. It is unused, and we want     to encourage the use of custom enums for concrete use cases   - &apos;sync&apos; module: implement &apos;Borrow&apos; and &apos;BorrowMut&apos; for &apos;Arc&apos; types     to allow them to be used in generic APIs   - &apos;alloc&apos; module: implement &apos;Borrow&apos; and &apos;BorrowMut&apos; for &apos;Box&lt;T, A&gt;&apos;;     and &apos;Borrow&apos;, &apos;BorrowMut&apos; and &apos;Default&apos; for &apos;Vec&lt;T, A&gt;&apos;   - &apos;Opaque&apos; type: add &apos;cast_from&apos; method to perform a restricted cast     that cannot change the inner type and use it in callers of     &apos;container_of!&apos;. Rename &apos;raw_get&apos; to &apos;cast_into&apos; to match it   - &apos;rbtree&apos; module: add &apos;is_empty&apos; method   - &apos;sync&apos; module: new &apos;aref&apos; submodule to hold &apos;AlwaysRefCounted&apos; and     &apos;ARef&apos;, which are moved from the too general &apos;types&apos; module which     we want to reduce or eventually remove. Also fix a safety comment     in &apos;static_lock_class&apos;  &apos;pin-init&apos; crate:   - Add &apos;impl&lt;T, E&gt; [Pin]Init&lt;T, E&gt; for Result&lt;T, E&gt;&apos;, so results are     now (pin-)initializers   - Add &apos;Zeroable::init_zeroed()&apos; that delegates to &apos;init_zeroed()&apos;   - New &apos;zeroed()&apos;, a safe version of &apos;mem::zeroed()&apos; and also provide     it via &apos;Zeroable::zeroed()&apos;   - Implement &apos;Zeroable&apos; for &apos;Option&lt;&amp;T&gt;&apos;, &apos;Option&lt;&amp;mut T&gt;&apos; and for     &apos;Option&lt;[unsafe] [extern &quot;abi&quot;] fn(...args...) -&gt; ret&gt;&apos; for     &apos;&quot;Rust&quot;&apos; and &apos;&quot;C&quot;&apos; ABIs and up to 20 arguments   - Changed blanket impls of &apos;Init&apos; and &apos;PinInit&apos; from &apos;impl&lt;T, E&gt;     [Pin]Init&lt;T, E&gt; for T&apos; to &apos;impl&lt;T&gt; [Pin]Init&lt;T&gt; for T&apos;   - Renamed &apos;zeroed()&apos; to &apos;init_zeroed()&apos;   - Upstream dev news: improve CI more to deny warnings, use     &apos;--all-targets&apos;. Check the synchronization status of the two     &apos;-next&apos; branches in upstream and the kernel  MAINTAINERS:   - Add Vlastimil Babka, Liam R. Howlett, Uladzislau Rezki and Lorenzo     Stoakes as reviewers (thanks everyone)  And a few other cleanups and improvements&quot;* tag &apos;rust-6.17&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/ojeda/linux: (76 commits)  rust: Add warn_on macro  arm64/bug: Add ARCH_WARN_ASM macro for BUG/WARN asm code sharing with Rust  riscv/bug: Add ARCH_WARN_ASM macro for BUG/WARN asm code sharing with Rust  x86/bug: Add ARCH_WARN_ASM macro for BUG/WARN asm code sharing with Rust  rust: kernel: move ARef and AlwaysRefCounted to sync::aref  rust: sync: fix safety comment for `static_lock_class`  rust: types: remove `Either&lt;L, R&gt;`  rust: kernel: use `core::ffi::CStr` method names  rust: str: add `CStr` methods matching `core::ffi::CStr`  rust: str: remove unnecessary qualification  rust: use `kernel::{fmt,prelude::fmt!}`  rust: kernel: add `fmt` module  rust: kernel: remove `fmt!`, fix clippy::uninlined-format-args  scripts: rust: emit path candidates in panic message  scripts: rust: replace length checks with match  rust: list: remove nonexistent generic parameter in link  rust: bits: add support for bits/genmask macros  rust: list: remove OFFSET constants  rust: list: add `impl_list_item!` examples  rust: list: use fully qualified path  ...

            List of files:
            /linux/rust/kernel/xarray.rs</description>
        <pubDate>Sun, 03 Aug 2025 22:49:10 +0200</pubDate>
        <dc:creator>Linus Torvalds &lt;torvalds@linux-foundation.org&gt;</dc:creator>
    </item>
<item>
        <title>12717ebeffcf3e34063dbc1e1b7f34924150c7c9 - rust: types: add FOREIGN_ALIGN to ForeignOwnable</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/xarray.rs#12717ebeffcf3e34063dbc1e1b7f34924150c7c9</link>
        <description>rust: types: add FOREIGN_ALIGN to ForeignOwnableThe current implementation of `ForeignOwnable` is leaking the type of theopaque pointer to consumers of the API. This allows consumers of the opaquepointer to rely on the information that can be extracted from the pointertype.To prevent this, change the API to the version suggested by MairaCanal (link below): Remove `ForeignOwnable::PointedTo` in favor of aconstant, which specifies the alignment of the pointers returned by`into_foreign`.With this change, `ArcInner` no longer needs `pub` visibility, so change itto private.Suggested-by: Alice Ryhl &lt;aliceryhl@google.com&gt;Suggested-by: Ma&#237;ra Canal &lt;mcanal@igalia.com&gt;Link: https://lore.kernel.org/r/20240309235927.168915-3-mcanal@igalia.comAcked-by: Danilo Krummrich &lt;dakr@kernel.org&gt;Reviewed-by: Benno Lossin &lt;lossin@kernel.org&gt;Signed-off-by: Andreas Hindborg &lt;a.hindborg@kernel.org&gt;Reviewed-by: Alice Ryhl &lt;aliceryhl@google.com&gt;Link: https://lore.kernel.org/r/20250612-pointed-to-v3-1-b009006d86a1@kernel.orgSigned-off-by: Miguel Ojeda &lt;ojeda@kernel.org&gt;

            List of files:
            /linux/rust/kernel/xarray.rs</description>
        <pubDate>Thu, 12 Jun 2025 15:09:43 +0200</pubDate>
        <dc:creator>Andreas Hindborg &lt;a.hindborg@kernel.org&gt;</dc:creator>
    </item>
</channel>
</rss>
