summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/pci/pool.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/pci/pool.c b/drivers/pci/pool.c
index da6ac3dc20f7..642e22366653 100644
--- a/drivers/pci/pool.c
+++ b/drivers/pci/pool.c
@@ -139,12 +139,14 @@ pci_pool_create (const char *name, struct pci_dev *pdev,
retval->dev = pdev;
if (pdev) {
+ int do_add;
spin_lock_irqsave (&pools_lock, flags);
+ do_add = list_empty (&pdev->pools);
/* note: not currently insisting "name" be unique */
- if (list_empty (&pdev->pools))
- device_create_file (&pdev->dev, &dev_attr_pools);
list_add (&retval->pools, &pdev->pools);
spin_unlock_irqrestore (&pools_lock, flags);
+ if (do_add)
+ device_create_file (&pdev->dev, &dev_attr_pools);
} else
INIT_LIST_HEAD (&retval->pools);