dmar: Don't try to reserve PCI regions for non-existing devices
In some cases we might have to create DMAR context before the corresponding device has been enumerated by the PCI bus. In that case we get called with NULL dev, because of that trying to reserve PCI regions causes a NULL pointer dereference in pci_find_pcie_root_port. Sponsored by: Stormshield Obtained from: Semihalf MFC after: 2 weeks Reviewed by: kib, rlibby Differential revision: https://reviews.freebsd.org/D32589
This commit is contained in:
parent
ccfa9ac5ac
commit
3c02da8096
@ -561,7 +561,7 @@ dmar_get_ctx_for_dev1(struct dmar_unit *dmar, device_t dev, uint16_t rid,
|
||||
error = domain_init_rmrr(domain1, dev, bus,
|
||||
slot, func, dev_domain, dev_busno, dev_path,
|
||||
dev_path_len);
|
||||
if (error == 0)
|
||||
if (error == 0 && dev != NULL)
|
||||
error = dmar_reserve_pci_regions(domain1, dev);
|
||||
if (error != 0) {
|
||||
dmar_domain_destroy(domain1);
|
||||
|
Loading…
Reference in New Issue
Block a user