Lines Matching full:aer
51 struct nvme_async_event_request *aer);
685 struct nvme_async_event_request *aer = arg; in nvme_ctrlr_async_event_log_page_cb() local
697 nvme_notify_async_consumers(aer->ctrlr, &aer->cpl, in nvme_ctrlr_async_event_log_page_cb()
698 aer->log_page_id, NULL, 0); in nvme_ctrlr_async_event_log_page_cb()
701 switch (aer->log_page_id) { in nvme_ctrlr_async_event_log_page_cb()
703 err = (struct nvme_error_information_entry *)aer->log_page_buffer; in nvme_ctrlr_async_event_log_page_cb()
704 for (i = 0; i < (aer->ctrlr->cdata.elpe + 1); i++) in nvme_ctrlr_async_event_log_page_cb()
709 (struct nvme_health_information_page *)aer->log_page_buffer); in nvme_ctrlr_async_event_log_page_cb()
713 (struct nvme_ns_list *)aer->log_page_buffer); in nvme_ctrlr_async_event_log_page_cb()
717 (struct nvme_command_effects_page *)aer->log_page_buffer); in nvme_ctrlr_async_event_log_page_cb()
721 (struct nvme_res_notification_page *)aer->log_page_buffer); in nvme_ctrlr_async_event_log_page_cb()
725 (struct nvme_sanitize_status_page *)aer->log_page_buffer); in nvme_ctrlr_async_event_log_page_cb()
731 if (aer->log_page_id == NVME_LOG_HEALTH_INFORMATION) { in nvme_ctrlr_async_event_log_page_cb()
733 aer->log_page_buffer; in nvme_ctrlr_async_event_log_page_cb()
734 nvme_ctrlr_log_critical_warnings(aer->ctrlr, in nvme_ctrlr_async_event_log_page_cb()
743 aer->ctrlr->async_event_config &= in nvme_ctrlr_async_event_log_page_cb()
745 nvme_ctrlr_cmd_set_async_event_config(aer->ctrlr, in nvme_ctrlr_async_event_log_page_cb()
746 aer->ctrlr->async_event_config, NULL, NULL); in nvme_ctrlr_async_event_log_page_cb()
747 } else if (aer->log_page_id == NVME_LOG_CHANGED_NAMESPACE && in nvme_ctrlr_async_event_log_page_cb()
749 nsl = (struct nvme_ns_list *)aer->log_page_buffer; in nvme_ctrlr_async_event_log_page_cb()
753 nvme_notify_ns(aer->ctrlr, nsl->ns[i]); in nvme_ctrlr_async_event_log_page_cb()
761 nvme_notify_async_consumers(aer->ctrlr, &aer->cpl, in nvme_ctrlr_async_event_log_page_cb()
762 aer->log_page_id, aer->log_page_buffer, aer->log_page_size); in nvme_ctrlr_async_event_log_page_cb()
769 nvme_ctrlr_construct_and_submit_aer(aer->ctrlr, aer); in nvme_ctrlr_async_event_log_page_cb()
775 struct nvme_async_event_request *aer = arg; in nvme_ctrlr_async_event_cb() local
788 aer->log_page_id = NVMEV(NVME_ASYNC_EVENT_LOG_PAGE_ID, cpl->cdw0); in nvme_ctrlr_async_event_cb()
790 nvme_printf(aer->ctrlr, "async event occurred (type 0x%x, info 0x%02x," in nvme_ctrlr_async_event_cb()
793 aer->log_page_id); in nvme_ctrlr_async_event_cb()
795 if (is_log_page_id_valid(aer->log_page_id)) { in nvme_ctrlr_async_event_cb()
796 aer->log_page_size = nvme_ctrlr_get_log_page_size(aer->ctrlr, in nvme_ctrlr_async_event_cb()
797 aer->log_page_id); in nvme_ctrlr_async_event_cb()
798 memcpy(&aer->cpl, cpl, sizeof(*cpl)); in nvme_ctrlr_async_event_cb()
799 nvme_ctrlr_cmd_get_log_page(aer->ctrlr, aer->log_page_id, in nvme_ctrlr_async_event_cb()
800 NVME_GLOBAL_NAMESPACE_TAG, aer->log_page_buffer, in nvme_ctrlr_async_event_cb()
801 aer->log_page_size, nvme_ctrlr_async_event_log_page_cb, in nvme_ctrlr_async_event_cb()
802 aer); in nvme_ctrlr_async_event_cb()
805 nvme_notify_async_consumers(aer->ctrlr, cpl, aer->log_page_id, in nvme_ctrlr_async_event_cb()
812 nvme_ctrlr_construct_and_submit_aer(aer->ctrlr, aer); in nvme_ctrlr_async_event_cb()
818 struct nvme_async_event_request *aer) in nvme_ctrlr_construct_and_submit_aer() argument
822 aer->ctrlr = ctrlr; in nvme_ctrlr_construct_and_submit_aer()
825 * callback context. AER completions should be handled on a dedicated in nvme_ctrlr_construct_and_submit_aer()
829 aer); in nvme_ctrlr_construct_and_submit_aer()
830 aer->req = req; in nvme_ctrlr_construct_and_submit_aer()
845 struct nvme_async_event_request *aer; in nvme_ctrlr_configure_aer() local
875 aer = &ctrlr->aer[i]; in nvme_ctrlr_configure_aer()
876 nvme_ctrlr_construct_and_submit_aer(ctrlr, aer); in nvme_ctrlr_configure_aer()