Commit 7360d55b authored by Georgi Djakov's avatar Georgi Djakov
Browse files

Merge branch 'icc-ignore-return-val' into icc-next

Today remove callbacks of platform devices return an int. This is unfortunate
because the device core ignores the return value and so the platform code only
emits a warning (and still removes the device).

The longterm quest is to make these remove callbacks return void instead.
This series is a preparation for that, with the goal to make the remove
callbacks obviously always return 0. This way when the prototype of
these functions is changed to return void, the change is straight
forward and easy to review.

Link: https://lore.kernel.org/r/20220718121409.171773-1-u.kleine-koenig@pengutronix.de


Signed-off-by: default avatarGeorgi Djakov <djakov@kernel.org>
parents 7aa429e8 f62e3f59
Loading
Loading
Loading
Loading
+3 −7
Original line number Diff line number Diff line
@@ -1057,29 +1057,25 @@ EXPORT_SYMBOL_GPL(icc_provider_add);
/**
 * icc_provider_del() - delete previously added interconnect provider
 * @provider: the interconnect provider that will be removed from topology
 *
 * Return: 0 on success, or an error code otherwise
 */
int icc_provider_del(struct icc_provider *provider)
void icc_provider_del(struct icc_provider *provider)
{
	mutex_lock(&icc_lock);
	if (provider->users) {
		pr_warn("interconnect provider still has %d users\n",
			provider->users);
		mutex_unlock(&icc_lock);
		return -EBUSY;
		return;
	}

	if (!list_empty(&provider->nodes)) {
		pr_warn("interconnect provider still has nodes\n");
		mutex_unlock(&icc_lock);
		return -EBUSY;
		return;
	}

	list_del(&provider->provider_list);
	mutex_unlock(&icc_lock);

	return 0;
}
EXPORT_SYMBOL_GPL(icc_provider_del);

+2 −2
Original line number Diff line number Diff line
@@ -324,13 +324,13 @@ int imx_icc_register(struct platform_device *pdev,
}
EXPORT_SYMBOL_GPL(imx_icc_register);

int imx_icc_unregister(struct platform_device *pdev)
void imx_icc_unregister(struct platform_device *pdev)
{
	struct imx_icc_provider *imx_provider = platform_get_drvdata(pdev);

	imx_icc_unregister_nodes(&imx_provider->provider);

	return icc_provider_del(&imx_provider->provider);
	icc_provider_del(&imx_provider->provider);
}
EXPORT_SYMBOL_GPL(imx_icc_unregister);

+1 −1
Original line number Diff line number Diff line
@@ -103,6 +103,6 @@ int imx_icc_register(struct platform_device *pdev,
		     struct imx_icc_node_desc *nodes,
		     int nodes_count,
		     struct imx_icc_noc_setting *noc_settings);
int imx_icc_unregister(struct platform_device *pdev);
void imx_icc_unregister(struct platform_device *pdev);

#endif /* __DRIVERS_INTERCONNECT_IMX_H */
+3 −1
Original line number Diff line number Diff line
@@ -88,7 +88,9 @@ static int imx8mm_icc_probe(struct platform_device *pdev)

static int imx8mm_icc_remove(struct platform_device *pdev)
{
	return imx_icc_unregister(pdev);
	imx_icc_unregister(pdev);

	return 0;
}

static struct platform_driver imx8mm_icc_driver = {
+3 −1
Original line number Diff line number Diff line
@@ -77,7 +77,9 @@ static int imx8mn_icc_probe(struct platform_device *pdev)

static int imx8mn_icc_remove(struct platform_device *pdev)
{
	return imx_icc_unregister(pdev);
	imx_icc_unregister(pdev);

	return 0;
}

static struct platform_driver imx8mn_icc_driver = {
Loading