vlib: fix issues with PCI handling code
- PCI devices not properly discovered - vlib_pci_bus_master_enable () not working Change-Id: I7433ab1b19b890b8900635b43037b9a2017a1921 Signed-off-by: Damjan Marion <damarion@cisco.com>
This commit is contained in:
@@ -562,8 +562,6 @@ scan_device (void *arg, u8 * dev_dir_name, u8 * ignored)
|
||||
hash_set (pm->pci_dev_index_by_pci_addr, dev->bus_address.as_u32,
|
||||
dev - pm->pci_devs);
|
||||
|
||||
error = init_device (vm, dev, &pdev);
|
||||
|
||||
vec_reset_length (f);
|
||||
f = format (f, "%v/vpd%c", dev_dir_name, 0);
|
||||
fd = open ((char *) f, O_RDONLY);
|
||||
@@ -601,10 +599,6 @@ scan_device (void *arg, u8 * dev_dir_name, u8 * ignored)
|
||||
close (fd);
|
||||
}
|
||||
|
||||
vec_reset_length (f);
|
||||
f = format (f, "%v/driver%c", dev_dir_name, 0);
|
||||
dev->driver_name = vlib_sysfs_link_to_name ((char *) f);
|
||||
|
||||
dev->numa_node = -1;
|
||||
vec_reset_length (f);
|
||||
f = format (f, "%v/numa_node%c", dev_dir_name, 0);
|
||||
@@ -625,6 +619,12 @@ scan_device (void *arg, u8 * dev_dir_name, u8 * ignored)
|
||||
vlib_sysfs_read ((char *) f, "0x%x", &tmp);
|
||||
dev->device_id = tmp;
|
||||
|
||||
error = init_device (vm, dev, &pdev);
|
||||
|
||||
vec_reset_length (f);
|
||||
f = format (f, "%v/driver%c", dev_dir_name, 0);
|
||||
dev->driver_name = vlib_sysfs_link_to_name ((char *) f);
|
||||
|
||||
done:
|
||||
vec_free (f);
|
||||
return error;
|
||||
|
||||
@@ -215,7 +215,7 @@ vlib_pci_bus_master_enable (vlib_pci_device_t * dev)
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
if (!(command & PCI_COMMAND_BUS_MASTER))
|
||||
if (command & PCI_COMMAND_BUS_MASTER)
|
||||
return 0;
|
||||
|
||||
command |= PCI_COMMAND_BUS_MASTER;
|
||||
|
||||
Reference in New Issue
Block a user