Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fa441b71 authored by Weiping Zhang's avatar Weiping Zhang Committed by Christoph Hellwig
Browse files

nvme: don't enable AEN if not supported



Avoid excuting set_feature command if there is no supported bit in
Optional Asynchronous Events Supported (OAES).

Fixes: c0561f82 ("nvme: submit AEN event configuration on startup")
Reviewed-by: default avatarSagi Grimberg <sagi@grimberg.me>
Signed-off-by: default avatarWeiping Zhang <zhangweiping@didichuxing.com>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
parent cf39a6bc
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -1060,14 +1060,17 @@ EXPORT_SYMBOL_GPL(nvme_set_queue_count);

static void nvme_enable_aen(struct nvme_ctrl *ctrl)
{
	u32 result;
	u32 result, supported_aens = ctrl->oaes & NVME_AEN_SUPPORTED;
	int status;

	status = nvme_set_features(ctrl, NVME_FEAT_ASYNC_EVENT,
			ctrl->oaes & NVME_AEN_SUPPORTED, NULL, 0, &result);
	if (!supported_aens)
		return;

	status = nvme_set_features(ctrl, NVME_FEAT_ASYNC_EVENT, supported_aens,
			NULL, 0, &result);
	if (status)
		dev_warn(ctrl->device, "Failed to configure AEN (cfg %x)\n",
			 ctrl->oaes & NVME_AEN_SUPPORTED);
			 supported_aens);
}

static int nvme_submit_io(struct nvme_ns *ns, struct nvme_user_io __user *uio)