Skip to contentSkip to conversation

linux-next: build failure in final build

DISCUSSION Mark Brown 2 participants 2 messages Mar 26 Linux-next tree

lore
Share & tools
lore

Mark Brown

author maintainer
#0 lore raw

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.

#1 lore raw
Quoted 6 lines · Mark Brown

Hi all,

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

error[E0405]: cannot find trait AlwaysRefCounted in module

This is due to a conflict with rust-next, which eventually removed the old import path of AlwaysRefCounted (kernel::types::AlwaysRefCounted).

We've already fixed this up in [1] and applied it to the drm-rust tree, so those should be gone for the next round.

Thanks,
Danilo

[1] https://lore.kernel.org/all/[email protected]/