]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
rust: drm: fix unsound initialization in drm::Device::new
authorEliot Courtney <ecourtney@nvidia.com>
Fri, 1 May 2026 10:49:37 +0000 (19:49 +0900)
committerDanilo Krummrich <dakr@kernel.org>
Sun, 3 May 2026 12:04:57 +0000 (14:04 +0200)
commit0a69ac25bd596d50823d530d0a2004336668c0df
treef159d80830e53de47426adc6a7b80b5e839bdd34
parent2e42a17b8f6bc3c0cd69d7556b588011d3ec2394
rust: drm: fix unsound initialization in drm::Device::new

If pinned initialization of drm::Device::Data fails, it calls
drm::Device::release via drm_dev_put. This materializes a reference to
&drm::Device, but it's not fully constructed yet, because initializing
`data` failed. It should not be dropped either. Instead, if pinned
initialization fails, make sure drm::Device::release isn't called.

Fixes: 2e9fdbe5ec7a ("rust: drm: device: drop_in_place() the drm::Device in release()")
Signed-off-by: Eliot Courtney <ecourtney@nvidia.com>
Reviewed-by: Gary Guo <gary@garyguo.net>
Link: https://patch.msgid.link/20260501-fix-drm-1-v2-1-5c4f681837bc@nvidia.com
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
rust/kernel/drm/device.rs