mirror of
https://github.com/torvalds/linux.git
synced 2024-11-14 16:12:02 +00:00
NVMe: Skip orderly shutdown on failed devices
Rather than skipping shutdown only for devices that have been removed, skip the orderly shutdown on failed devices to avoid the long timeout handling that inevitably happens when deleting queues on such a device. Signed-off-by: Keith Busch <keith.busch@intel.com> Signed-off-by: Matthew Wilcox <matthew.r.wilcox@intel.com> Signed-off-by: Jens Axboe <axboe@fb.com>
This commit is contained in:
parent
a67394790a
commit
7c1b245038
@ -2567,11 +2567,14 @@ static void nvme_dev_list_remove(struct nvme_dev *dev)
|
||||
static void nvme_dev_shutdown(struct nvme_dev *dev)
|
||||
{
|
||||
int i;
|
||||
u32 csts = -1;
|
||||
|
||||
dev->initialized = 0;
|
||||
nvme_dev_list_remove(dev);
|
||||
|
||||
if (!dev->bar || (dev->bar && readl(&dev->bar->csts) == -1)) {
|
||||
if (dev->bar)
|
||||
csts = readl(&dev->bar->csts);
|
||||
if (csts & NVME_CSTS_CFS || !(csts & NVME_CSTS_RDY)) {
|
||||
for (i = dev->queue_count - 1; i >= 0; i--) {
|
||||
struct nvme_queue *nvmeq = raw_nvmeq(dev, i);
|
||||
nvme_suspend_queue(nvmeq);
|
||||
|
Loading…
Reference in New Issue
Block a user