OSDN Git Service

NVMe: Enable and disable the PCI device
authorShane Michael Matthews <shane.matthews@intel.com>
Tue, 1 Feb 2011 13:49:30 +0000 (08:49 -0500)
committerMatthew Wilcox <matthew.r.wilcox@intel.com>
Fri, 4 Nov 2011 19:52:53 +0000 (15:52 -0400)
Call pci_enable_device_mem() at initialisation and pci_disable_device
at exit.

Signed-off-by: Shane Michael Matthews <shane.matthews@intel.com>
Signed-off-by: Matthew Wilcox <matthew.r.wilcox@intel.com>
drivers/block/nvme.c

index dc82177..1dda4b5 100644 (file)
@@ -1103,6 +1103,9 @@ static int __devinit nvme_probe(struct pci_dev *pdev,
        if (!dev->queues)
                goto free;
 
+       if (pci_enable_device_mem(pdev))
+               goto free;
+
        INIT_LIST_HEAD(&dev->namespaces);
        dev->pci_dev = pdev;
        pci_set_drvdata(pdev, dev);
@@ -1133,6 +1136,7 @@ static int __devinit nvme_probe(struct pci_dev *pdev,
  disable:
        pci_disable_msix(pdev);
        nvme_release_instance(dev);
+       pci_disable_device(pdev);
  free:
        kfree(dev->queues);
        kfree(dev->entry);
@@ -1147,6 +1151,7 @@ static void __devexit nvme_remove(struct pci_dev *pdev)
        pci_disable_msix(pdev);
        iounmap(dev->bar);
        nvme_release_instance(dev);
+       pci_disable_device(pdev);
        kfree(dev->queues);
        kfree(dev->entry);
        kfree(dev);