Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 50ee1061 authored by Rolf Evers-Fischer's avatar Rolf Evers-Fischer Committed by Lorenzo Pieralisi
Browse files

PCI: endpoint: Remove goto labels in pci_epf_create()



Remove the pci_epf_create() goto labels completely and handle the
errors at the respective call site to simplify the function error
handling.

Signed-off-by: default avatarRolf Evers-Fischer <rolf.evers.fischer@aptiv.com>
Signed-off-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
parent 9eef6a5c
Loading
Loading
Loading
Loading
+12 −20
Original line number Diff line number Diff line
@@ -203,16 +203,14 @@ struct pci_epf *pci_epf_create(const char *name)
	int len;

	epf = kzalloc(sizeof(*epf), GFP_KERNEL);
	if (!epf) {
		ret = -ENOMEM;
		goto err_ret;
	}
	if (!epf)
		return ERR_PTR(-ENOMEM);

	len = strchrnul(name, '.') - name;
	epf->name = kstrndup(name, len, GFP_KERNEL);
	if (!epf->name) {
		ret = -ENOMEM;
		goto free_epf;
		kfree(epf);
		return ERR_PTR(-ENOMEM);
	}

	dev = &epf->dev;
@@ -221,24 +219,18 @@ struct pci_epf *pci_epf_create(const char *name)
	dev->type = &pci_epf_type;

	ret = dev_set_name(dev, "%s", name);
	if (ret)
		goto put_dev;
	if (ret) {
		put_device(dev);
		return ERR_PTR(ret);
	}

	ret = device_add(dev);
	if (ret)
		goto put_dev;

	return epf;

put_dev:
	if (ret) {
		put_device(dev);
		return ERR_PTR(ret);
	}

free_epf:
	kfree(epf);

err_ret:
	return ERR_PTR(ret);
	return epf;
}
EXPORT_SYMBOL_GPL(pci_epf_create);