]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/powerpc/platforms/pseries/eeh_cache.c
Merge branch 'for-2.6.25' of git://git.secretlab.ca/git/linux-2.6-mpc52xx into for...
[linux-2.6-omap-h63xx.git] / arch / powerpc / platforms / pseries / eeh_cache.c
index e49c815eae23496a23555187a023432b4a450172..1e83fcd0df312a3a9e41d146566ade3143eafdea 100644 (file)
@@ -225,6 +225,10 @@ void pci_addr_cache_insert_device(struct pci_dev *dev)
 {
        unsigned long flags;
 
+       /* Ignore PCI bridges */
+       if ((dev->class >> 16) == PCI_BASE_CLASS_BRIDGE)
+               return;
+
        spin_lock_irqsave(&pci_io_addr_cache_root.piar_lock, flags);
        __pci_addr_cache_insert_device(dev);
        spin_unlock_irqrestore(&pci_io_addr_cache_root.piar_lock, flags);
@@ -285,16 +289,13 @@ void __init pci_addr_cache_build(void)
        spin_lock_init(&pci_io_addr_cache_root.piar_lock);
 
        while ((dev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) {
-               /* Ignore PCI bridges */
-               if ((dev->class >> 16) == PCI_BASE_CLASS_BRIDGE)
-                       continue;
 
                pci_addr_cache_insert_device(dev);
 
                dn = pci_device_to_OF_node(dev);
                if (!dn)
                        continue;
-               pci_dev_get (dev);  /* matching put is in eeh_remove_device() */
+               pci_dev_get(dev);  /* matching put is in eeh_remove_device() */
                PCI_DN(dn)->pcidev = dev;
 
                eeh_sysfs_add_device(dev);