Commit 2d192cf8 authored by Changpeng Liu's avatar Changpeng Liu Committed by Daniel Verkamp
Browse files

nvme: use AER configuation structure when starting controller



Change-Id: I79dad84d1dc58e61eb36b461b41fbd7ee73631fc
Signed-off-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
Reviewed-on: https://review.gerrithub.io/406899


Tested-by: default avatarSPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: default avatarDaniel Verkamp <daniel.verkamp@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
parent 7bdd103b
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -1197,7 +1197,7 @@ nvme_ctrlr_construct_and_submit_aer(struct spdk_nvme_ctrlr *ctrlr,
static int
nvme_ctrlr_configure_aer(struct spdk_nvme_ctrlr *ctrlr)
{
	union spdk_nvme_critical_warning_state	state;
	union spdk_nvme_feat_async_event_configuration config;
	struct nvme_async_event_request		*aer;
	uint32_t				i;
	struct nvme_completion_poll_status	status;
@@ -1205,9 +1205,16 @@ nvme_ctrlr_configure_aer(struct spdk_nvme_ctrlr *ctrlr)

	status.done = false;

	state.raw = 0xFF;
	state.bits.reserved = 0;
	rc = nvme_ctrlr_cmd_set_async_event_config(ctrlr, state, nvme_completion_poll_cb, &status);
	config.raw = 0;
	config.bits.crit_warn.bits.available_spare = 1;
	config.bits.crit_warn.bits.temperature = 1;
	config.bits.crit_warn.bits.device_reliability = 1;
	config.bits.crit_warn.bits.read_only = 1;
	config.bits.crit_warn.bits.volatile_memory_backup = 1;
	config.bits.ns_attr_notice = 1;
	config.bits.fw_activation_notice = 1;
	config.bits.telemetry_log_notice = 1;
	rc = nvme_ctrlr_cmd_set_async_event_config(ctrlr, config, nvme_completion_poll_cb, &status);
	if (rc != 0) {
		return rc;
	}
+2 −2
Original line number Diff line number Diff line
@@ -363,12 +363,12 @@ nvme_ctrlr_cmd_get_num_queues(struct spdk_nvme_ctrlr *ctrlr,

int
nvme_ctrlr_cmd_set_async_event_config(struct spdk_nvme_ctrlr *ctrlr,
				      union spdk_nvme_critical_warning_state state, spdk_nvme_cmd_cb cb_fn,
				      union spdk_nvme_feat_async_event_configuration config, spdk_nvme_cmd_cb cb_fn,
				      void *cb_arg)
{
	uint32_t cdw11;

	cdw11 = state.raw;
	cdw11 = config.raw;
	return spdk_nvme_ctrlr_cmd_set_feature(ctrlr, SPDK_NVME_FEAT_ASYNC_EVENT_CONFIGURATION, cdw11, 0,
					       NULL, 0,
					       cb_fn, cb_arg);
+1 −1
Original line number Diff line number Diff line
@@ -542,7 +542,7 @@ int nvme_ctrlr_cmd_set_num_queues(struct spdk_nvme_ctrlr *ctrlr,
int	nvme_ctrlr_cmd_get_num_queues(struct spdk_nvme_ctrlr *ctrlr,
				      spdk_nvme_cmd_cb cb_fn, void *cb_arg);
int	nvme_ctrlr_cmd_set_async_event_config(struct spdk_nvme_ctrlr *ctrlr,
		union spdk_nvme_critical_warning_state state,
		union spdk_nvme_feat_async_event_configuration config,
		spdk_nvme_cmd_cb cb_fn, void *cb_arg);
int	nvme_ctrlr_cmd_set_host_id(struct spdk_nvme_ctrlr *ctrlr, void *host_id, uint32_t host_id_size,
				   spdk_nvme_cmd_cb cb_fn, void *cb_arg);
+1 −1
Original line number Diff line number Diff line
@@ -266,7 +266,7 @@ nvme_completion_poll_cb(void *arg, const struct spdk_nvme_cpl *cpl)

int
nvme_ctrlr_cmd_set_async_event_config(struct spdk_nvme_ctrlr *ctrlr,
				      union spdk_nvme_critical_warning_state state, spdk_nvme_cmd_cb cb_fn,
				      union spdk_nvme_feat_async_event_configuration config, spdk_nvme_cmd_cb cb_fn,
				      void *cb_arg)
{
	fake_cpl_success(cb_fn, cb_arg);