linux/rust/kernel
Danilo Krummrich 935e1d90bf rust: pci: require Send for Driver trait implementers
The instance of Self, returned and created by Driver::probe() is
dropped in the bus' remove() callback.

Request implementers of the Driver trait to implement Send, since the
remove() callback is not guaranteed to run from the same thread as
probe().

Fixes: 1bd8b6b2c5 ("rust: pci: add basic PCI device / driver abstractions")
Cc: stable <stable@kernel.org>
Reported-by: Alice Ryhl <aliceryhl@google.com>
Closes: https://lore.kernel.org/lkml/Z9rDxOJ2V2bPjj5i@google.com/
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
Reviewed-by: Benno Lossin <benno.lossin@proton.me>
Link: https://lore.kernel.org/r/20250319145350.69543-1-dakr@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-03-20 07:41:07 -07:00
..
alloc rust: kernel: add improved version of `ForeignOwnable::borrow_mut` 2025-01-13 23:46:07 +01:00
block Rust changes for v6.14 2025-01-21 17:48:03 -08:00
fs rust: file: add `FileDescriptorReservation` 2024-09-30 13:02:29 +02:00
init rust: treewide: switch to our kernel `Box` type 2024-10-15 22:56:59 +02:00
list rust: use derive(CoercePointee) on rustc >= 1.84.0 2025-01-13 23:45:30 +01:00
net Networking changes for 6.14. 2025-01-22 08:28:57 -08:00
sync Driver core and debugfs updates 2025-01-28 12:25:12 -08:00
.gitignore rust: jump_label: skip formatting generated file 2024-11-20 13:32:42 -05:00
alloc.rs rust: use derive(CoercePointee) on rustc >= 1.84.0 2025-01-13 23:45:30 +01:00
block.rs rust: block: introduce `kernel::block::mq` module 2024-06-14 07:45:04 -06:00
build_assert.rs rust: add `build_error!` to the prelude 2025-01-10 00:19:09 +01:00
cred.rs rust: file: add `Kuid` wrapper 2024-09-30 13:02:29 +02:00
device.rs rust: device: implement device context marker 2025-03-17 08:04:25 +01:00
device_id.rs rust: implement `IdArray`, `IdTable` and `RawDeviceId` 2024-12-20 17:19:25 +01:00
devres.rs rust: io: fix devres test with new io accessor functions 2025-02-25 07:29:48 +01:00
driver.rs rust: driver: address soundness issue in `RegistrationOps` 2025-01-07 11:31:45 +01:00
error.rs rust: error: import `kernel`'s `LayoutError` instead of `core`'s 2025-01-13 23:45:13 +01:00
faux.rs rust/kernel/faux: mark Registration methods inline 2025-03-11 10:42:23 +01:00
firmware.rs rust: map `long` to `isize` and `char` to `u8` 2024-12-16 21:49:33 +01:00
fs.rs rust: file: add Rust abstraction for `struct file` 2024-09-30 13:02:28 +02:00
generated_arch_static_branch_asm.rs.S rust: jump_label: skip formatting generated file 2024-11-20 13:32:42 -05:00
init.rs rust: init: use explicit ABI to clean warning in future compilers 2025-02-06 00:15:49 +01:00
io.rs rust: io: rename `io::Io` accessors 2025-02-22 15:44:19 +01:00
ioctl.rs rust: start using the `#[expect(...)]` attribute 2024-10-07 21:39:57 +02:00
jump_label.rs rust: jump_label: skip formatting generated file 2024-11-20 13:32:42 -05:00
kunit.rs rust: kunit: use C-string literals to clean warning 2024-10-01 23:46:42 +02:00
lib.rs rust/kernel: Add faux device bindings 2025-02-13 16:58:58 +01:00
list.rs rust: enable `clippy::undocumented_unsafe_blocks` lint 2024-10-07 21:39:05 +02:00
miscdevice.rs Driver core and debugfs updates 2025-01-28 12:25:12 -08:00
net.rs rust: core abstractions for network PHY drivers 2023-12-15 09:35:50 +00:00
of.rs rust: of: add `of::DeviceId` abstraction 2024-12-20 17:21:04 +01:00
page.rs rust: page: remove unnecessary helper function from doctest 2025-01-13 23:44:55 +01:00
pci.rs rust: pci: require Send for Driver trait implementers 2025-03-20 07:41:07 -07:00
pid_namespace.rs rust: add PidNamespace 2024-10-08 15:44:36 +02:00
platform.rs rust: platform: impl Send + Sync for platform::Device 2025-03-18 16:55:12 -07:00
prelude.rs rust: add `build_error!` to the prelude 2025-01-10 00:19:09 +01:00
print.rs rust: cleanup unnecessary casts 2024-12-16 21:49:33 +01:00
rbtree.rs rust: rbtree: fix overindented list item 2025-02-12 23:26:55 +01:00
revocable.rs rust: add `Revocable` type 2024-12-20 17:19:26 +01:00
security.rs rust: finish using custom FFI integer types 2024-12-16 21:48:45 +01:00
seq_file.rs rust: finish using custom FFI integer types 2024-12-16 21:48:45 +01:00
sizes.rs rust: sizes: add commonly used constants 2024-08-30 10:27:34 +01:00
static_assert.rs rust: static_assert: add `static_assert!` macro 2022-12-04 01:59:16 +01:00
std_vendor.rs rust: std_vendor: update dbg macro from Rust upstream 2024-10-10 00:33:42 +02:00
str.rs rust: str: replace unwraps with question mark operators 2025-01-13 23:45:05 +01:00
sync.rs Driver core and debugfs updates 2025-01-28 12:25:12 -08:00
task.rs rust: fix up formatting after merge 2024-11-26 17:54:58 -08:00
time.rs rust: use custom FFI integer types 2024-11-10 23:58:00 +01:00
tracepoint.rs rust: add tracepoint support 2024-11-04 16:21:44 -05:00
transmute.rs rust: kernel: move `FromBytes` and `AsBytes` traits to a new `transmute` module 2024-10-10 00:33:42 +02:00
types.rs Driver core and debugfs updates 2025-01-28 12:25:12 -08:00
uaccess.rs rust: uaccess: generalize userSliceReader to support any Vec 2025-01-13 23:46:23 +01:00
workqueue.rs Rust changes for v6.14 2025-01-21 17:48:03 -08:00