]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
os/bluestore: fix coredump in register_ctrlr()
authortangwenjun <tang.wenjun3@zte.com.cn>
Tue, 21 Feb 2017 09:08:47 +0000 (17:08 +0800)
committertangwenjun <tang.wenjun3@zte.com.cn>
Tue, 21 Feb 2017 09:08:47 +0000 (17:08 +0800)
Signed-off-by: tangwenjun <tang.wenjun3@zte.com.cn>
src/os/bluestore/NVMEDevice.cc

index 13011580d05dc940299d92d2911b6fb812bd38ba..51eba597ff705b65450cdb09f358ed51a9030df2 100644 (file)
@@ -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<NVMEManager::ProbeContext*>(cb_ctx);
   ctx->manager->register_ctrlr(ctx->sn_tag, ctrlr, pci_dev, &ctx->driver);
 }