From c14c0b208bc6766352afe720c9c5efe3f67a6ba9 Mon Sep 17 00:00:00 2001 From: Vladimir Eremin Date: Wed, 11 Jan 2017 21:56:06 +0300 Subject: [PATCH] Read device PCIID instead of subsystem one For some devices like Virtio network device [1af4:1000], there is invalid PCIID in /sys/class/net. Change-Id: I3bc514c2d57e3a7669c418e49830491041cb8f52 Closes-Bug: #1655733 (cherry picked from commit 0a306b1dc7021ec41b2947e6efa53be7c4075a9c) --- agent | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/agent b/agent index 38a641c..cc9ceae 100755 --- a/agent +++ b/agent @@ -510,9 +510,9 @@ class NodeAgent DEFAULT_SRIOV end - def nic_pci_id(int) - vendor = File.read("/sys/class/net/#{int}/device/vendor").chomp.gsub(/^0x/, '') - device = File.read("/sys/class/net/#{int}/device/device").chomp.gsub(/^0x/, '') + def nic_pci_id(bus_info) + vendor = File.read("/sys/bus/pci/devices/#{bus_info}/vendor").chomp.gsub(/^0x/, '') + device = File.read("/sys/bus/pci/devices/#{bus_info}/device").chomp.gsub(/^0x/, '') "#{vendor}:#{device}" rescue "" @@ -700,7 +700,7 @@ class NodeAgent # Getting SR-IOV info int_meta[:interface_properties][:sriov] = sriov_info(int, int_meta[:bus_info]) # Get PCI-ID - int_meta[:interface_properties][:pci_id] = nic_pci_id(int) + int_meta[:interface_properties][:pci_id] = nic_pci_id(int_meta[:bus_info]) # Get numa node int_meta[:interface_properties][:numa_node] = nic_numa_node(int_meta[:bus_info]) # Get maximum queues