diff options
author | Pali Rohár <pali@kernel.org> | 2021-12-27 14:05:47 +0100 |
---|---|---|
committer | Martin Mares <mj@ucw.cz> | 2022-02-10 13:49:35 +0100 |
commit | 9b744f7611b5831f0c47cb1a26a37cca88f1335c (patch) | |
tree | d40a9c35b973e6ac7d6c8fa393fa6d328c66a392 | |
parent | 1579c198ae9ddbb92a9ebc29f76eec169397fdd4 (diff) | |
download | pciutils-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.c | 14 |
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); } |