nvme-core: Use nvme_wq to queue async events and fw activation
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>
This commit is contained in:
parent
8cbd96a628
commit
1a40d97288
1 changed files with 2 additions and 2 deletions
|
@ -2676,7 +2676,7 @@ void nvme_complete_async_event(struct nvme_ctrl *ctrl, __le16 status,
|
|||
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;
|
||||
|
@ -2691,7 +2691,7 @@ void nvme_complete_async_event(struct nvme_ctrl *ctrl, __le16 status,
|
|||
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);
|
||||
|
|
Loading…
Reference in a new issue