diff options
| -rw-r--r-- | drivers/pci/pool.c | 6 |
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); |
