@@ -62,7 +62,7 @@ impl PciDevice {
6262 }
6363 }
6464
65- pub fn get_sub_device_name ( & self , db : & Database ) -> Option < String > {
65+ pub fn get_device_name ( & self , db : & Database ) -> Option < String > {
6666 let vendor_value = self . read_value ( PciDeviceReadableValues :: Vendor ) ;
6767 let sub_vendor_value = self . read_value ( PciDeviceReadableValues :: SubVendor ) ;
6868 let device_value = self . read_value ( PciDeviceReadableValues :: Device ) ;
@@ -75,6 +75,8 @@ impl PciDevice {
7575 let Some ( device) = vendor. devices . get ( & device_value) else {
7676 return None ;
7777 } ;
78+ // To return device name if no valid subdevice name is found
79+ let device_name = device. name . to_owned ( ) ;
7880
7981 let sub_device_id = SubDeviceId {
8082 subvendor : sub_vendor_value,
@@ -84,20 +86,16 @@ impl PciDevice {
8486 if let Some ( sub_device) = device. subdevices . get ( & sub_device_id) {
8587 let start = match sub_device. find ( '[' ) {
8688 Some ( i) => i + 1 ,
87- _ => panic ! (
88- "Could not find opening square bracket for sub device: {}" ,
89- sub_device
90- ) ,
89+ _ => return Some ( device_name) ,
9190 } ;
9291 let end = sub_device. len ( ) - 1 ;
9392
9493 Some ( sub_device. chars ( ) . take ( end) . skip ( start) . collect :: < String > ( ) )
9594 } else {
96- None
95+ Some ( device_name )
9796 }
9897 }
9998}
100-
10199pub fn get_pci_devices ( ) -> Result < Vec < PciDevice > , io:: Error > {
102100 let devices_dir = read_dir ( "/sys/bus/pci/devices/" ) ?;
103101
0 commit comments