Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[cascardo/linux.git] / arch / powerpc / kernel / eeh_dev.c
index 7815095..d6b2ca7 100644 (file)
 /**
  * eeh_dev_init - Create EEH device according to OF node
  * @pdn: PCI device node
- * @data: PHB
  *
  * It will create EEH device according to the given OF node. The function
  * might be called by PCI emunation, DR, PHB hotplug.
  */
-void *eeh_dev_init(struct pci_dn *pdn, void *data)
+struct eeh_dev *eeh_dev_init(struct pci_dn *pdn)
 {
-       struct pci_controller *phb = data;
+       struct pci_controller *phb = pdn->phb;
        struct eeh_dev *edev;
 
        /* Allocate EEH device */
@@ -69,7 +68,7 @@ void *eeh_dev_init(struct pci_dn *pdn, void *data)
        INIT_LIST_HEAD(&edev->list);
        INIT_LIST_HEAD(&edev->rmv_list);
 
-       return NULL;
+       return edev;
 }
 
 /**
@@ -81,16 +80,8 @@ void *eeh_dev_init(struct pci_dn *pdn, void *data)
  */
 void eeh_dev_phb_init_dynamic(struct pci_controller *phb)
 {
-       struct pci_dn *root = phb->pci_data;
-
        /* EEH PE for PHB */
        eeh_phb_pe_create(phb);
-
-       /* EEH device for PHB */
-       eeh_dev_init(root, phb);
-
-       /* EEH devices for children OF nodes */
-       traverse_pci_dn(root, eeh_dev_init, phb);
 }
 
 /**
@@ -106,8 +97,6 @@ static int __init eeh_dev_phb_init(void)
        list_for_each_entry_safe(phb, tmp, &hose_list, list_node)
                eeh_dev_phb_init_dynamic(phb);
 
-       pr_info("EEH: devices created\n");
-
        return 0;
 }