Subject: linux-next: build failure in final build

From: Mark Brown <[email-masked]>
Date: Thu, 26 Mar 2026 16:04:23 +0000

Hi all,

During the final builds, today's linux-next build (arm64 allyesconfig)
failed like this:

error[E0405]: cannot find trait `AlwaysRefCounted` in module
`$crate::types`
   --> /tmp/next/build/rust/kernel/drm/gem/mod.rs:42:62
    |
42 | unsafe impl $( <$( $tparam_id ),+> )? $crate::types::AlwaysRefCounted
for $type
    |                                                              ^^^^^^^^^^^^^^^^
    |                                                              not
    |                                                              found in
    |                                                              `$crate::types`
...  308 | impl_aref_for_gem_obj!(impl<T> for Object<T> where T:
DriverObject);
    | -------------------------------------------------------------------
    | in this macro invocation
    |
    = note: this error originates in the macro `impl_aref_for_gem_obj` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider importing this trait
    |
7 + use crate::sync::aref::AlwaysRefCounted;
    |

error[E0277]: the trait bound `Object<T>: aref::AlwaysRefCounted` is
not satisfied
   --> /tmp/next/build/rust/kernel/drm/gem/mod.rs:142:41
    |
142 | impl<T: DriverObject> IntoGEMObject for Object<T> {
    |                                         ^^^^^^^^^ the trait
    |                                         `aref::AlwaysRefCounted`
    |                                         is not implemented for
    |                                         `Object<T>`
    |
    = help: the following other types implement trait `aref::AlwaysRefCounted`:
              Chip<T>
              Credential
              FwNode
              I2cAdapter
              I2cClient
              Interface
              LocalFile
              Mm
            and 12 others
note: required by a bound in `IntoGEMObject`
   --> /tmp/next/build/rust/kernel/drm/gem/mod.rs:96:59
    |
96 | pub trait IntoGEMObject: Sized + super::private::Sealed +
AlwaysRefCounted {
    |                                                           ^^^^^^^^^^^^^^^^
    |                                                           required
    |                                                           by this
    |                                                           bound in
    |                                                           `IntoGEMObject`

error[E0277]: the trait bound `Object<T>: aref::AlwaysRefCounted` is
not satisfied
   --> /tmp/next/build/rust/kernel/drm/gem/mod.rs:320:37
    |
320 | impl<T: DriverObject> AllocImpl for Object<T> {
    |                                     ^^^^^^^^^ the trait
    |                                     `aref::AlwaysRefCounted` is
    |                                     not implemented for `Object<T>`
    |
    = help: the following other types implement trait `aref::AlwaysRefCounted`:
              Chip<T>
              Credential
              FwNode
              I2cAdapter
              I2cClient
              Interface
              LocalFile
              Mm
            and 12 others
note: required for `Object<T>` to implement `IntoGEMObject`
   --> /tmp/next/build/rust/kernel/drm/gem/mod.rs:96:11
    |
96 | pub trait IntoGEMObject: Sized + super::private::Sealed +
AlwaysRefCounted {
    |           ^^^^^^^^^^^^^
note: required by a bound in `AllocImpl`
   --> /tmp/next/build/rust/kernel/drm/driver.rs:90:47
    |
90 | pub trait AllocImpl: super::private::Sealed + drm::gem::IntoGEMObject
{
    |                                               ^^^^^^^^^^^^^^^^^^^^^^^
    |                                               required by this
    |                                               bound in `AllocImpl`

error: aborting due to 3 previous errors

Some errors have detailed explanations: E0277, E0405.  For more
information about an error, try `rustc --explain E0277`.

Presumably caused by one of these commits:

  442ba16a5a513 (rust: gem: Introduce DriverObject::Args)
  e64b9cc293ae7 (rust: drm: Add gem::impl_aref_for_gem_obj!)

I have ignored this for today.