diff options
author | Jens Axboe <axboe@kernel.dk> | 2023-06-30 14:04:08 -0600 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2023-06-30 14:04:08 -0600 |
commit | 6e34e784e72132c91b03d4f2f85bd4725b1ad9e5 (patch) | |
tree | 322d69c0d212c62d88a5c817ef8968a9c1cfe81f /drivers/nvme/host/pci.c | |
parent | a587b046ce921cc1805de6f0f000209b3644cadd (diff) | |
parent | 4e69d4dabd2379af57b0b8fb9b0d62c23f9cd3b8 (diff) |
Merge tag 'nvme-6.5-2023-06-30' of git://git.infradead.org/nvme into block-6.5
Pull NVMe fixes from Keith:
"nvme fixes for Linux 6.5
- Reduce spamming kernel logs on repeated controller updates (Breno)
- Improved struct packing (Christophe JAILLET)
- Misspelled command name in error logging (Damien)
- Failover fix for temporary frozen queue (Sagi)
- Reset error handling fixes (Keith)"
* tag 'nvme-6.5-2023-06-30' of git://git.infradead.org/nvme:
nvme: disable controller on reset state failure
nvme: sync timeout work on failed reset
nvme: ensure unquiesce on teardown
nvme-mpath: fix I/O failure with EAGAIN when failing over I/O
nvme: host: fix command name spelling
nvmet: Reorder fields in 'struct nvmet_ns'
nvme: Print capabilities changes just once
Diffstat (limited to 'drivers/nvme/host/pci.c')
-rw-r--r-- | drivers/nvme/host/pci.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c index 48c60f7fda0b..72725729cb6c 100644 --- a/drivers/nvme/host/pci.c +++ b/drivers/nvme/host/pci.c @@ -2690,7 +2690,8 @@ static void nvme_reset_work(struct work_struct *work) if (dev->ctrl.state != NVME_CTRL_RESETTING) { dev_warn(dev->ctrl.device, "ctrl state %d is not RESETTING\n", dev->ctrl.state); - return; + result = -ENODEV; + goto out; } /* @@ -2777,7 +2778,9 @@ static void nvme_reset_work(struct work_struct *work) result); nvme_change_ctrl_state(&dev->ctrl, NVME_CTRL_DELETING); nvme_dev_disable(dev, true); + nvme_sync_queues(&dev->ctrl); nvme_mark_namespaces_dead(&dev->ctrl); + nvme_unquiesce_io_queues(&dev->ctrl); nvme_change_ctrl_state(&dev->ctrl, NVME_CTRL_DEAD); } |