]> mj.ucw.cz Git - pciutils.git/blobdiff - lspci.c
Introduced API for selection of access methods.
[pciutils.git] / lspci.c
diff --git a/lspci.c b/lspci.c
index 905c30072af0361a1de090a1fb532b0303e77dc6..7879f9b88c51fa3ff0a897a395ada2cba56dcc4a 100644 (file)
--- a/lspci.c
+++ b/lspci.c
@@ -1584,13 +1584,16 @@ static char *
 find_driver(struct device *d, char *buf)
 {
   struct pci_dev *dev = d->dev;
-  char *base = dev->access->method_params[PCI_ACCESS_SYS_BUS_PCI];
-  char name[1024], *drv;
+  char name[1024], *drv, *base;
   int n;
 
   if (dev->access->method != PCI_ACCESS_SYS_BUS_PCI)
     return NULL;
 
+  base = pci_get_param(dev->access, "sysfs.path");
+  if (!base || !base[0])
+    return NULL;
+
   n = snprintf(name, sizeof(name), "%s/devices/%04x:%02x:%02x.%d/driver",
               base, dev->domain, dev->bus, dev->dev, dev->func);
   if (n < 0 || n >= (int)sizeof(name))
@@ -2733,12 +2736,18 @@ main(int argc, char **argv)
       case 'D':
        opt_domains = 2;
        break;
+#ifdef PCI_USE_DNS
       case 'q':
        opt_query_dns++;
        break;
       case 'Q':
        opt_query_all = 1;
        break;
+#else
+      case 'q':
+      case 'Q':
+       die("DNS queries are not available in this version");
+#endif
       default:
        if (parse_generic_option(i, pacc, optarg))
          break;