Re: [PATCH v2 4/4] bus: Make remove callback return void
From: Uwe Kleine-König <hidden>
Date: 2021-07-06 18:44:00
Also in:
alsa-devel, dmaengine, kvm, linux-acpi, linux-arm-msm, linux-cxl, linux-fpga, linux-hyperv, linux-i2c, linux-i3c, linux-input, linux-media, linux-mips, linux-mmc, linux-pci, linux-remoteproc, linux-scsi, linux-serial, linux-spi, linux-staging, linux-sunxi, linux-usb, linux-wireless, linuxppc-dev, netdev, nvdimm, platform-driver-x86, target-devel, xen-devel
Subsystem:
remote processor messaging (rpmsg) subsystem, the rest · Maintainers:
Bjorn Andersson, Mathieu Poirier, Linus Torvalds
Hello Bjorn,
On Tue, Jul 06, 2021 at 01:08:18PM -0500, Bjorn Andersson wrote:
On Tue 06 Jul 10:48 CDT 2021, Uwe Kleine-K?nig wrote:
quoted
diff --git a/drivers/rpmsg/rpmsg_core.c b/drivers/rpmsg/rpmsg_core.c
index c1404d3dae2c..7f6fac618ab2 100644
--- a/drivers/rpmsg/rpmsg_core.c
+++ b/drivers/rpmsg/rpmsg_core.c
@@ -530,7 +530,7 @@ static int rpmsg_dev_probe(struct device *dev)
return err;
}
-static int rpmsg_dev_remove(struct device *dev)
+static void rpmsg_dev_remove(struct device *dev)
{
struct rpmsg_device *rpdev = to_rpmsg_device(dev);
struct rpmsg_driver *rpdrv = to_rpmsg_driver(rpdev->dev.driver);@@ -546,8 +546,6 @@ static int rpmsg_dev_remove(struct device *dev)
if (rpdev->ept)
rpmsg_destroy_ept(rpdev->ept);
-
- return err;
This leaves err assigned but never used, but I don't mind following up
with a patch cleaning that up after this has landed.
Ah, good catch. If I send out a v3 I will fold the following into this
patch:
diff --git a/drivers/rpmsg/rpmsg_core.c b/drivers/rpmsg/rpmsg_core.c
index 7f6fac618ab2..9151836190ce 100644
--- a/drivers/rpmsg/rpmsg_core.c
+++ b/drivers/rpmsg/rpmsg_core.c
@@ -534,10 +534,9 @@ static void rpmsg_dev_remove(struct device *dev)
{
struct rpmsg_device *rpdev = to_rpmsg_device(dev);
struct rpmsg_driver *rpdrv = to_rpmsg_driver(rpdev->dev.driver);
- int err = 0;
if (rpdev->ops->announce_destroy)
- err = rpdev->ops->announce_destroy(rpdev);
+ rpdev->ops->announce_destroy(rpdev);
if (rpdrv->remove)
rpdrv->remove(rpdev);
Maybe .announce_destroy() should then be changed to return void, too?
Something like:
diff --git a/drivers/rpmsg/rpmsg_internal.h b/drivers/rpmsg/rpmsg_internal.h
index a76c344253bf..d5204756714c 100644
--- a/drivers/rpmsg/rpmsg_internal.h
+++ b/drivers/rpmsg/rpmsg_internal.h
@@ -40,7 +40,7 @@ struct rpmsg_device_ops {
struct rpmsg_channel_info chinfo);
int (*announce_create)(struct rpmsg_device *ept);
- int (*announce_destroy)(struct rpmsg_device *ept);
+ void (*announce_destroy)(struct rpmsg_device *ept);
};
/**diff --git a/drivers/rpmsg/virtio_rpmsg_bus.c b/drivers/rpmsg/virtio_rpmsg_bus.c
index 8e49a3bacfc7..4e05994634f8 100644
--- a/drivers/rpmsg/virtio_rpmsg_bus.c
+++ b/drivers/rpmsg/virtio_rpmsg_bus.c
@@ -340,7 +340,7 @@ static int virtio_rpmsg_announce_create(struct rpmsg_device *rpdev)
return err;
}
-static int virtio_rpmsg_announce_destroy(struct rpmsg_device *rpdev)
+static void virtio_rpmsg_announce_destroy(struct rpmsg_device *rpdev)
{
struct virtio_rpmsg_channel *vch = to_virtio_rpmsg_channel(rpdev);
struct virtproc_info *vrp = vch->vrp;@@ -360,8 +360,6 @@ static int virtio_rpmsg_announce_destroy(struct rpmsg_device *rpdev)
if (err)
dev_err(dev, "failed to announce service %d\n", err);
}
-
- return err;
}
static const struct rpmsg_device_ops virtio_rpmsg_ops = {
though it's not obvious for me that the last hunk is sensible. (OTOH the
return code is ignored anyhow as rpmsg_dev_remove() is the only caller.
Best regards and thanks
Uwe
--
Pengutronix e.K. | Uwe Kleine-König |
Industrial Linux Solutions | https://www.pengutronix.de/ |