On Fri, Mar 07, 2025 at 11:49:07PM +0100, Miguel Ojeda wrote:
Hi Greg, Sasha,
Please consider this series for 6.12.y. It should apply cleanly on top of v6.12.18.
These are the patches to backport the `alloc` series for Rust, which will be useful for Rust Android Binder and others. It also means that, with this applied, we will not rely on the standard library `alloc` (and the unstable `cfg` option we used) anymore in any stable kernel that supports several Rust versions, so e.g. upstream Rust could consider removing that `cfg` if they needed.
The entire series of cherry-picks apply almost cleanly (only 2 trivial conflicts) -- to achieve that, I included the `#[expect]` support, which will make future backports that use that feature easier anyway. That series also enabled some Clippy warnings. We could reduce the series, but the end result is warning-free and Clippy is opt-in anyway. Out-of-tree code could, of course, see some warnings if they use it.
I also included a bunch of Clippy warnings cleanups for the DRM QR Code to have this series clean up to Rust 1.85.0 (the latest stable), but I could send them separately if needed.
Finally, I included the "Custom FFI" series backport, which in turn solves the arm64 + Rust 1.85.0 + `CONFIG_RUST_FW_LOADER_ABSTRACTIONS=y` issue. It will also make future patches easier to backport, since we will have the same `ffi::` types.
I tested that the entire series builds between every commit for x86_64 `LLVM=1` with the latest stable and minimum supported Rust compiler versions. I also ran my usual stable kernel tests on the end result; that is, boot-tested in QEMU for several architectures etc. In v6.12.18 for loongarch there is an unrelated error that was not there in v6.12.17 when I did a previous test run -- reported separately.
Things could still break, so extra tests on the next -rc from users in Cc here would be welcome -- thanks!
All queued up now, thanks!
greg k-h