async_event_work might race as it is executed from two different
workqueues at the moment.
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
        case NVME_SC_ABORT_REQ:
                ++ctrl->event_limit;
                if (ctrl->state == NVME_CTRL_LIVE)
-                       schedule_work(&ctrl->async_event_work);
+                       queue_work(nvme_wq, &ctrl->async_event_work);
                break;
        default:
                break;
                nvme_queue_scan(ctrl);
                break;
        case NVME_AER_NOTICE_FW_ACT_STARTING:
-               schedule_work(&ctrl->fw_act_work);
+               queue_work(nvme_wq, &ctrl->fw_act_work);
                break;
        default:
                dev_warn(ctrl->device, "async event result %08x\n", result);