浏览代码

pci: allow multiple calls to pcim_enable_device()

There's no reason not to allow multiple calls to pcim_enable_device().
Calls after the first one can simply be noop.  All PCI resources will
be released when the initial pcim_enable_device() resource is
released.

This allows more flexibility to managed PCI users.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Tejun Heo 17 年之前
父节点
当前提交
b95d58eaf2
共有 1 个文件被更改,包括 2 次插入1 次删除
  1. 2 1
      drivers/pci/pci.c

+ 2 - 1
drivers/pci/pci.c

@@ -823,7 +823,8 @@ int pcim_enable_device(struct pci_dev *pdev)
 	dr = get_pci_dr(pdev);
 	dr = get_pci_dr(pdev);
 	if (unlikely(!dr))
 	if (unlikely(!dr))
 		return -ENOMEM;
 		return -ENOMEM;
-	WARN_ON(!!dr->enabled);
+	if (dr->enabled)
+		return 0;
 
 
 	rc = pci_enable_device(pdev);
 	rc = pci_enable_device(pdev);
 	if (!rc) {
 	if (!rc) {