diff --git a/lib/nvmf/ctrlr.c b/lib/nvmf/ctrlr.c index 8f0346ef0..bd6a44c17 100644 --- a/lib/nvmf/ctrlr.c +++ b/lib/nvmf/ctrlr.c @@ -3522,28 +3522,29 @@ nvmf_ctrlr_async_event_reservation_notification(struct spdk_nvmf_ctrlr *ctrlr) nvmf_ctrlr_async_event_notification(ctrlr, &event); } -int -nvmf_ctrlr_async_event_discovery_log_change_notice(struct spdk_nvmf_ctrlr *ctrlr) +void +nvmf_ctrlr_async_event_discovery_log_change_notice(void *ctx) { union spdk_nvme_async_event_completion event = {0}; + struct spdk_nvmf_ctrlr *ctrlr = ctx; /* Users may disable the event notification manually or * it may not be enabled due to keep alive timeout * not being set in connect command to discovery controller. */ if (!ctrlr->feat.async_event_configuration.bits.discovery_log_change_notice) { - return 0; + return; } if (!nvmf_ctrlr_mask_aen(ctrlr, SPDK_NVME_ASYNC_EVENT_DISCOVERY_LOG_CHANGE_MASK_BIT)) { - return 0; + return; } event.bits.async_event_type = SPDK_NVME_ASYNC_EVENT_TYPE_NOTICE; event.bits.async_event_info = SPDK_NVME_ASYNC_EVENT_DISCOVERY_LOG_CHANGE; event.bits.log_page_identifier = SPDK_NVME_LOG_DISCOVERY; - return nvmf_ctrlr_async_event_notification(ctrlr, &event); + nvmf_ctrlr_async_event_notification(ctrlr, &event); } int diff --git a/lib/nvmf/ctrlr_discovery.c b/lib/nvmf/ctrlr_discovery.c index 1727e6ce9..a6d7d6fae 100644 --- a/lib/nvmf/ctrlr_discovery.c +++ b/lib/nvmf/ctrlr_discovery.c @@ -61,7 +61,7 @@ nvmf_update_discovery_log(struct spdk_nvmf_tgt *tgt, const char *hostnqn) /** There is a change in discovery log for hosts with given hostnqn */ TAILQ_FOREACH(ctrlr, &discovery_subsystem->ctrlrs, link) { if (hostnqn == NULL || strcmp(hostnqn, ctrlr->hostnqn) == 0) { - nvmf_ctrlr_async_event_discovery_log_change_notice(ctrlr); + spdk_thread_send_msg(ctrlr->thread, nvmf_ctrlr_async_event_discovery_log_change_notice, ctrlr); } } } diff --git a/lib/nvmf/nvmf_internal.h b/lib/nvmf/nvmf_internal.h index e5842b03f..e35f172fb 100644 --- a/lib/nvmf/nvmf_internal.h +++ b/lib/nvmf/nvmf_internal.h @@ -457,7 +457,7 @@ int nvmf_subsystem_set_cntlid_range(struct spdk_nvmf_subsystem *subsystem, int nvmf_ctrlr_async_event_ns_notice(struct spdk_nvmf_ctrlr *ctrlr); int nvmf_ctrlr_async_event_ana_change_notice(struct spdk_nvmf_ctrlr *ctrlr); -int nvmf_ctrlr_async_event_discovery_log_change_notice(struct spdk_nvmf_ctrlr *ctrlr); +void nvmf_ctrlr_async_event_discovery_log_change_notice(void *ctx); void nvmf_ctrlr_async_event_reservation_notification(struct spdk_nvmf_ctrlr *ctrlr); int nvmf_ctrlr_async_event_error_event(struct spdk_nvmf_ctrlr *ctrlr, union spdk_nvme_async_event_completion event); diff --git a/test/unit/lib/nvmf/ctrlr_discovery.c/ctrlr_discovery_ut.c b/test/unit/lib/nvmf/ctrlr_discovery.c/ctrlr_discovery_ut.c index 1ee2c5601..f05a9dec6 100644 --- a/test/unit/lib/nvmf/ctrlr_discovery.c/ctrlr_discovery_ut.c +++ b/test/unit/lib/nvmf/ctrlr_discovery.c/ctrlr_discovery_ut.c @@ -65,9 +65,7 @@ DEFINE_STUB(spdk_nvmf_transport_get_next, DEFINE_STUB_V(spdk_bdev_close, (struct spdk_bdev_desc *desc)); -DEFINE_STUB(nvmf_ctrlr_async_event_discovery_log_change_notice, - int, - (struct spdk_nvmf_ctrlr *ctrlr), 0); +DEFINE_STUB_V(nvmf_ctrlr_async_event_discovery_log_change_notice, (void *ctx)); DEFINE_STUB(spdk_nvmf_qpair_disconnect, int, (struct spdk_nvmf_qpair *qpair,