diff --git a/sys/x86/iommu/intel_drv.c b/sys/x86/iommu/intel_drv.c index ae03ffa14e3..bd475d8b4ca 100644 --- a/sys/x86/iommu/intel_drv.c +++ b/sys/x86/iommu/intel_drv.c @@ -770,6 +770,13 @@ dmar_find(device_t dev, bool verbose) const char *banner; int i, dev_domain, dev_busno, dev_path_len; + /* + * This function can only handle PCI(e) devices. + */ + if (device_get_devclass(device_get_parent(dev)) != + devclass_find("pci")) + return (NULL); + dmar_dev = NULL; dev_domain = pci_get_domain(dev); dev_path_len = dmar_dev_depth(dev);