From 2d5087b305e42a72b283a04a3989f36bccf0ddf6 Mon Sep 17 00:00:00 2001 From: Cunyin Chang Date: Mon, 23 Jan 2017 12:35:02 +0800 Subject: [PATCH] nvme: Add assert for g_thread_mmio_ctrlr in sigbus error handler function. The g_thread_mmio_ctrlr should be not NULL pointer when it enter the handler function. Change-Id: I45dba601c672b16e2c6feafd9059bafde0d8f1b4 Signed-off-by: Cunyin Chang --- lib/nvme/nvme_pcie.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/lib/nvme/nvme_pcie.c b/lib/nvme/nvme_pcie.c index 6c26f3cf1..9ddfb2f97 100644 --- a/lib/nvme/nvme_pcie.c +++ b/lib/nvme/nvme_pcie.c @@ -204,20 +204,20 @@ nvme_sigbus_fault_sighandler(int signum, siginfo_t *info, void *ctx) return; } - if (g_thread_mmio_ctrlr) { - if (!g_thread_mmio_ctrlr->is_remapped) { - map_address = mmap((void *)g_thread_mmio_ctrlr->regs, g_thread_mmio_ctrlr->regs_size, - PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0); - if (map_address == MAP_FAILED) { - SPDK_ERRLOG("mmap failed\n"); - g_signal_lock = 0; - return; - } - memset(map_address, 0xFF, sizeof(struct spdk_nvme_registers)); - g_thread_mmio_ctrlr->regs = (volatile struct spdk_nvme_registers *)map_address; - g_thread_mmio_ctrlr->is_remapped = true; + assert(g_thread_mmio_ctrlr != NULL); + + if (!g_thread_mmio_ctrlr->is_remapped) { + map_address = mmap((void *)g_thread_mmio_ctrlr->regs, g_thread_mmio_ctrlr->regs_size, + PROT_READ | PROT_WRITE, + MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0); + if (map_address == MAP_FAILED) { + SPDK_ERRLOG("mmap failed\n"); + g_signal_lock = 0; + return; } + memset(map_address, 0xFF, sizeof(struct spdk_nvme_registers)); + g_thread_mmio_ctrlr->regs = (volatile struct spdk_nvme_registers *)map_address; + g_thread_mmio_ctrlr->is_remapped = true; } g_signal_lock = 0; return;