diff --git a/include/spdk/env.h b/include/spdk/env.h index 19f260126..a40367b40 100644 --- a/include/spdk/env.h +++ b/include/spdk/env.h @@ -658,6 +658,7 @@ struct spdk_pci_id { }; struct spdk_pci_device { + struct spdk_pci_device *parent; void *dev_handle; struct spdk_pci_addr addr; struct spdk_pci_id id; diff --git a/lib/vmd/vmd.c b/lib/vmd/vmd.c index f9630237f..ce7a9472f 100644 --- a/lib/vmd/vmd.c +++ b/lib/vmd/vmd.c @@ -669,6 +669,7 @@ vmd_dev_init(struct vmd_pci_device *dev) if (vmd_is_supported_device(dev)) { spdk_pci_addr_fmt(bdf, sizeof(bdf), &dev->pci.addr); SPDK_DEBUGLOG(SPDK_LOG_VMD, "Initalizing NVMe device at %s\n", bdf); + dev->pci.parent = &dev->bus->vmd->pci; spdk_pci_hook_device(spdk_pci_nvme_get_driver(), &dev->pci); } }