summaryrefslogtreecommitdiff
path: root/tools/lib/python
diff options
context:
space:
mode:
authorJoel Fernandes <joelagnelf@nvidia.com>2026-09-08 18:54:12 +0900
committerEliot Courtney <ecourtney@nvidia.com>2026-09-11 22:07:42 +0900
commit9cf1bc8bbc71a6b727ed6def13f125b07cf35210 (patch)
treeb96d5f8e5fcddf3c91c0886ac7daa7f6ccdb6ce1 /tools/lib/python
parent73e5616f3d197c1af5a04a481fe0f13aa3913bd1 (diff)
rust: maple_tree: implement Send and Sync for MapleTree
The C maple_tree struct contains a *mut c_void, which prevents Rust from auto-deriving Send/Sync. Following is an example error message when using MapleTree in nova-core's Vmm. This propagates up through MapleTreeAlloc to Vmm, BarUser, Gpu, and NovaCore, causing NovaCore to fail the Send bound required by pci::Driver: error[E0277]: `*mut c_void` cannot be sent between threads safely --> drivers/gpu/nova-core/driver.rs:77:22 | 77 | impl pci::Driver for NovaCore { | ^^^^^^^^ `*mut c_void` cannot be sent between threads safely | = help: within `MapleTreeAlloc<()>`, the trait `Send` is not implemented for `*mut c_void` note: required because it appears within the type `kernel::bindings::maple_tree` note: required because it appears within the type `Opaque<kernel::bindings::maple_tree>` note: required because it appears within the type `MapleTree<()>` note: required because it appears within the type `MapleTreeAlloc<()>` = note: required for `Box<MapleTreeAlloc<()>, Kmalloc>` to implement `Send` note: required because it appears within the type `core::pin::Pin<Box<MapleTreeAlloc<()>, Kmalloc>>` note: required because it appears within the type `Vmm` note: required because it appears within the type `BarUser` note: required because it appears within the type `Gpu` note: required because it appears within the type `NovaCore` note: required by a bound in `kernel::pci::Driver` --> rust/kernel/pci.rs:294:19 Implement Send and Sync for MapleTree. The tree contains no thread-local state, and all shared access goes through the internal ma_lock spinlock. Signed-off-by: Joel Fernandes <joelagnelf@nvidia.com> Reviewed-by: Gary Guo <gary@garyguo.net> Reviewed-by: Alice Ryhl <aliceryhl@google.com> Reviewed-by: Boqun Feng <boqun@kernel.org> [ecourtney: also require T: Sync for the Sync impl] Acked-by: Danilo Krummrich <dakr@kernel.org> Acked-by: Liam R. Howlett (Oracle) <liam@infradead.org> Link: https://patch.msgid.link/20260908-maple-tree-send-sync-v2-1-24aae5b3a990@nvidia.com Signed-off-by: Eliot Courtney <ecourtney@nvidia.com>
Diffstat (limited to 'tools/lib/python')
0 files changed, 0 insertions, 0 deletions