diff mbox series

hw/nvme: clear masked events from the aer queue

Message ID 20240905235859.3416741-1-arun.kka@samsung.com (mailing list archive)
State New
Headers show
Series hw/nvme: clear masked events from the aer queue | expand

Commit Message

Arun Kumar Sept. 5, 2024, 11:58 p.m. UTC
clear masked events from the aer queue when get log page is issued with
rae=0 without checking for the presence of outstanding aer requests

Signed-off-by: Arun Kumar <arun.kka@samsung.com>
---
 hw/nvme/ctrl.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/hw/nvme/ctrl.c b/hw/nvme/ctrl.c
index 127c3d2383..85039779da 100644
--- a/hw/nvme/ctrl.c
+++ b/hw/nvme/ctrl.c
@@ -1649,9 +1649,16 @@  static void nvme_smart_event(NvmeCtrl *n, uint8_t event)
 
 static void nvme_clear_events(NvmeCtrl *n, uint8_t event_type)
 {
+    NvmeAsyncEvent *event, *next;
     n->aer_mask &= ~(1 << event_type);
     if (!QTAILQ_EMPTY(&n->aer_queue)) {
-        nvme_process_aers(n);
+        QTAILQ_FOREACH_SAFE(event, &n->aer_queue, entry, next) {
+            if (event->result.event_type == event_type) {
+                QTAILQ_REMOVE(&n->aer_queue, event, entry);
+                n->aer_queued--;
+                g_free(event);
+            }
+        }
     }
 }