Commit e8c4a765 authored by Bjorn Helgaas's avatar Bjorn Helgaas
Browse files

Merge branch 'pci/hotplug'

- Fix pci_create_slot() reference count leak in failure path (Qiushi Wu)

- Make rpadlpar functions static (Wei Yongjun)

* pci/hotplug:
  PCI: rpadlpar: Make functions static
  PCI: Fix pci_create_slot() reference count leak
parents b0735e8d 2e4770a5
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -352,7 +352,7 @@ static int dlpar_remove_vio_slot(char *drc_name, struct device_node *dn)
 * -ENODEV		Not a valid drc_name
 * -EIO			Internal PCI Error
 */
int dlpar_remove_pci_slot(char *drc_name, struct device_node *dn)
static int dlpar_remove_pci_slot(char *drc_name, struct device_node *dn)
{
	struct pci_bus *bus;
	struct slot *slot;
@@ -458,7 +458,7 @@ static inline int is_dlpar_capable(void)
	return (int) (rc != RTAS_UNKNOWN_SERVICE);
}

int __init rpadlpar_io_init(void)
static int __init rpadlpar_io_init(void)
{

	if (!is_dlpar_capable()) {
@@ -470,7 +470,7 @@ int __init rpadlpar_io_init(void)
	return dlpar_sysfs_init();
}

void rpadlpar_io_exit(void)
static void __exit rpadlpar_io_exit(void)
{
	dlpar_sysfs_exit();
}
+4 −2
Original line number Diff line number Diff line
@@ -268,13 +268,16 @@ struct pci_slot *pci_create_slot(struct pci_bus *parent, int slot_nr,
	slot_name = make_slot_name(name);
	if (!slot_name) {
		err = -ENOMEM;
		kfree(slot);
		goto err;
	}

	err = kobject_init_and_add(&slot->kobj, &pci_slot_ktype, NULL,
				   "%s", slot_name);
	if (err)
	if (err) {
		kobject_put(&slot->kobj);
		goto err;
	}

	INIT_LIST_HEAD(&slot->list);
	list_add(&slot->list, &parent->slots);
@@ -293,7 +296,6 @@ struct pci_slot *pci_create_slot(struct pci_bus *parent, int slot_nr,
	mutex_unlock(&pci_slot_mutex);
	return slot;
err:
	kfree(slot);
	slot = ERR_PTR(err);
	goto out;
}