diff options
Diffstat (limited to 'sys/dev/pci/pci.c')
-rw-r--r-- | sys/dev/pci/pci.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/sys/dev/pci/pci.c b/sys/dev/pci/pci.c index 630aaa9..3c998b4 100644 --- a/sys/dev/pci/pci.c +++ b/sys/dev/pci/pci.c @@ -5427,7 +5427,8 @@ pci_child_location_str_method(device_t dev, device_t child, char *buf, size_t buflen) { - snprintf(buf, buflen, "pci%d:%d:%d:%d", pci_get_domain(child), + snprintf(buf, buflen, "slot=%d function=%d dbsf=pci%d:%d:%d:%d", + pci_get_slot(child), pci_get_function(child), pci_get_domain(child), pci_get_bus(child), pci_get_slot(child), pci_get_function(child)); return (0); } @@ -5643,6 +5644,11 @@ pci_cfg_restore(device_t dev, struct pci_devinfo *dinfo) pci_resume_msi(dev); if (dinfo->cfg.msix.msix_location != 0) pci_resume_msix(dev); + +#ifdef PCI_IOV + if (dinfo->cfg.iov != NULL) + pci_iov_cfg_restore(dev, dinfo); +#endif } static void @@ -5755,6 +5761,11 @@ pci_cfg_save(device_t dev, struct pci_devinfo *dinfo, int setstate) if (dinfo->cfg.pcix.pcix_location != 0) pci_cfg_save_pcix(dev, dinfo); +#ifdef PCI_IOV + if (dinfo->cfg.iov != NULL) + pci_iov_cfg_save(dev, dinfo); +#endif + /* * don't set the state for display devices, base peripherals and * memory devices since bad things happen when they are powered down. |