diff options
| author | Jakub Kicinski <kuba@kernel.org> | 2022-02-10 17:29:56 -0800 |
|---|---|---|
| committer | Jakub Kicinski <kuba@kernel.org> | 2022-02-10 17:29:56 -0800 |
| commit | 5b91c5cc0e7be4e41567cb2a6e21a8bb682c7cc5 (patch) | |
| tree | ed284edec0db783dfa80366ae8df078b02f35be9 /drivers/nvme/host/core.c | |
| parent | 4f5e483b8c7a644733db941a1ae00173baa7b463 (diff) | |
| parent | f1baf68e1383f6ed93eb9cff2866d46562607a43 (diff) | |
| download | linux-5b91c5cc0e7be4e41567cb2a6e21a8bb682c7cc5.tar.gz linux-5b91c5cc0e7be4e41567cb2a6e21a8bb682c7cc5.tar.bz2 linux-5b91c5cc0e7be4e41567cb2a6e21a8bb682c7cc5.zip | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
No conflicts.
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers/nvme/host/core.c')
| -rw-r--r-- | drivers/nvme/host/core.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index 5e0bfda04bd7..961a5f8a44d2 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -4253,7 +4253,14 @@ static void nvme_async_event_work(struct work_struct *work) container_of(work, struct nvme_ctrl, async_event_work); nvme_aen_uevent(ctrl); - ctrl->ops->submit_async_event(ctrl); + + /* + * The transport drivers must guarantee AER submission here is safe by + * flushing ctrl async_event_work after changing the controller state + * from LIVE and before freeing the admin queue. + */ + if (ctrl->state == NVME_CTRL_LIVE) + ctrl->ops->submit_async_event(ctrl); } static bool nvme_ctrl_pp_status(struct nvme_ctrl *ctrl) |
