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 <cunyin.chang@intel.com>
This commit is contained in:
Cunyin Chang 2017-01-23 12:35:02 +08:00 committed by Jim Harris
parent 4a5a24d537
commit 2d5087b305

View File

@ -204,20 +204,20 @@ nvme_sigbus_fault_sighandler(int signum, siginfo_t *info, void *ctx)
return; return;
} }
if (g_thread_mmio_ctrlr) { 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, if (!g_thread_mmio_ctrlr->is_remapped) {
PROT_READ | PROT_WRITE, map_address = mmap((void *)g_thread_mmio_ctrlr->regs, g_thread_mmio_ctrlr->regs_size,
MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0); PROT_READ | PROT_WRITE,
if (map_address == MAP_FAILED) { MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0);
SPDK_ERRLOG("mmap failed\n"); if (map_address == MAP_FAILED) {
g_signal_lock = 0; SPDK_ERRLOG("mmap failed\n");
return; 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;
} }
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; g_signal_lock = 0;
return; return;