From: tangwenjun Date: Tue, 21 Feb 2017 09:08:47 +0000 (+0800) Subject: os/bluestore: fix coredump in register_ctrlr() X-Git-Tag: v12.0.1~119^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=e082dbed92353977f420e02780154e41404f0857;p=ceph.git os/bluestore: fix coredump in register_ctrlr() Signed-off-by: tangwenjun --- diff --git a/src/os/bluestore/NVMEDevice.cc b/src/os/bluestore/NVMEDevice.cc index 13011580d05d..51eba597ff70 100644 --- a/src/os/bluestore/NVMEDevice.cc +++ b/src/os/bluestore/NVMEDevice.cc @@ -614,6 +614,13 @@ static void attach_cb(void *cb_ctx, const struct spdk_nvme_transport_id *trid, struct spdk_pci_device *pci_dev = NULL; spdk_pci_addr_parse(&pci_addr, trid->traddr); + + pci_dev = spdk_pci_get_device(&pci_addr); + if (!pci_dev) { + dout(0) << __func__ << " failed to get pci device" << dendl; + assert(pci_dev); + } + NVMEManager::ProbeContext *ctx = static_cast(cb_ctx); ctx->manager->register_ctrlr(ctx->sn_tag, ctrlr, pci_dev, &ctx->driver); }