From e082dbed92353977f420e02780154e41404f0857 Mon Sep 17 00:00:00 2001 From: tangwenjun Date: Tue, 21 Feb 2017 17:08:47 +0800 Subject: [PATCH] os/bluestore: fix coredump in register_ctrlr() Signed-off-by: tangwenjun --- src/os/bluestore/NVMEDevice.cc | 7 +++++++ 1 file changed, 7 insertions(+) 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); } -- 2.47.3