Commit bf5c9cc8 authored by Uwe Kleine-König's avatar Uwe Kleine-König Committed by Greg Kroah-Hartman
Browse files

mei: bus: change remove callback to return void



The driver core ignores the return value of mei_cl_device_remove() so
passing an error value doesn't solve any problem. As most mei drivers'
remove callbacks return 0 unconditionally and returning a different value
doesn't have any effect, change this prototype to return void and return 0
unconditionally in mei_cl_device_remove(). The only driver that could
return an error value is modified to emit an explicit warning in the error
case.

Acked-by: default avatarGuenter Roeck <linux@roeck-us.net>
Signed-off-by: default avatarUwe Kleine-König <uwe@kleine-koenig.org>
Link: https://lore.kernel.org/r/20210208073705.428185-3-uwe@kleine-koenig.org


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent f320ff03
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -881,17 +881,16 @@ static int mei_cl_device_remove(struct device *dev)
{
	struct mei_cl_device *cldev = to_mei_cl_device(dev);
	struct mei_cl_driver *cldrv = to_mei_cl_driver(dev->driver);
	int ret = 0;

	if (cldrv->remove)
		ret = cldrv->remove(cldev);
		cldrv->remove(cldev);

	mei_cldev_unregister_callbacks(cldev);

	mei_cl_bus_module_put(cldev);
	module_put(THIS_MODULE);

	return ret;
	return 0;
}

static ssize_t name_show(struct device *dev, struct device_attribute *a,
+5 −2
Original line number Diff line number Diff line
@@ -845,16 +845,19 @@ static int mei_hdcp_probe(struct mei_cl_device *cldev,
	return ret;
}

static int mei_hdcp_remove(struct mei_cl_device *cldev)
static void mei_hdcp_remove(struct mei_cl_device *cldev)
{
	struct i915_hdcp_comp_master *comp_master =
						mei_cldev_get_drvdata(cldev);
	int ret;

	component_master_del(&cldev->dev, &mei_component_master_ops);
	kfree(comp_master);
	mei_cldev_set_drvdata(cldev, NULL);

	return mei_cldev_disable(cldev);
	ret = mei_cldev_disable(cldev);
	if (ret)
		dev_warn(&cldev->dev, "mei_cldev_disable() failed\n");
}

#define MEI_UUID_HDCP GUID_INIT(0xB638AB7E, 0x94E2, 0x4EA2, 0xA5, \
+1 −3
Original line number Diff line number Diff line
@@ -44,15 +44,13 @@ static int microread_mei_probe(struct mei_cl_device *cldev,
	return 0;
}

static int microread_mei_remove(struct mei_cl_device *cldev)
static void microread_mei_remove(struct mei_cl_device *cldev)
{
	struct nfc_mei_phy *phy = mei_cldev_get_drvdata(cldev);

	microread_remove(phy->hdev);

	nfc_mei_phy_free(phy);

	return 0;
}

static struct mei_cl_device_id microread_mei_tbl[] = {
+1 −3
Original line number Diff line number Diff line
@@ -42,7 +42,7 @@ static int pn544_mei_probe(struct mei_cl_device *cldev,
	return 0;
}

static int pn544_mei_remove(struct mei_cl_device *cldev)
static void pn544_mei_remove(struct mei_cl_device *cldev)
{
	struct nfc_mei_phy *phy = mei_cldev_get_drvdata(cldev);

@@ -51,8 +51,6 @@ static int pn544_mei_remove(struct mei_cl_device *cldev)
	pn544_hci_remove(phy->hdev);

	nfc_mei_phy_free(phy);

	return 0;
}

static struct mei_cl_device_id pn544_mei_tbl[] = {
+1 −3
Original line number Diff line number Diff line
@@ -619,7 +619,7 @@ static int mei_wdt_probe(struct mei_cl_device *cldev,
	return ret;
}

static int mei_wdt_remove(struct mei_cl_device *cldev)
static void mei_wdt_remove(struct mei_cl_device *cldev)
{
	struct mei_wdt *wdt = mei_cldev_get_drvdata(cldev);

@@ -636,8 +636,6 @@ static int mei_wdt_remove(struct mei_cl_device *cldev)
	dbgfs_unregister(wdt);

	kfree(wdt);

	return 0;
}

#define MEI_UUID_WD UUID_LE(0x05B79A6F, 0x4628, 0x4D7F, \
Loading