Page MenuHomeFreeBSD

D32839.id98036.diff
No OneTemporary

D32839.id98036.diff

Index: sys/dev/pci/pci.c
===================================================================
--- sys/dev/pci/pci.c
+++ sys/dev/pci/pci.c
@@ -3151,6 +3151,16 @@
if (PCIR_IS_BIOS(&dinfo->cfg, pm->pm_reg) &&
!(pm->pm_value & PCIM_BIOS_ENABLE))
return (0);
+#ifdef PCI_IOV
+ if ((dinfo->cfg.flags & PCICFG_VF) != 0) {
+ struct pcicfg_iov *iov;
+
+ iov = dinfo->cfg.iov;
+ cmd = pci_read_config(iov->iov_pf,
+ iov->iov_pos + PCIR_SRIOV_CTL, 2);
+ return ((cmd & PCIM_SRIOV_VF_MSE) != 0);
+ }
+#endif
cmd = pci_read_config(dev, PCIR_COMMAND, 2);
if (PCIR_IS_BIOS(&dinfo->cfg, pm->pm_reg) || PCI_BAR_MEM(pm->pm_value))
return ((cmd & PCIM_CMD_MEMEN) != 0);
Index: sys/dev/pci/pci_iov.c
===================================================================
--- sys/dev/pci/pci_iov.c
+++ sys/dev/pci/pci_iov.c
@@ -151,6 +151,7 @@
error = EBUSY;
goto cleanup;
}
+ iov->iov_pf = dev;
iov->iov_pos = iov_pos;
schema = pci_iov_build_schema(&pf_schema, &vf_schema);
Index: sys/dev/pci/pci_iov_private.h
===================================================================
--- sys/dev/pci/pci_iov_private.h
+++ sys/dev/pci/pci_iov_private.h
@@ -37,6 +37,7 @@
};
struct pcicfg_iov {
+ device_t iov_pf;
struct cdev *iov_cdev;
nvlist_t *iov_schema;
Index: sys/dev/pci/pci_user.c
===================================================================
--- sys/dev/pci/pci_user.c
+++ sys/dev/pci/pci_user.c
@@ -877,10 +877,9 @@
return (EBUSY); /* XXXKIB enable if _ACTIVATE */
if (!PCI_BAR_MEM(pm->pm_value))
return (EIO);
- error = BUS_TRANSLATE_RESOURCE(pcidev, SYS_RES_MEMORY,
- pm->pm_value & PCIM_BAR_MEM_BASE, &membase);
- if (error != 0)
- return (error);
+ if (BUS_TRANSLATE_RESOURCE(pcidev, SYS_RES_MEMORY,
+ pm->pm_value & PCIM_BAR_MEM_BASE, &membase) != 0);
+ return (ENOENT);
pbase = trunc_page(membase);
plen = round_page(membase + ((pci_addr_t)1 << pm->pm_size)) -

File Metadata

Mime Type
text/plain
Expires
Sat, Aug 8, 4:48 AM (5 h, 55 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
36210696
Default Alt Text
D32839.id98036.diff (1 KB)

Event Timeline