summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPali Rohár <pali@kernel.org>2021-12-27 14:05:47 +0100
committerMartin Mares <mj@ucw.cz>2022-02-10 13:49:35 +0100
commit9b744f7611b5831f0c47cb1a26a37cca88f1335c (patch)
treed40a9c35b973e6ac7d6c8fa393fa6d328c66a392
parent1579c198ae9ddbb92a9ebc29f76eec169397fdd4 (diff)
downloadpciutils-9b744f7611b5831f0c47cb1a26a37cca88f1335c.tar.gz
libpci: sysfs: Implement support for PCI_FILL_DRIVER
In sysfs is driver name stored as symlink path of "driver" node.
-rw-r--r--lib/sysfs.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/sysfs.c b/lib/sysfs.c
index 735c144..ffa4f9d 100644
--- a/lib/sysfs.c
+++ b/lib/sysfs.c
@@ -461,6 +461,20 @@ sysfs_fill_info(struct pci_dev *d, unsigned int flags)
}
}
+ if (want_fill(d, flags, PCI_FILL_DRIVER))
+ {
+ char *driver_path = sysfs_deref_link(d, "driver");
+ if (driver_path)
+ {
+ char *driver = strrchr(driver_path, '/');
+ driver = driver ? driver+1 : driver_path;
+ pci_set_property(d, PCI_FILL_DRIVER, driver);
+ free(driver_path);
+ }
+ else
+ clear_fill(d, PCI_FILL_DRIVER);
+ }
+
pci_generic_fill_info(d, flags);
}