On Mon Sep 28, 2026 at 1:00 PM BST, Danilo Krummrich wrote:
> On Mon Sep 28, 2026 at 1:36 PM CEST, Gary Guo wrote:
>> I think this doesn't need to use `pin_chain`? You can do
>>
>> gpu <- ...,
>>
>> _: {
>> #[cfg(...)]
>> gpu.run_self_tests(pdev);
>> }
>
> Unfortunately, this produces the following error.
>
> error[E0382]: borrow of moved value: `gpu`
> --> drivers/gpu/nova-core/driver.rs:140:62
> |
> 119 | gpu <- Gpu::new(
> | --- move occurs because `gpu` has type
> `core::pin::Pin<&mut gpu::Gpu<'_>>`, which does not implement the `Copy` trait
> ...
> 129 | gpu.run_selftests(pdev);
> | --- value moved here
gpu.as_mut().run_selftests(pdev);
should work?
Best,
Gary
> ...
> 140 |
> Pin::new_unchecked(&*core::ptr::from_ref(gpu.as_ref().get_ref()))
> | ^^^
> value borrowed here after move
>
> error: aborting due to 1 previous error