diff --git a/lib/ftl/ftl_core.c b/lib/ftl/ftl_core.c index 38fd9093c..2b143ff84 100644 --- a/lib/ftl/ftl_core.c +++ b/lib/ftl/ftl_core.c @@ -1894,9 +1894,22 @@ spdk_ftl_flush(struct spdk_ftl_dev *dev, spdk_ftl_fn cb_fn, void *cb_arg) return 0; } +static void +_ftl_process_anm_event(void *ctx) +{ + ftl_process_anm_event((struct ftl_anm_event *)ctx); +} + void ftl_process_anm_event(struct ftl_anm_event *event) { + struct spdk_ftl_dev *dev = event->dev; + + if (!ftl_check_core_thread(dev)) { + spdk_thread_send_msg(ftl_get_core_thread(dev), _ftl_process_anm_event, event); + return; + } + SPDK_DEBUGLOG(SPDK_LOG_FTL_CORE, "Unconsumed ANM received for dev: %p...\n", event->dev); ftl_anm_event_complete(event); }