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

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
...@@ -1060,14 +1060,17 @@ EXPORT_SYMBOL_GPL(nvme_set_queue_count); ...@@ -1060,14 +1060,17 @@ EXPORT_SYMBOL_GPL(nvme_set_queue_count);
static void nvme_enable_aen(struct nvme_ctrl *ctrl) static void nvme_enable_aen(struct nvme_ctrl *ctrl)
{ {
u32 result; u32 result, supported_aens = ctrl->oaes & NVME_AEN_SUPPORTED;
int status; int status;
status = nvme_set_features(ctrl, NVME_FEAT_ASYNC_EVENT, if (!supported_aens)
ctrl->oaes & NVME_AEN_SUPPORTED, NULL, 0, &result); return;
status = nvme_set_features(ctrl, NVME_FEAT_ASYNC_EVENT, supported_aens,
NULL, 0, &result);
if (status) if (status)
dev_warn(ctrl->device, "Failed to configure AEN (cfg %x)\n", 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) static int nvme_submit_io(struct nvme_ns *ns, struct nvme_user_io __user *uio)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment