Re: [PATCH v2 4/4] bus: Make remove callback return void

From: Benjamin Tissoires
Date: Wed Jul 07 2021 - 10:25:37 EST


On 7/6/21 5:48 PM, Uwe Kleine-König wrote:
The driver core ignores the return value of this callback because there
is only little it can do when a device disappears.

This is the final bit of a long lasting cleanup quest where several
buses were converted to also return void from their remove callback.
Additionally some resource leaks were fixed that were caused by drivers
returning an error code in the expectation that the driver won't go
away.

With struct bus_type::remove returning void it's prevented that newly
implemented buses return an ignored error code and so don't anticipate
wrong expectations for driver authors.

Acked-by: Russell King (Oracle) <rmk+kernel@xxxxxxxxxxxxxxx> (For ARM, Amba and related parts)
Acked-by: Mark Brown <broonie@xxxxxxxxxx>
Acked-by: Chen-Yu Tsai <wens@xxxxxxxx> (for drivers/bus/sunxi-rsb.c)
Acked-by: Pali Rohár <pali@xxxxxxxxxx>
Acked-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxx> (for drivers/media)
Acked-by: Hans de Goede <hdegoede@xxxxxxxxxx> (For drivers/platform)
Acked-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxx>
Acked-By: Vinod Koul <vkoul@xxxxxxxxxx>
Acked-by: Juergen Gross <jgross@xxxxxxxx> (For Xen)
Acked-by: Lee Jones <lee.jones@xxxxxxxxxx> (For drivers/mfd)
Acked-by: Johannes Thumshirn <jth@xxxxxxxxxx> (For drivers/mcb)
Acked-by: Johan Hovold <johan@xxxxxxxxxx>
Acked-by: Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxx> (For drivers/slimbus)
Acked-by: Kirti Wankhede <kwankhede@xxxxxxxxxx> (For drivers/vfio)
Acked-by: Maximilian Luz <luzmaximilian@xxxxxxxxx>
Acked-by: Heikki Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx> (For ulpi and typec)
Acked-by: Samuel Iglesias Gonsálvez <siglesias@xxxxxxxxxx> (For ipack)
Reviewed-by: Tom Rix <trix@xxxxxxxxxx> (For fpga)
Acked-by: Geoff Levand <geoff@xxxxxxxxxxxxx> (For ps3)
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
---


[...]

drivers/hid/hid-core.c | 4 +---
drivers/hid/intel-ish-hid/ishtp/bus.c | 4 +---

[...]

diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index 7db332139f7d..dbed2524fd47 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -2302,7 +2302,7 @@ static int hid_device_probe(struct device *dev)
return ret;
}
-static int hid_device_remove(struct device *dev)
+static void hid_device_remove(struct device *dev)
{
struct hid_device *hdev = to_hid_device(dev);
struct hid_driver *hdrv;
@@ -2322,8 +2322,6 @@ static int hid_device_remove(struct device *dev)
if (!hdev->io_started)
up(&hdev->driver_input_lock);
-
- return 0;
}
static ssize_t modalias_show(struct device *dev, struct device_attribute *a,
diff --git a/drivers/hid/intel-ish-hid/ishtp/bus.c b/drivers/hid/intel-ish-hid/ishtp/bus.c
index f0802b047ed8..8a51bd9cd093 100644
--- a/drivers/hid/intel-ish-hid/ishtp/bus.c
+++ b/drivers/hid/intel-ish-hid/ishtp/bus.c
@@ -255,7 +255,7 @@ static int ishtp_cl_bus_match(struct device *dev, struct device_driver *drv)
*
* Return: Return value from driver remove() call.
*/
-static int ishtp_cl_device_remove(struct device *dev)
+static void ishtp_cl_device_remove(struct device *dev)
{
struct ishtp_cl_device *device = to_ishtp_cl_device(dev);
struct ishtp_cl_driver *driver = to_ishtp_cl_driver(dev->driver);
@@ -267,8 +267,6 @@ static int ishtp_cl_device_remove(struct device *dev)
if (driver->remove)
driver->remove(device);
-
- return 0;
}
/**

For the HID part:

Acked-by: Benjamin Tissoires <benjamin.tissoires@xxxxxxxxxx>

Cheers,
Benjamin