<?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 zeroable.rs</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>c17ee635fd3a482b2ad2bf5e269755c2eae5f25e - Merge drm/drm-fixes into drm-misc-fixes</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/pin-init/internal/src/zeroable.rs#c17ee635fd3a482b2ad2bf5e269755c2eae5f25e</link>
        <description>Merge drm/drm-fixes into drm-misc-fixes7.0-rc1 was just released, let&apos;s merge it to kick the new release cycle.Signed-off-by: Maxime Ripard &lt;mripard@kernel.org&gt;

            List of files:
            /linux/rust/pin-init/internal/src/zeroable.rs</description>
        <pubDate>Mon, 23 Feb 2026 10:09:45 +0100</pubDate>
        <dc:creator>Maxime Ripard &lt;mripard@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>a9aabb3b839aba094ed80861054993785c61462c - Merge tag &apos;rust-6.20-7.0&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/ojeda/linux</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/pin-init/internal/src/zeroable.rs#a9aabb3b839aba094ed80861054993785c61462c</link>
        <description>Merge tag &apos;rust-6.20-7.0&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/ojeda/linuxPull rust updates from Miguel Ojeda: &quot;Toolchain and infrastructure:   - Add &apos;__rust_helper&apos; annotation to the C helpers     This is needed to inline these helpers into Rust code   - Remove imports available via the prelude, treewide     This was possible thanks to a new lint in Klint that Gary has     implemented -- more Klint-related changes, including initial     upstream support, are coming   - Deduplicate pin-init flags  &apos;kernel&apos; crate:   - Add support for calling a function exactly once with the new     &apos;do_once_lite!&apos; macro (and &apos;OnceLite&apos; type)     Based on this, add &apos;pr_*_once!&apos; macros to print only once   - Add &apos;impl_flags!&apos; macro for defining common bitflags operations:         impl_flags!(             /// Represents multiple permissions.             #[derive(Debug, Clone, Default, Copy, PartialEq, Eq)]             pub struct Permissions(u32);             /// Represents a single permission.             #[derive(Debug, Clone, Copy, PartialEq, Eq)]             pub enum Permission {                 /// Read permission.                 Read = 1 &lt;&lt; 0,                 /// Write permission.                 Write = 1 &lt;&lt; 1,                 /// Execute permission.                 Execute = 1 &lt;&lt; 2,             }         );         let mut f: Permissions = Permission::Read | Permission::Write;         assert!(f.contains(Permission::Read));         assert!(!f.contains(Permission::Execute));         f |= Permission::Execute;         assert!(f.contains(Permission::Execute));         let f2: Permissions = Permission::Write | Permission::Execute;         assert!((f ^ f2).contains(Permission::Read));         assert!(!(f ^ f2).contains(Permission::Write));   - &apos;bug&apos; module: support &apos;CONFIG_DEBUG_BUGVERBOSE_DETAILED&apos; in the     &apos;warn_on!&apos; macro in order to show the evaluated condition alongside     the file path:          ------------[ cut here ]------------          WARNING: [val == 1] linux/samples/rust/rust_minimal.rs:27 at ...          Modules linked in: rust_minimal(+)   - Add safety module with &apos;unsafe_precondition_assert!&apos; macro,     currently a wrapper for &apos;debug_assert!&apos;, intended to mark the     validation of safety preconditions where possible:         /// # Safety         ///         /// The caller must ensure that `index` is less than `N`.         unsafe fn set_unchecked(&amp;mut self, index: usize, value: T) {             unsafe_precondition_assert!(                 index &lt; N,                 &quot;set_unchecked() requires index ({index}) &lt; N ({N})&quot;             );             ...         }   - Add instructions to &apos;build_assert!&apos; documentation requesting to     always inline functions when used with function arguments   - &apos;ptr&apos; module: replace &apos;build_assert!&apos; with a &apos;const&apos; one   - &apos;rbtree&apos; module: reduce unsafe blocks on pointer derefs   - &apos;transmute&apos; module: implement &apos;FromBytes&apos; and &apos;AsBytes&apos; for     inhabited ZSTs, and use it in Nova   - More treewide replacements of &apos;c_str!&apos; with C string literals  &apos;macros&apos; crate:   - Rewrite most procedural macros (&apos;module!&apos;, &apos;concat_idents!&apos;,     &apos;#[export]&apos;, &apos;#[vtable]&apos;, &apos;#[kunit_tests]&apos;) to use the &apos;syn&apos;     parsing library which we introduced last cycle, with better     diagnostics     This also allows to support &apos;#[cfg]&apos; properly in the &apos;#[vtable]&apos;     macro, to support arbitrary types in &apos;module!&apos; macro (not just an     identifier) and to remove several custom parsing helpers we had   - Use &apos;quote!&apos; from the recently vendored &apos;quote&apos; library and remove     our custom one     The vendored one also allows us to avoid quoting &apos;&quot;&apos; and &apos;{}&apos;     inside the template anymore and editors can now highlight it. In     addition, it improves robustness as it eliminates the need for     string quoting and escaping   - Use &apos;pin_init::zeroed()&apos; to simplify KUnit code  &apos;pin-init&apos; crate:   - Rewrite all procedural macros (&apos;[pin_]init!&apos;, &apos;#[pin_data]&apos;,     &apos;#[pinned_drop]&apos;, &apos;derive([Maybe]Zeroable)&apos;) to use the &apos;syn&apos;     parsing library which we introduced last cycle, with better     diagnostics   - Implement &apos;InPlaceWrite&apos; for &apos;&amp;&apos;static mut MaybeUninit&lt;T&gt;&apos;. This     enables users to use external allocation mechanisms such as     &apos;static_cell&apos;   - Support tuple structs in &apos;derive([Maybe]Zeroable)&apos;   - Support attributes on fields in &apos;[pin_]init!&apos; (such as     &apos;#[cfg(...)]&apos;)   - Add a &apos;#[default_error(&lt;type&gt;)]&apos; attribute to &apos;[pin_]init!&apos; to     override the default error (when no &apos;? Error&apos; is specified)   - Support packed structs in &apos;[pin_]init!&apos; with     &apos;#[disable_initialized_field_access]&apos;   - Remove &apos;try_[pin_]init!&apos; in favor of merging their feature with     &apos;[pin_]init!&apos;. Update the kernel&apos;s own &apos;try_[pin_]init!&apos; macros to     use the &apos;default_error&apos; attribute   - Correct &apos;T: Sized&apos; bounds to &apos;T: ?Sized&apos; in the generated     &apos;PinnedDrop&apos; check by &apos;#[pin_data]&apos;  Documentation:   - Conclude the Rust experiment  MAINTAINERS:   - Add &quot;RUST [RUST-ANALYZER]&quot; entry for the rust-analyzer support.     Tamir and Jesung will take care of it. They have both been active     around it for a while. The new tree will flow through the Rust one   - Add Gary as maintainer for &quot;RUST [PIN-INIT]&quot;   - Update Boqun and Tamir emails to their kernel.org accounts  And a few other cleanups and improvements&quot;* tag &apos;rust-6.20-7.0&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/ojeda/linux: (59 commits)  rust: safety: introduce `unsafe_precondition_assert!` macro  rust: add `impl_flags!` macro for defining common bitflag operations  rust: print: Add pr_*_once macros  rust: bug: Support DEBUG_BUGVERBOSE_DETAILED option  rust: print: Add support for calling a function exactly once  rust: kbuild: deduplicate pin-init flags  gpu: nova-core: remove imports available via prelude  rust: clk: replace `kernel::c_str!` with C-Strings  MAINTAINERS: Update my email address to @kernel.org  rust: macros: support `#[cfg]` properly in `#[vtable]` macro.  rust: kunit: use `pin_init::zeroed` instead of custom null value  rust: macros: rearrange `#[doc(hidden)]` in `module!` macro  rust: macros: allow arbitrary types to be used in `module!` macro  rust: macros: convert `#[kunit_tests]` macro to use `syn`  rust: macros: convert `concat_idents!` to use `syn`  rust: macros: convert `#[export]` to use `syn`  rust: macros: use `quote!` for `module!` macro  rust: macros: use `syn` to parse `module!` macro  rust: macros: convert `#[vtable]` macro to use `syn`  rust: macros: use `quote!` from vendored crate  ...

            List of files:
            /linux/rust/pin-init/internal/src/zeroable.rs</description>
        <pubDate>Tue, 10 Feb 2026 20:53:01 +0100</pubDate>
        <dc:creator>Linus Torvalds &lt;torvalds@linux-foundation.org&gt;</dc:creator>
    </item>
<item>
        <title>99ba0fa10de0cc0386ea61e6e5068a78a8394060 - Merge tag &apos;pin-init-v7.0&apos; of https://github.com/Rust-for-Linux/linux into rust-next</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/pin-init/internal/src/zeroable.rs#99ba0fa10de0cc0386ea61e6e5068a78a8394060</link>
        <description>Merge tag &apos;pin-init-v7.0&apos; of https://github.com/Rust-for-Linux/linux into rust-nextPull pin-init updates from Benno Lossin: &quot;Added:   - Implement &apos;InPlaceWrite&apos; for &apos;&amp;&apos;static mut MaybeUninit&lt;T&gt;&apos;. This     enables users to use external allocation mechanisms such as     &apos;static_cell&apos;.   - Add Gary Guo as a Maintainer.  Changed:   - Rewrote all proc-macros (&apos;[pin_]init!&apos;, &apos;#[pin_data]&apos;,     &apos;#[pinned_drop]&apos;, &apos;derive([Maybe]Zeroable)&apos;), using &apos;syn&apos; with     better diagnostics.   - Support tuple structs in &apos;derive([Maybe]Zeroable)&apos;.   - Support attributes on fields in &apos;[pin_]init!&apos; (such as     &apos;#[cfg(...)]&apos;).   - Add a &apos;#[default_error(&lt;type&gt;)]&apos; attribute to &apos;[pin_]init!&apos; to     override the default error (when no &apos;? Error&apos; is specified).   - Support packed structs in &apos;[pin_]init!&apos; with     &apos;#[disable_initialized_field_access]&apos;.  Removed:   - Remove &apos;try_[pin_]init!&apos; in favor of merging their feature     with &apos;[pin_]init!&apos;. Update the kernel&apos;s own &apos;try_[pin_]init!&apos;     macros to use the &apos;default_error&apos; attribute.  Fixed:   - Correct &apos;T: Sized&apos; bounds to &apos;T: ?Sized&apos; in the generated     &apos;PinnedDrop&apos; check by &apos;#[pin_data]&apos;.&quot;* tag &apos;pin-init-v7.0&apos; of https://github.com/Rust-for-Linux/linux:  rust: pin-init: Implement `InPlaceWrite&lt;T&gt;` for `&amp;&apos;static mut MaybeUninit&lt;T&gt;`  MAINTAINERS: add Gary Guo to pin-init  rust: pin-init: internal: init: simplify Zeroable safety check  rust: pin-init: internal: init: add escape hatch for referencing initialized fields  rust: pin-init: internal: init: add support for attributes on initializer fields  rust: init: use `#[default_error(err)]` for the initializer macros  rust: pin-init: add `#[default_error(&lt;type&gt;)]` attribute to initializer macros  rust: pin-init: rewrite the initializer macros using `syn`  rust: pin-init: add `?Sized` bounds to traits in `#[pin_data]` macro  rust: pin-init: rewrite `#[pin_data]` using `syn`  rust: pin-init: rewrite the `#[pinned_drop]` attribute macro using `syn`  rust: pin-init: rewrite `derive(Zeroable)` and `derive(MaybeZeroable)` using `syn`  rust: pin-init: internal: add utility API for syn error handling  rust: pin-init: add `syn` dependency and remove `proc-macro[2]` and `quote` workarounds  rust: pin-init: allow the crate to refer to itself as `pin-init` in doc tests  rust: pin-init: remove `try_` versions of the initializer macros

            List of files:
            /linux/rust/pin-init/internal/src/zeroable.rs</description>
        <pubDate>Tue, 27 Jan 2026 14:33:55 +0100</pubDate>
        <dc:creator>Miguel Ojeda &lt;ojeda@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>50426bde1577d17e61362bd199d487dbeb159110 - rust: pin-init: rewrite `derive(Zeroable)` and `derive(MaybeZeroable)` using `syn`</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/pin-init/internal/src/zeroable.rs#50426bde1577d17e61362bd199d487dbeb159110</link>
        <description>rust: pin-init: rewrite `derive(Zeroable)` and `derive(MaybeZeroable)` using `syn`Rewrite the two derive macros for `Zeroable` using `syn`. One positiveside effect of this change is that tuple structs are now supported bythem. Additionally, syntax errors and the error emitted when trying touse one of the derive macros on an `enum` are improved. Otherwise nofunctional changes intended.For example:    #[derive(Zeroable)]    enum Num {        A(u32),        B(i32),    }Produced this error before this commit:    error: no rules expected keyword `enum`     --&gt; tests/ui/compile-fail/zeroable/enum.rs:5:1      |    5 | enum Num {      | ^^^^ no rules expected this token in macro call      |    note: while trying to match keyword `struct`     --&gt; src/macros.rs      |      |             $vis:vis struct $name:ident      |                      ^^^^^^Now the error is:    error: cannot derive `Zeroable` for an enum     --&gt; tests/ui/compile-fail/zeroable/enum.rs:5:1      |    5 | enum Num {      | ^^^^    error: cannot derive `Zeroable` for an enumTested-by: Andreas Hindborg &lt;a.hindborg@kernel.org&gt;Reviewed-by: Gary Guo &lt;gary@garyguo.net&gt;Signed-off-by: Benno Lossin &lt;lossin@kernel.org&gt;

            List of files:
            /linux/rust/pin-init/internal/src/zeroable.rs</description>
        <pubDate>Fri, 16 Jan 2026 11:54:20 +0100</pubDate>
        <dc:creator>Benno Lossin &lt;lossin@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>514e4ed2c9da9112fcd378b1bd9b9d120edf7ca9 - rust: pin-init: add `syn` dependency and remove `proc-macro[2]` and `quote` workarounds</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/pin-init/internal/src/zeroable.rs#514e4ed2c9da9112fcd378b1bd9b9d120edf7ca9</link>
        <description>rust: pin-init: add `syn` dependency and remove `proc-macro[2]` and `quote` workarounds`syn` makes parsing Rust from proc-macros a lot simpler. `pin-init` hasnot used `syn` up until now, because the we did not support it. Thatchanged in commit 54e3eae85562 (&quot;Merge patch series &quot;`syn` support&quot;&quot;),so we can finally utilize the added ergonomics of parsing proc-macroinput with `syn`.Previously we only had the `proc-macro` library available, whereas theuser-space version also used `proc-macro2` and `quote`. Now both areavailable, so remove the workarounds.Due to these changes, clippy emits warnings about unnecessary`.to_string()` as `proc-macro2` provides an additional `PartialEq` implon `Ident`, so the warnings are fixed.[ Adjusted wording from upstream version and added build system changes  for the kernel - Benno ]Co-developed-by: Gary Guo &lt;gary@garyguo.net&gt;Signed-off-by: Gary Guo &lt;gary@garyguo.net&gt;Reviewed-by: Tamir Duberstein &lt;tamird@gmail.com&gt;Tested-by: Andreas Hindborg &lt;a.hindborg@kernel.org&gt;Signed-off-by: Benno Lossin &lt;lossin@kernel.org&gt;

            List of files:
            /linux/rust/pin-init/internal/src/zeroable.rs</description>
        <pubDate>Fri, 16 Jan 2026 11:54:18 +0100</pubDate>
        <dc:creator>Benno Lossin &lt;lossin@kernel.org&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/pin-init/internal/src/zeroable.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/pin-init/internal/src/zeroable.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>ab93e0dd72c37d378dd936f031ffb83ff2bd87ce - Merge branch &apos;next&apos; into for-linus</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/pin-init/internal/src/zeroable.rs#ab93e0dd72c37d378dd936f031ffb83ff2bd87ce</link>
        <description>Merge branch &apos;next&apos; into for-linusPrepare input updates for 6.17 merge window.

            List of files:
            /linux/rust/pin-init/internal/src/zeroable.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/pin-init/internal/src/zeroable.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/pin-init/internal/src/zeroable.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>e9ef810dfee7a2227da9d423aecb0ced35faddbe - Merge branch &apos;for-6.17/amd-sfh&apos; into for-linus</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/pin-init/internal/src/zeroable.rs#e9ef810dfee7a2227da9d423aecb0ced35faddbe</link>
        <description>Merge branch &apos;for-6.17/amd-sfh&apos; into for-linus- add support for operating modes (Basavaraj Natikar)

            List of files:
            /linux/rust/pin-init/internal/src/zeroable.rs</description>
        <pubDate>Thu, 31 Jul 2025 22:36:25 +0200</pubDate>
        <dc:creator>Jiri Kosina &lt;jkosina@suse.com&gt;</dc:creator>
    </item>
<item>
        <title>74f1af95820fc2ee580a775a3a17c416db30b38c - Merge remote-tracking branch &apos;drm/drm-next&apos; into msm-next</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/pin-init/internal/src/zeroable.rs#74f1af95820fc2ee580a775a3a17c416db30b38c</link>
        <description>Merge remote-tracking branch &apos;drm/drm-next&apos; into msm-nextBack-merge drm-next to (indirectly) get arm-smmu updates for makingstall-on-fault more reliable.Signed-off-by: Rob Clark &lt;robin.clark@oss.qualcomm.com&gt;

            List of files:
            /linux/rust/pin-init/internal/src/zeroable.rs</description>
        <pubDate>Sun, 29 Jun 2025 04:54:49 +0200</pubDate>
        <dc:creator>Rob Clark &lt;robin.clark@oss.qualcomm.com&gt;</dc:creator>
    </item>
<item>
        <title>c598d5eb9fb331ba17bc9ad67ae9a2231ca5aca5 - Merge drm/drm-next into drm-misc-next</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/pin-init/internal/src/zeroable.rs#c598d5eb9fb331ba17bc9ad67ae9a2231ca5aca5</link>
        <description>Merge drm/drm-next into drm-misc-nextBackmerging to forward to v6.16-rc1Signed-off-by: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;

            List of files:
            /linux/rust/pin-init/internal/src/zeroable.rs</description>
        <pubDate>Wed, 11 Jun 2025 09:01:34 +0200</pubDate>
        <dc:creator>Thomas Zimmermann &lt;tzimmermann@suse.de&gt;</dc:creator>
    </item>
<item>
        <title>86e2d052c2320bf12571a5d96b16c2745e1cfc5e - Merge drm/drm-next into drm-xe-next</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/pin-init/internal/src/zeroable.rs#86e2d052c2320bf12571a5d96b16c2745e1cfc5e</link>
        <description>Merge drm/drm-next into drm-xe-nextBackmerging to bring in 6.16Signed-off-by: Thomas Hellstr&#246;m &lt;thomas.hellstrom@linux.intel.com&gt;

            List of files:
            /linux/rust/pin-init/internal/src/zeroable.rs</description>
        <pubDate>Mon, 09 Jun 2025 18:26:55 +0200</pubDate>
        <dc:creator>Thomas Hellstr&#246;m &lt;thomas.hellstrom@linux.intel.com&gt;</dc:creator>
    </item>
<item>
        <title>34c55367af96f62e89221444f04487440ebc6487 - Merge drm/drm-next into drm-intel-next</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/pin-init/internal/src/zeroable.rs#34c55367af96f62e89221444f04487440ebc6487</link>
        <description>Merge drm/drm-next into drm-intel-nextSync to v6.16-rc1, among other things to get the fixed size GENMASK_U*()and BIT_U*() macros.Signed-off-by: Jani Nikula &lt;jani.nikula@intel.com&gt;

            List of files:
            /linux/rust/pin-init/internal/src/zeroable.rs</description>
        <pubDate>Mon, 09 Jun 2025 11:40:46 +0200</pubDate>
        <dc:creator>Jani Nikula &lt;jani.nikula@intel.com&gt;</dc:creator>
    </item>
<item>
        <title>bbfd5594756011167b8f8de9a00e0c946afda1e6 - Merge drm/drm-next into drm-intel-gt-next</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/pin-init/internal/src/zeroable.rs#bbfd5594756011167b8f8de9a00e0c946afda1e6</link>
        <description>Merge drm/drm-next into drm-intel-gt-nextNeed to pull in a67221b5eb8d (&quot;drm/i915/dp: Return min bpc supported by source instead of 0&quot;)in order to fix build breakage on GCC 9.4.0 (from Ubuntu 20.04).Signed-off-by: Joonas Lahtinen &lt;joonas.lahtinen@linux.intel.com&gt;

            List of files:
            /linux/rust/pin-init/internal/src/zeroable.rs</description>
        <pubDate>Wed, 28 May 2025 09:20:17 +0200</pubDate>
        <dc:creator>Joonas Lahtinen &lt;joonas.lahtinen@linux.intel.com&gt;</dc:creator>
    </item>
<item>
        <title>db5302ae571beec635c1a96e7f72926a4e65195e - Merge drm/drm-next into drm-intel-next</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/pin-init/internal/src/zeroable.rs#db5302ae571beec635c1a96e7f72926a4e65195e</link>
        <description>Merge drm/drm-next into drm-intel-nextBackmerge to sync with v6.15-rc, xe, and specifically async flip changesin drm-misc.Signed-off-by: Jani Nikula &lt;jani.nikula@intel.com&gt;

            List of files:
            /linux/rust/pin-init/internal/src/zeroable.rs</description>
        <pubDate>Fri, 16 May 2025 09:22:36 +0200</pubDate>
        <dc:creator>Jani Nikula &lt;jani.nikula@intel.com&gt;</dc:creator>
    </item>
<item>
        <title>ec7714e4947909190ffb3041a03311a975350fe0 - Merge tag &apos;rust-6.16&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/ojeda/linux</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/pin-init/internal/src/zeroable.rs#ec7714e4947909190ffb3041a03311a975350fe0</link>
        <description>Merge tag &apos;rust-6.16&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/ojeda/linuxPull Rust updates from Miguel Ojeda: &quot;Toolchain and infrastructure:   - KUnit &apos;#[test]&apos;s:      - Support KUnit-mapped &apos;assert!&apos; macros.        The support that landed last cycle was very basic, and the        &apos;assert!&apos; macros panicked since they were the standard library        ones. Now, they are mapped to the KUnit ones in a similar way to        how is done for doctests, reusing the infrastructure there.        With this, a failing test like:            #[test]            fn my_first_test() {                assert_eq!(42, 43);            }        will report:            # my_first_test: ASSERTION FAILED at rust/kernel/lib.rs:251            Expected 42 == 43 to be true, but is false            # my_first_test.speed: normal            not ok 1 my_first_test      - Support tests with checked &apos;Result&apos; return types.        The return value of test functions that return a &apos;Result&apos; will        be checked, thus one can now easily catch errors when e.g. using        the &apos;?&apos; operator in tests.        With this, a failing test like:            #[test]            fn my_test() -&gt; Result {                f()?;                Ok(())            }        will report:            # my_test: ASSERTION FAILED at rust/kernel/lib.rs:321            Expected is_test_result_ok(my_test()) to be true, but is false            # my_test.speed: normal            not ok 1 my_test      - Add &apos;kunit_tests&apos; to the prelude.   - Clarify the remaining language unstable features in use.   - Compile &apos;core&apos; with edition 2024 for Rust &gt;= 1.87.   - Workaround &apos;bindgen&apos; issue with forward references to &apos;enum&apos; types.   - objtool: relax slice condition to cover more &apos;noreturn&apos; functions.   - Use absolute paths in macros referencing &apos;core&apos; and &apos;kernel&apos;     crates.   - Skip &apos;-mno-fdpic&apos; flag for bindgen in GCC 32-bit arm builds.   - Clean some &apos;doc_markdown&apos; lint hits -- we may enable it later on.  &apos;kernel&apos; crate:   - &apos;alloc&apos; module:      - &apos;Box&apos;: support for type coercion, e.g. &apos;Box&lt;T&gt;&apos; to &apos;Box&lt;dyn U&gt;&apos;        if &apos;T&apos; implements &apos;U&apos;.      - &apos;Vec&apos;: implement new methods (prerequisites for nova-core and        binder): &apos;truncate&apos;, &apos;resize&apos;, &apos;clear&apos;, &apos;pop&apos;,        &apos;push_within_capacity&apos; (with new error type &apos;PushError&apos;),        &apos;drain_all&apos;, &apos;retain&apos;, &apos;remove&apos; (with new error type        &apos;RemoveError&apos;), insert_within_capacity&apos; (with new error type        &apos;InsertError&apos;).        In addition, simplify &apos;push&apos; using &apos;spare_capacity_mut&apos;, split        &apos;set_len&apos; into &apos;inc_len&apos; and &apos;dec_len&apos;, add type invariant &apos;len        &lt;= capacity&apos; and simplify &apos;truncate&apos; using &apos;dec_len&apos;.   - &apos;time&apos; module:      - Morph the Rust hrtimer subsystem into the Rust timekeeping        subsystem, covering delay, sleep, timekeeping, timers. This new        subsystem has all the relevant timekeeping C maintainers listed        in the entry.      - Replace &apos;Ktime&apos; with &apos;Delta&apos; and &apos;Instant&apos; types to represent a        duration of time and a point in time.      - Temporarily add &apos;Ktime&apos; to &apos;hrtimer&apos; module to allow &apos;hrtimer&apos;        to delay converting to &apos;Instant&apos; and &apos;Delta&apos;.   - &apos;xarray&apos; module:      - Add a Rust abstraction for the &apos;xarray&apos; data structure. This        abstraction allows Rust code to leverage the &apos;xarray&apos; to store        types that implement &apos;ForeignOwnable&apos;. This support is a        dependency for memory backing feature of the Rust null block        driver, which is waiting to be merged.      - Set up an entry in &apos;MAINTAINERS&apos; for the XArray Rust support.        Patches will go to the new Rust XArray tree and then via the        Rust subsystem tree for now.      - Allow &apos;ForeignOwnable&apos; to carry information about the pointed-to        type. This helps asserting alignment requirements for the        pointer passed to the foreign language.   - &apos;container_of!&apos;: retain pointer mut-ness and add a compile-time     check of the type of the first parameter (&apos;$field_ptr&apos;).   - Support optional message in &apos;static_assert!&apos;.   - Add C FFI types (e.g. &apos;c_int&apos;) to the prelude.   - &apos;str&apos; module: simplify KUnit tests &apos;format!&apos; macro, convert     &apos;rusttest&apos; tests into KUnit, take advantage of the &apos;-&gt; Result&apos;     support in KUnit &apos;#[test]&apos;s.   - &apos;list&apos; module: add examples for &apos;List&apos;, fix path of     &apos;assert_pinned!&apos; (so far unused macro rule).   - &apos;workqueue&apos; module: remove &apos;HasWork::OFFSET&apos;.   - &apos;page&apos; module: add &apos;inline&apos; attribute.  &apos;macros&apos; crate:   - &apos;module&apos; macro: place &apos;cleanup_module()&apos; in &apos;.exit.text&apos; section.  &apos;pin-init&apos; crate:   - Add &apos;Wrapper&lt;T&gt;&apos; trait for creating pin-initializers for wrapper     structs with a structurally pinned value such as &apos;UnsafeCell&lt;T&gt;&apos; or     &apos;MaybeUninit&lt;T&gt;&apos;.   - Add &apos;MaybeZeroable&apos; derive macro to try to derive &apos;Zeroable&apos;, but     not error if not all fields implement it. This is needed to derive     &apos;Zeroable&apos; for all bindgen-generated structs.   - Add &apos;unsafe fn cast_[pin_]init()&apos; functions to unsafely change the     initialized type of an initializer. These are utilized by the     &apos;Wrapper&lt;T&gt;&apos; implementations.   - Add support for visibility in &apos;Zeroable&apos; derive macro.   - Add support for &apos;union&apos;s in &apos;Zeroable&apos; derive macro.   - Upstream dev news: streamline CI, fix some bugs. Add new workflows     to check if the user-space version and the one in the kernel tree     have diverged. Use the issues tab [1] to track them, which should     help folks report and diagnose issues w.r.t. &apos;pin-init&apos; better.       [1] https://github.com/rust-for-linux/pin-init/issues  Documentation:   - Testing: add docs on the new KUnit &apos;#[test]&apos; tests.   - Coding guidelines: explain that &apos;///&apos; vs. &apos;//&apos; applies to private     items too. Add section on C FFI types.   - Quick Start guide: update Ubuntu instructions and split them into     &quot;25.04&quot; and &quot;24.04 LTS and older&quot;.  And a few other cleanups and improvements&quot;* tag &apos;rust-6.16&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/ojeda/linux: (78 commits)  rust: list: Fix typo `much` in arc.rs  rust: check type of `$ptr` in `container_of!`  rust: workqueue: remove HasWork::OFFSET  rust: retain pointer mut-ness in `container_of!`  Documentation: rust: testing: add docs on the new KUnit `#[test]` tests  Documentation: rust: rename `#[test]`s to &quot;`rusttest` host tests&quot;  rust: str: take advantage of the `-&gt; Result` support in KUnit `#[test]`&apos;s  rust: str: simplify KUnit tests `format!` macro  rust: str: convert `rusttest` tests into KUnit  rust: add `kunit_tests` to the prelude  rust: kunit: support checked `-&gt; Result`s in KUnit `#[test]`s  rust: kunit: support KUnit-mapped `assert!` macros in `#[test]`s  rust: make section names plural  rust: list: fix path of `assert_pinned!`  rust: compile libcore with edition 2024 for 1.87+  rust: dma: add missing Markdown code span  rust: task: add missing Markdown code spans and intra-doc links  rust: pci: fix docs related to missing Markdown code spans  rust: alloc: add missing Markdown code span  rust: alloc: add missing Markdown code spans  ...

            List of files:
            /linux/rust/pin-init/internal/src/zeroable.rs</description>
        <pubDate>Thu, 05 Jun 2025 06:18:37 +0200</pubDate>
        <dc:creator>Linus Torvalds &lt;torvalds@linux-foundation.org&gt;</dc:creator>
    </item>
<item>
        <title>b04d17062193dcc0fe5fc87adee5091319a482a0 - Merge tag &apos;pin-init-v6.16&apos; of https://github.com/Rust-for-Linux/linux into rust-next</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/pin-init/internal/src/zeroable.rs#b04d17062193dcc0fe5fc87adee5091319a482a0</link>
        <description>Merge tag &apos;pin-init-v6.16&apos; of https://github.com/Rust-for-Linux/linux into rust-nextPull pin-init updates from Benno Lossin: &quot;Added:   - &apos;Wrapper&lt;T&gt;&apos; trait for creating pin-initializers for wrapper     structs with a structurally pinned value such as &apos;UnsafeCell&lt;T&gt;&apos; or     &apos;MaybeUninit&lt;T&gt;&apos;.   - &apos;MaybeZeroable&apos; derive macro to try to derive &apos;Zeroable&apos;, but not     error if not all fields implement it. This is needed to derive     &apos;Zeroable&apos; for all bindgen-generated structs.   - &apos;unsafe fn cast_[pin_]init()&apos; functions to unsafely change the     initialized type of an initializer. These are utilized by the     &apos;Wrapper&lt;T&gt;&apos; implementations.  Changed:   - Added support for visibility in &apos;Zeroable&apos; derive macro.   - Added support for &apos;union&apos;s in &apos;Zeroable&apos; derive macro.  Upstream dev news:   - The CI has been streamlined &amp; some bugs with it have been fixed. I     also added new workflows to check if the user-space version and the     one in the kernel tree have diverged.   - I also started to use the issues [1] tab to keep track of any     problems or unexpected/unwanted things. This should help folks     report and diagnose issues w.r.t. &apos;pin-init&apos; better.      [1] https://github.com/rust-for-linux/pin-init/issues&quot;* tag &apos;pin-init-v6.16&apos; of https://github.com/Rust-for-Linux/linux:  rust: pin-init: improve documentation for `Zeroable` derive macros  rust: pin-init: fix typos  rust: pin-init: add `MaybeZeroable` derive macro  rust: pin-init: allow `Zeroable` derive macro to also be applied to unions  rust: pin-init: allow `pub` fields in `derive(Zeroable)`  rust: pin-init: Update the structural pinning link in readme.  rust: pin-init: Update Changelog and Readme  rust: pin-init: Implement `Wrapper` for `UnsafePinned` behind feature flag.  rust: pin-init: Add the `Wrapper` trait.  rust: pin-init: add `cast_[pin_]init` functions to change the initialized type  rust: pin-init: examples: use `allow` instead of `expect`  rust: pin-init: examples: conditionally enable `feature(lint_reasons)`  rust: pin-init: internal: skip rustfmt formatting of kernel-only module  rust: pin-init: synchronize README.md

            List of files:
            /linux/rust/pin-init/internal/src/zeroable.rs</description>
        <pubDate>Sun, 18 May 2025 20:42:49 +0200</pubDate>
        <dc:creator>Miguel Ojeda &lt;ojeda@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>00fccd3ecc2129ee32fd181079eb643f497044c4 - rust: pin-init: add `MaybeZeroable` derive macro</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/pin-init/internal/src/zeroable.rs#00fccd3ecc2129ee32fd181079eb643f497044c4</link>
        <description>rust: pin-init: add `MaybeZeroable` derive macroThis derive macro implements `Zeroable` for structs &amp; unions preciselyif all fields also implement `Zeroable` and does nothing otherwise. Theplain `Zeroable` derive macro instead errors when it cannot derive`Zeroable` safely. The `MaybeZeroable` derive macro is useful in caseswhere manual checking is infeasible such as with the bindings crate.Move the zeroable generics parsing into a standalone function in orderto avoid code duplication between the two derive macros.Link: https://github.com/Rust-for-Linux/pin-init/pull/42/commits/1165cdad1a391b923efaf30cf76bc61e38da022eSigned-off-by: Benno Lossin &lt;benno.lossin@proton.me&gt;

            List of files:
            /linux/rust/pin-init/internal/src/zeroable.rs</description>
        <pubDate>Tue, 22 Apr 2025 00:18:52 +0200</pubDate>
        <dc:creator>Benno Lossin &lt;benno.lossin@proton.me&gt;</dc:creator>
    </item>
<item>
        <title>4f9786035f9e519db41375818e1d0b5f20da2f10 - Merge branch &apos;next&apos; into for-linus</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/pin-init/internal/src/zeroable.rs#4f9786035f9e519db41375818e1d0b5f20da2f10</link>
        <description>Merge branch &apos;next&apos; into for-linusPrepare input updates for 6.16 merge window.

            List of files:
            /linux/rust/pin-init/internal/src/zeroable.rs</description>
        <pubDate>Mon, 02 Jun 2025 06:41:07 +0200</pubDate>
        <dc:creator>Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>d51b9d81f7883f526b26e3ab903e646274aebeb1 - Merge tag &apos;v6.15-rc6&apos; into next</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/pin-init/internal/src/zeroable.rs#d51b9d81f7883f526b26e3ab903e646274aebeb1</link>
        <description>Merge tag &apos;v6.15-rc6&apos; into nextSync up with mainline to bring in xpad controller changes.

            List of files:
            /linux/rust/pin-init/internal/src/zeroable.rs</description>
        <pubDate>Fri, 16 May 2025 01:20:39 +0200</pubDate>
        <dc:creator>Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</dc:creator>
    </item>
</channel>
</rss>
