Skip to content

Commit d5a6e99

Browse files
Default to device name if subdevice name is not found (#151)
1 parent 97e8ce3 commit d5a6e99

File tree

2 files changed

+6
-8
lines changed

2 files changed

+6
-8
lines changed

src/linux/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -561,7 +561,7 @@ impl GeneralReadout for LinuxGeneralReadout {
561561
continue;
562562
};
563563

564-
if let Some(sub_device_name) = device.get_sub_device_name(&db) {
564+
if let Some(sub_device_name) = device.get_device_name(&db) {
565565
gpus.push(sub_device_name);
566566
};
567567
}

src/linux/pci_devices.rs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -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-
10199
pub fn get_pci_devices() -> Result<Vec<PciDevice>, io::Error> {
102100
let devices_dir = read_dir("/sys/bus/pci/devices/")?;
103101

0 commit comments

Comments
 (0)