summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/dev/nvme/nvme_ctrlr.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/sys/dev/nvme/nvme_ctrlr.c b/sys/dev/nvme/nvme_ctrlr.c
index b27a84e..771c0d1 100644
--- a/sys/dev/nvme/nvme_ctrlr.c
+++ b/sys/dev/nvme/nvme_ctrlr.c
@@ -649,12 +649,12 @@ nvme_ctrlr_async_event_cb(void *arg, const struct nvme_completion *cpl)
{
struct nvme_async_event_request *aer = arg;
- if (cpl->status.sc == NVME_SC_ABORTED_SQ_DELETION) {
+ if (nvme_completion_is_error(cpl)) {
/*
- * This is simulated when controller is being shut down, to
- * effectively abort outstanding asynchronous event requests
- * and make sure all memory is freed. Do not repost the
- * request in this case.
+ * Do not retry failed async event requests. This avoids
+ * infinite loops where a new async event request is submitted
+ * to replace the one just failed, only to fail again and
+ * perpetuate the loop.
*/
return;
}
OpenPOWER on IntegriCloud