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

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.orgSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent f320ff03
...@@ -881,17 +881,16 @@ static int mei_cl_device_remove(struct device *dev) ...@@ -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_device *cldev = to_mei_cl_device(dev);
struct mei_cl_driver *cldrv = to_mei_cl_driver(dev->driver); struct mei_cl_driver *cldrv = to_mei_cl_driver(dev->driver);
int ret = 0;
if (cldrv->remove) if (cldrv->remove)
ret = cldrv->remove(cldev); cldrv->remove(cldev);
mei_cldev_unregister_callbacks(cldev); mei_cldev_unregister_callbacks(cldev);
mei_cl_bus_module_put(cldev); mei_cl_bus_module_put(cldev);
module_put(THIS_MODULE); module_put(THIS_MODULE);
return ret; return 0;
} }
static ssize_t name_show(struct device *dev, struct device_attribute *a, static ssize_t name_show(struct device *dev, struct device_attribute *a,
......
...@@ -845,16 +845,19 @@ static int mei_hdcp_probe(struct mei_cl_device *cldev, ...@@ -845,16 +845,19 @@ static int mei_hdcp_probe(struct mei_cl_device *cldev,
return ret; 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 = struct i915_hdcp_comp_master *comp_master =
mei_cldev_get_drvdata(cldev); mei_cldev_get_drvdata(cldev);
int ret;
component_master_del(&cldev->dev, &mei_component_master_ops); component_master_del(&cldev->dev, &mei_component_master_ops);
kfree(comp_master); kfree(comp_master);
mei_cldev_set_drvdata(cldev, NULL); 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, \ #define MEI_UUID_HDCP GUID_INIT(0xB638AB7E, 0x94E2, 0x4EA2, 0xA5, \
......
...@@ -44,15 +44,13 @@ static int microread_mei_probe(struct mei_cl_device *cldev, ...@@ -44,15 +44,13 @@ static int microread_mei_probe(struct mei_cl_device *cldev,
return 0; 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); struct nfc_mei_phy *phy = mei_cldev_get_drvdata(cldev);
microread_remove(phy->hdev); microread_remove(phy->hdev);
nfc_mei_phy_free(phy); nfc_mei_phy_free(phy);
return 0;
} }
static struct mei_cl_device_id microread_mei_tbl[] = { static struct mei_cl_device_id microread_mei_tbl[] = {
......
...@@ -42,7 +42,7 @@ static int pn544_mei_probe(struct mei_cl_device *cldev, ...@@ -42,7 +42,7 @@ static int pn544_mei_probe(struct mei_cl_device *cldev,
return 0; 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); struct nfc_mei_phy *phy = mei_cldev_get_drvdata(cldev);
...@@ -51,8 +51,6 @@ static int pn544_mei_remove(struct mei_cl_device *cldev) ...@@ -51,8 +51,6 @@ static int pn544_mei_remove(struct mei_cl_device *cldev)
pn544_hci_remove(phy->hdev); pn544_hci_remove(phy->hdev);
nfc_mei_phy_free(phy); nfc_mei_phy_free(phy);
return 0;
} }
static struct mei_cl_device_id pn544_mei_tbl[] = { static struct mei_cl_device_id pn544_mei_tbl[] = {
......
...@@ -619,7 +619,7 @@ static int mei_wdt_probe(struct mei_cl_device *cldev, ...@@ -619,7 +619,7 @@ static int mei_wdt_probe(struct mei_cl_device *cldev,
return ret; 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); struct mei_wdt *wdt = mei_cldev_get_drvdata(cldev);
...@@ -636,8 +636,6 @@ static int mei_wdt_remove(struct mei_cl_device *cldev) ...@@ -636,8 +636,6 @@ static int mei_wdt_remove(struct mei_cl_device *cldev)
dbgfs_unregister(wdt); dbgfs_unregister(wdt);
kfree(wdt); kfree(wdt);
return 0;
} }
#define MEI_UUID_WD UUID_LE(0x05B79A6F, 0x4628, 0x4D7F, \ #define MEI_UUID_WD UUID_LE(0x05B79A6F, 0x4628, 0x4D7F, \
......
...@@ -68,7 +68,7 @@ struct mei_cl_driver { ...@@ -68,7 +68,7 @@ struct mei_cl_driver {
int (*probe)(struct mei_cl_device *cldev, int (*probe)(struct mei_cl_device *cldev,
const struct mei_cl_device_id *id); const struct mei_cl_device_id *id);
int (*remove)(struct mei_cl_device *cldev); void (*remove)(struct mei_cl_device *cldev);
}; };
int __mei_cldev_driver_register(struct mei_cl_driver *cldrv, int __mei_cldev_driver_register(struct mei_cl_driver *cldrv,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment