From 1593884938bf27b1a582104f3be66f393c0056a5 Mon Sep 17 00:00:00 2001 From: bjorn3 <17426603+bjorn3@users.noreply.github.com> Date: Sun, 9 Jun 2024 18:12:59 +0200 Subject: [PATCH] pcid: Use capability_pointer method instead of a raw read --- pcid/src/pci_header.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pcid/src/pci_header.rs b/pcid/src/pci_header.rs index af5fcee75d..471f74b27c 100644 --- a/pcid/src/pci_header.rs +++ b/pcid/src/pci_header.rs @@ -1,5 +1,3 @@ -use std::convert::TryInto; - use pci_types::device_type::DeviceType; use pci_types::{ Bar as TyBar, ConfigRegionAccess, EndpointHeader, HeaderType, PciAddress, @@ -68,7 +66,10 @@ impl PciHeader { HeaderType::Endpoint => { let endpoint_header = EndpointHeader::from_header(header, access).unwrap(); let (subsystem_id, subsystem_vendor_id) = endpoint_header.subsystem(access); - let cap_pointer = (unsafe { access.read(addr, 0x34) } & 0xff) as u8; + let cap_pointer = endpoint_header + .capability_pointer(access) + .try_into() + .unwrap(); Ok(PciHeader::General(PciEndpointHeader { shared, subsystem_vendor_id,