|
|
@@ -51,6 +51,7 @@ static struct device_node *find_vio_slot_node(char *drc_name)
|
|
|
if (rc == 0)
|
|
|
break;
|
|
|
}
|
|
|
+ of_node_put(parent);
|
|
|
|
|
|
return dn;
|
|
|
}
|
|
|
@@ -71,6 +72,7 @@ static struct device_node *find_php_slot_pci_node(char *drc_name,
|
|
|
return np;
|
|
|
}
|
|
|
|
|
|
+/* Returns a device_node with its reference count incremented */
|
|
|
static struct device_node *find_dlpar_node(char *drc_name, int *node_type)
|
|
|
{
|
|
|
struct device_node *dn;
|
|
|
@@ -306,6 +308,7 @@ int dlpar_add_slot(char *drc_name)
|
|
|
rc = dlpar_add_phb(drc_name, dn);
|
|
|
break;
|
|
|
}
|
|
|
+ of_node_put(dn);
|
|
|
|
|
|
printk(KERN_INFO "%s: slot %s added\n", DLPAR_MODULE_NAME, drc_name);
|
|
|
exit:
|
|
|
@@ -439,6 +442,7 @@ int dlpar_remove_slot(char *drc_name)
|
|
|
rc = dlpar_remove_pci_slot(drc_name, dn);
|
|
|
break;
|
|
|
}
|
|
|
+ of_node_put(dn);
|
|
|
vm_unmap_aliases();
|
|
|
|
|
|
printk(KERN_INFO "%s: slot %s removed\n", DLPAR_MODULE_NAME, drc_name);
|