rust: auxiliary: consider auxiliary devices always have a parent
An auxiliary device is guaranteed to always have a parent device (both in C and Rust), hence don't return an Option<&auxiliary::Device> in auxiliary::Device::parent(). Reviewed-by: Alice Ryhl <aliceryhl@google.com> Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Danilo Krummrich <dakr@kernel.org>
This commit is contained in:
@@ -28,7 +28,7 @@ impl File {
|
|||||||
_file: &drm::File<File>,
|
_file: &drm::File<File>,
|
||||||
) -> Result<u32> {
|
) -> Result<u32> {
|
||||||
let adev = &dev.adev;
|
let adev = &dev.adev;
|
||||||
let parent = adev.parent().ok_or(ENOENT)?;
|
let parent = adev.parent();
|
||||||
let pdev: &pci::Device = parent.try_into()?;
|
let pdev: &pci::Device = parent.try_into()?;
|
||||||
|
|
||||||
let value = match getparam.param as u32 {
|
let value = match getparam.param as u32 {
|
||||||
|
|||||||
@@ -215,9 +215,10 @@ impl<Ctx: device::DeviceContext> Device<Ctx> {
|
|||||||
unsafe { (*self.as_raw()).id }
|
unsafe { (*self.as_raw()).id }
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns a reference to the parent [`device::Device`], if any.
|
/// Returns a reference to the parent [`device::Device`].
|
||||||
pub fn parent(&self) -> Option<&device::Device> {
|
pub fn parent(&self) -> &device::Device {
|
||||||
self.as_ref().parent()
|
// SAFETY: A `struct auxiliary_device` always has a parent.
|
||||||
|
unsafe { self.as_ref().parent().unwrap_unchecked() }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ impl pci::Driver for ParentDriver {
|
|||||||
|
|
||||||
impl ParentDriver {
|
impl ParentDriver {
|
||||||
fn connect(adev: &auxiliary::Device) -> Result<()> {
|
fn connect(adev: &auxiliary::Device) -> Result<()> {
|
||||||
let parent = adev.parent().ok_or(EINVAL)?;
|
let parent = adev.parent();
|
||||||
let pdev: &pci::Device = parent.try_into()?;
|
let pdev: &pci::Device = parent.try_into()?;
|
||||||
|
|
||||||
let vendor = pdev.vendor_id();
|
let vendor = pdev.vendor_id();
|
||||||
|
|||||||
Reference in New Issue
Block a user