Page MenuHomeFreeBSD

D38072.id115172.diff
No OneTemporary

D38072.id115172.diff

diff --git a/sys/amd64/vmm/intel/vtd.c b/sys/amd64/vmm/intel/vtd.c
--- a/sys/amd64/vmm/intel/vtd.c
+++ b/sys/amd64/vmm/intel/vtd.c
@@ -446,6 +446,8 @@
struct vtdmap *vtdmap;
uint8_t bus;
+ KASSERT(dom != NULL, ("domain is NULL"));
+
bus = PCI_RID2BUS(rid);
ctxp = ctx_tables[bus];
pt_paddr = vtophys(dom->ptp);
@@ -758,6 +760,7 @@
SLIST_REMOVE(&domhead, dom, domain, next);
vtd_free_ptp(dom->ptp, dom->pt_levels);
+ bzero(dom, sizeof(struct domain));
free(dom, M_VTD);
}
diff --git a/sys/amd64/vmm/io/ppt.c b/sys/amd64/vmm/io/ppt.c
--- a/sys/amd64/vmm/io/ppt.c
+++ b/sys/amd64/vmm/io/ppt.c
@@ -182,7 +182,10 @@
num_pptdevs--;
TAILQ_REMOVE(&pptdev_list, ppt, next);
pci_disable_busmaster(dev);
- iommu_add_device(iommu_host_domain(), pci_get_rid(dev));
+
+ if (iommu_host_domain() == NULL) {
+ iommu_add_device(iommu_host_domain(), pci_get_rid(dev));
+ }
return (0);
}

File Metadata

Mime Type
text/plain
Expires
Wed, Apr 29, 4:12 PM (7 h, 45 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
32356069
Default Alt Text
D38072.id115172.diff (904 B)

Event Timeline