Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f0d54a54 authored by Keith Busch's avatar Keith Busch Committed by Bjorn Helgaas
Browse files

NVMe: Implement PCIe reset notification callback



Quiesce and shutdown the device prior to reset, then restart the device and
resume IO after.

Signed-off-by: default avatarKeith Busch <keith.busch@intel.com>
Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
parent 3ebe7f9f
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -2775,6 +2775,16 @@ static int nvme_probe(struct pci_dev *pdev, const struct pci_device_id *id)
	return result;
}

static void nvme_reset_notify(struct pci_dev *pdev, bool prepare)
{
       struct nvme_dev *dev = pci_get_drvdata(pdev);

       if (prepare)
               nvme_dev_shutdown(dev);
       else
               nvme_dev_resume(dev);
}

static void nvme_shutdown(struct pci_dev *pdev)
{
	struct nvme_dev *dev = pci_get_drvdata(pdev);
@@ -2839,6 +2849,7 @@ static const struct pci_error_handlers nvme_err_handler = {
	.link_reset	= nvme_link_reset,
	.slot_reset	= nvme_slot_reset,
	.resume		= nvme_error_resume,
	.reset_notify	= nvme_reset_notify,
};

/* Move to pci_ids.h later */