]> nv-tegra.nvidia Code Review - linux-2.6.git/blobdiff - drivers/pci/hotplug/rpadlpar_core.c
[PATCH] PCI Hotplug: rpaphp: Export slot enable
[linux-2.6.git] / drivers / pci / hotplug / rpadlpar_core.c
index 2ee7eb513e6c8633315c979075e3a916bcc8f48e..f2a73f70e58c416bee4b4a72ca050246433d8ec5 100644 (file)
@@ -209,9 +209,10 @@ static struct pci_dev *dlpar_pci_add_bus(struct device_node *dn)
        return dev;
 }
 
-static inline int dlpar_add_pci_slot(char *drc_name, struct device_node *dn)
+static int dlpar_add_pci_slot(char *drc_name, struct device_node *dn)
 {
        struct pci_dev *dev;
+       int rc;
 
        /* Add pci bus */
        dev = dlpar_pci_add_bus(dn);
@@ -221,6 +222,15 @@ static inline int dlpar_add_pci_slot(char *drc_name, struct device_node *dn)
                return -EIO;
        }
 
+       if (dn->child) {
+               rc = rpaphp_config_pci_adapter(dev->subordinate);
+               if (rc < 0) {
+                       printk(KERN_ERR "%s: unable to enable slot %s\n",
+                               __FUNCTION__, drc_name);
+                       return -EIO;
+               }
+       }
+
        /* Add hotplug slot */
        if (rpaphp_add_slot(dn)) {
                printk(KERN_ERR "%s: unable to add hotplug slot %s\n",