Re: [PATCH] bus: Make remove callback return void
Uwe Kleine-König writes: > 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. > > Signed-off-by: Uwe Kleine-König FWIW, the intel_th bit is Acked-by: Alexander Shishkin
Re: [PATCH] bus: Make remove callback return void
On Tue, 6 Jul 2021 at 03:56, 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. > > Signed-off-by: Uwe Kleine-König > --- > Hello, > > this patch depends on "PCI: endpoint: Make struct pci_epf_driver::remove > return void" that is not yet applied, see > https://lore.kernel.org/r/20210223090757.57604-1-u.kleine-koe...@pengutronix.de. > > I tested it using allmodconfig on amd64 and arm, but I wouldn't be > surprised if I still missed to convert a driver. So it would be great to > get this into next early after the merge window closes. > > I send this mail to all people that get_maintainer.pl emits for this > patch. I wonder how many recipents will refuse this mail because of the > long Cc: list :-) > > Best regards > Uwe > > arch/arm/common/locomo.c | 3 +-- > arch/arm/common/sa.c | 4 +--- > arch/arm/mach-rpc/ecard.c | 4 +--- > arch/mips/sgi-ip22/ip22-gio.c | 3 +-- > arch/parisc/kernel/drivers.c | 5 ++--- > arch/powerpc/platforms/ps3/system-bus.c | 3 +-- > arch/powerpc/platforms/pseries/ibmebus.c | 3 +-- > arch/powerpc/platforms/pseries/vio.c | 3 +-- > drivers/acpi/bus.c| 3 +-- > drivers/amba/bus.c| 4 +--- > drivers/base/auxiliary.c | 4 +--- > drivers/base/isa.c| 4 +--- > drivers/base/platform.c | 4 +--- > drivers/bcma/main.c | 6 ++ > drivers/bus/sunxi-rsb.c | 4 +--- > drivers/cxl/core.c| 3 +-- > drivers/dax/bus.c | 4 +--- > drivers/dma/idxd/sysfs.c | 4 +--- > drivers/firewire/core-device.c| 4 +--- > drivers/firmware/arm_scmi/bus.c | 4 +--- > drivers/firmware/google/coreboot_table.c | 4 +--- > drivers/fpga/dfl.c| 4 +--- > drivers/hid/hid-core.c| 4 +--- > drivers/hid/intel-ish-hid/ishtp/bus.c | 4 +--- > drivers/hv/vmbus_drv.c| 5 + > drivers/hwtracing/intel_th/core.c | 4 +--- > drivers/i2c/i2c-core-base.c | 5 + > drivers/i3c/master.c | 4 +--- > drivers/input/gameport/gameport.c | 3 +-- > drivers/input/serio/serio.c | 3 +-- > drivers/ipack/ipack.c | 4 +--- > drivers/macintosh/macio_asic.c| 4 +--- > drivers/mcb/mcb-core.c| 4 +--- > drivers/media/pci/bt8xx/bttv-gpio.c | 3 +-- > drivers/memstick/core/memstick.c | 3 +-- > drivers/mfd/mcp-core.c| 3 +-- > drivers/misc/mei/bus.c| 4 +--- > drivers/misc/tifm_core.c | 3 +-- > drivers/mmc/core/bus.c| 4 +--- > drivers/mmc/core/sdio_bus.c | 4 +--- > drivers/net/netdevsim/bus.c | 3 +-- > drivers/ntb/core.c| 4 +--- > drivers/ntb/ntb_transport.c | 4 +--- > drivers/nvdimm/bus.c | 3 +-- > drivers/pci/endpoint/pci-epf-core.c | 4 +--- > drivers/pci/pci-driver.c | 3 +-- > drivers/pcmcia/ds.c | 4 +--- > drivers/platform/surface/aggregator/bus.c | 4 +--- > drivers/platform/x86/wmi.c| 4 +--- > drivers/pnp/driver.c | 3 +-- > drivers/rapidio/rio-driver.c | 4 +--- > drivers/rpmsg/rpmsg_core.c| 4 +--- Reviewed-by: Mathieu Poirier
Re: [PATCH] bus: Make remove callback return void
On Tue, Jul 6, 2021 at 12:50 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. > > Signed-off-by: Uwe Kleine-König > --- > > drivers/thunderbolt/domain.c | 4 +--- For Thunderbolt: Acked-by: Yehezkel Bernat
Re: [PATCH] bus: Make remove callback return void
On 7/6/21 2:50 AM, Uwe Kleine-König wrote: > --- a/arch/powerpc/platforms/ps3/system-bus.c > +++ b/arch/powerpc/platforms/ps3/system-bus.c > @@ -381,7 +381,7 @@ static int ps3_system_bus_probe(struct device *_dev) > return result; > } > > -static int ps3_system_bus_remove(struct device *_dev) > +static void ps3_system_bus_remove(struct device *_dev) > { > struct ps3_system_bus_device *dev = ps3_dev_to_system_bus_dev(_dev); > struct ps3_system_bus_driver *drv; > @@ -399,7 +399,6 @@ static int ps3_system_bus_remove(struct device *_dev) > __func__, __LINE__, drv->core.name); > > pr_debug(" <- %s:%d: %s\n", __func__, __LINE__, dev_name(>core)); > - return 0; > } PS3 part looks fine. Acked-by: Geoff Levand
Re: [PATCH] bus: Make remove callback return void
On 06.07.21 11:50, 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. Signed-off-by: Uwe Kleine-König Xen-bits: Acked-by: Juergen Gross Juergen OpenPGP_0xB0DE9DD628BF132F.asc Description: OpenPGP public key OpenPGP_signature Description: OpenPGP digital signature
Re: [PATCH] bus: Make remove callback return void
On Tue, Jul 06, 2021 at 01:17:37PM +0200, Cornelia Huck wrote: > On Tue, Jul 06 2021, Cornelia Huck wrote: > > > On Tue, Jul 06 2021, 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. > > > > Yay! > > > >> > >> Signed-off-by: Uwe Kleine-König > >> --- > >> Hello, > >> > >> this patch depends on "PCI: endpoint: Make struct pci_epf_driver::remove > >> return void" that is not yet applied, see > >> https://lore.kernel.org/r/20210223090757.57604-1-u.kleine-koe...@pengutronix.de. > >> > >> I tested it using allmodconfig on amd64 and arm, but I wouldn't be > >> surprised if I still missed to convert a driver. So it would be great to > >> get this into next early after the merge window closes. > > > > I'm afraid you missed the s390-specific busses in drivers/s390/cio/ > > (css/ccw/ccwgroup). :-\ > The change for vfio/mdev looks good. > > The following should do the trick for s390; not sure if other > architectures have easy-to-miss busses as well. > > diff --git a/drivers/s390/cio/ccwgroup.c b/drivers/s390/cio/ccwgroup.c > index 9748165e08e9..a66f416138ab 100644 > --- a/drivers/s390/cio/ccwgroup.c > +++ b/drivers/s390/cio/ccwgroup.c > @@ -439,17 +439,15 @@ module_exit(cleanup_ccwgroup); > > /** driver stuff **/ > > -static int ccwgroup_remove(struct device *dev) > +static void ccwgroup_remove(struct device *dev) > { > struct ccwgroup_device *gdev = to_ccwgroupdev(dev); > struct ccwgroup_driver *gdrv = to_ccwgroupdrv(dev->driver); > > if (!dev->driver) > - return 0; > + return; This is fine to be squashed into my patch. In the long run: in a remove callback dev->driver cannot be NULL, so this if could go away. > if (gdrv->remove) > gdrv->remove(gdev); > - > - return 0; > } > > static void ccwgroup_shutdown(struct device *dev) > diff --git a/drivers/s390/cio/css.c b/drivers/s390/cio/css.c > index a974943c27da..ebc321edba51 100644 > --- a/drivers/s390/cio/css.c > +++ b/drivers/s390/cio/css.c > @@ -1371,15 +1371,14 @@ static int css_probe(struct device *dev) > return ret; > } > > -static int css_remove(struct device *dev) > +static void css_remove(struct device *dev) > { > struct subchannel *sch; > - int ret; > > sch = to_subchannel(dev); > - ret = sch->driver->remove ? sch->driver->remove(sch) : 0; > + if (sch->driver->remove) > + sch->driver->remove(sch); Maybe the return type for this function pointer can be changed to void, too. I will add these changes to a v2 that I plan to send out after the dust settles some more. Thanks Uwe -- Pengutronix e.K. | Uwe Kleine-König| Industrial Linux Solutions | https://www.pengutronix.de/ | signature.asc Description: PGP signature
Re: [PATCH] bus: Make remove callback return void
On Tue, Jul 06, 2021 at 11:50:37AM +0200, 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. > > Signed-off-by: Uwe Kleine-König For ulpi and typec: Acked-by: Heikki Krogerus thanks, -- heikki
Re: [PATCH] bus: Make remove callback return void
On 7/6/21 11:50 AM, 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. Signed-off-by: Uwe Kleine-König drivers/platform/surface/aggregator/bus.c | 4 +--- Acked-by: Maximilian Luz
Re: [PATCH] bus: Make remove callback return void
On Tue, Jul 06 2021, Cornelia Huck wrote: > On Tue, Jul 06 2021, 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. > > Yay! > >> >> Signed-off-by: Uwe Kleine-König >> --- >> Hello, >> >> this patch depends on "PCI: endpoint: Make struct pci_epf_driver::remove >> return void" that is not yet applied, see >> https://lore.kernel.org/r/20210223090757.57604-1-u.kleine-koe...@pengutronix.de. >> >> I tested it using allmodconfig on amd64 and arm, but I wouldn't be >> surprised if I still missed to convert a driver. So it would be great to >> get this into next early after the merge window closes. > > I'm afraid you missed the s390-specific busses in drivers/s390/cio/ > (css/ccw/ccwgroup). The change for vfio/mdev looks good. The following should do the trick for s390; not sure if other architectures have easy-to-miss busses as well. diff --git a/drivers/s390/cio/ccwgroup.c b/drivers/s390/cio/ccwgroup.c index 9748165e08e9..a66f416138ab 100644 --- a/drivers/s390/cio/ccwgroup.c +++ b/drivers/s390/cio/ccwgroup.c @@ -439,17 +439,15 @@ module_exit(cleanup_ccwgroup); /** driver stuff **/ -static int ccwgroup_remove(struct device *dev) +static void ccwgroup_remove(struct device *dev) { struct ccwgroup_device *gdev = to_ccwgroupdev(dev); struct ccwgroup_driver *gdrv = to_ccwgroupdrv(dev->driver); if (!dev->driver) - return 0; + return; if (gdrv->remove) gdrv->remove(gdev); - - return 0; } static void ccwgroup_shutdown(struct device *dev) diff --git a/drivers/s390/cio/css.c b/drivers/s390/cio/css.c index a974943c27da..ebc321edba51 100644 --- a/drivers/s390/cio/css.c +++ b/drivers/s390/cio/css.c @@ -1371,15 +1371,14 @@ static int css_probe(struct device *dev) return ret; } -static int css_remove(struct device *dev) +static void css_remove(struct device *dev) { struct subchannel *sch; - int ret; sch = to_subchannel(dev); - ret = sch->driver->remove ? sch->driver->remove(sch) : 0; + if (sch->driver->remove) + sch->driver->remove(sch); sch->driver = NULL; - return ret; } static void css_shutdown(struct device *dev) diff --git a/drivers/s390/cio/device.c b/drivers/s390/cio/device.c index 84f659cafe76..61d5d55bd9c8 100644 --- a/drivers/s390/cio/device.c +++ b/drivers/s390/cio/device.c @@ -1742,7 +1742,7 @@ ccw_device_probe (struct device *dev) return 0; } -static int ccw_device_remove(struct device *dev) +static void ccw_device_remove(struct device *dev) { struct ccw_device *cdev = to_ccwdev(dev); struct ccw_driver *cdrv = cdev->drv; @@ -1776,8 +1776,6 @@ static int ccw_device_remove(struct device *dev) spin_unlock_irq(cdev->ccwlock); io_subchannel_quiesce(sch); __disable_cmf(cdev); - - return 0; } static void ccw_device_shutdown(struct device *dev) diff --git a/drivers/s390/cio/scm.c b/drivers/s390/cio/scm.c index 9f26d4310bb3..b6b4589c70bd 100644 --- a/drivers/s390/cio/scm.c +++ b/drivers/s390/cio/scm.c @@ -28,12 +28,13 @@ static int scmdev_probe(struct device *dev) return scmdrv->probe ? scmdrv->probe(scmdev) : -ENODEV; } -static int scmdev_remove(struct device *dev) +static void scmdev_remove(struct device *dev) { struct scm_device *scmdev = to_scm_dev(dev); struct scm_driver *scmdrv = to_scm_drv(dev->driver); - return scmdrv->remove ? scmdrv->remove(scmdev) : -ENODEV; + if (scmdrv->remove) + scmdrv->remove(scmdev); } static int scmdev_uevent(struct device *dev, struct kobj_uevent_env *env) diff --git a/drivers/s390/crypto/ap_bus.c b/drivers/s390/crypto/ap_bus.c index d2560186d771..8a0d37c0e2a5 100644 --- a/drivers/s390/crypto/ap_bus.c +++ b/drivers/s390/crypto/ap_bus.c @@ -884,7 +884,7 @@ static int ap_device_probe(struct device *dev) return rc; } -static int ap_device_remove(struct device *dev) +static void ap_device_remove(struct device *dev) { struct ap_device *ap_dev = to_ap_dev(dev); struct ap_driver *ap_drv = ap_dev->drv; @@ -909,8 +909,6 @@ static int ap_device_remove(struct device *dev) ap_dev->drv = NULL; put_device(dev); - - return 0; } struct ap_queue *ap_get_qdev(ap_qid_t qid)
Re: [PATCH] bus: Make remove callback return void
On 7/6/2021 3:20 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. Signed-off-by: Uwe Kleine-König drivers/vfio/mdev/mdev_driver.c | 4 +--- Acked-by: Kirti Wankhede
Re: [PATCH] bus: Make remove callback return void
On 06/07/2021 11:50:37+0200, 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. > > Signed-off-by: Uwe Kleine-König Acked-by: Alexandre Belloni > --- > Hello, > > this patch depends on "PCI: endpoint: Make struct pci_epf_driver::remove > return void" that is not yet applied, see > https://lore.kernel.org/r/20210223090757.57604-1-u.kleine-koe...@pengutronix.de. > > I tested it using allmodconfig on amd64 and arm, but I wouldn't be > surprised if I still missed to convert a driver. So it would be great to > get this into next early after the merge window closes. > > I send this mail to all people that get_maintainer.pl emits for this > patch. I wonder how many recipents will refuse this mail because of the > long Cc: list :-) > > Best regards > Uwe > > arch/arm/common/locomo.c | 3 +-- > arch/arm/common/sa.c | 4 +--- > arch/arm/mach-rpc/ecard.c | 4 +--- > arch/mips/sgi-ip22/ip22-gio.c | 3 +-- > arch/parisc/kernel/drivers.c | 5 ++--- > arch/powerpc/platforms/ps3/system-bus.c | 3 +-- > arch/powerpc/platforms/pseries/ibmebus.c | 3 +-- > arch/powerpc/platforms/pseries/vio.c | 3 +-- > drivers/acpi/bus.c| 3 +-- > drivers/amba/bus.c| 4 +--- > drivers/base/auxiliary.c | 4 +--- > drivers/base/isa.c| 4 +--- > drivers/base/platform.c | 4 +--- > drivers/bcma/main.c | 6 ++ > drivers/bus/sunxi-rsb.c | 4 +--- > drivers/cxl/core.c| 3 +-- > drivers/dax/bus.c | 4 +--- > drivers/dma/idxd/sysfs.c | 4 +--- > drivers/firewire/core-device.c| 4 +--- > drivers/firmware/arm_scmi/bus.c | 4 +--- > drivers/firmware/google/coreboot_table.c | 4 +--- > drivers/fpga/dfl.c| 4 +--- > drivers/hid/hid-core.c| 4 +--- > drivers/hid/intel-ish-hid/ishtp/bus.c | 4 +--- > drivers/hv/vmbus_drv.c| 5 + > drivers/hwtracing/intel_th/core.c | 4 +--- > drivers/i2c/i2c-core-base.c | 5 + > drivers/i3c/master.c | 4 +--- > drivers/input/gameport/gameport.c | 3 +-- > drivers/input/serio/serio.c | 3 +-- > drivers/ipack/ipack.c | 4 +--- > drivers/macintosh/macio_asic.c| 4 +--- > drivers/mcb/mcb-core.c| 4 +--- > drivers/media/pci/bt8xx/bttv-gpio.c | 3 +-- > drivers/memstick/core/memstick.c | 3 +-- > drivers/mfd/mcp-core.c| 3 +-- > drivers/misc/mei/bus.c| 4 +--- > drivers/misc/tifm_core.c | 3 +-- > drivers/mmc/core/bus.c| 4 +--- > drivers/mmc/core/sdio_bus.c | 4 +--- > drivers/net/netdevsim/bus.c | 3 +-- > drivers/ntb/core.c| 4 +--- > drivers/ntb/ntb_transport.c | 4 +--- > drivers/nvdimm/bus.c | 3 +-- > drivers/pci/endpoint/pci-epf-core.c | 4 +--- > drivers/pci/pci-driver.c | 3 +-- > drivers/pcmcia/ds.c | 4 +--- > drivers/platform/surface/aggregator/bus.c | 4 +--- > drivers/platform/x86/wmi.c| 4 +--- > drivers/pnp/driver.c | 3 +-- > drivers/rapidio/rio-driver.c | 4 +--- > drivers/rpmsg/rpmsg_core.c| 4 +--- > drivers/scsi/scsi_debug.c | 3 +-- > drivers/siox/siox-core.c | 4 +--- > drivers/slimbus/core.c| 4 +--- > drivers/soc/qcom/apr.c| 4 +--- > drivers/spi/spi.c | 4 +--- > drivers/spmi/spmi.c | 3 +-- > drivers/ssb/main.c| 4 +--- > drivers/staging/fieldbus/anybuss/host.c | 4 +--- > drivers/staging/greybus/gbphy.c | 4 +--- > drivers/target/loopback/tcm_loop.c| 5 ++--- > drivers/thunderbolt/domain.c | 4 +--- > drivers/tty/serdev/core.c | 4 +--- > drivers/usb/common/ulpi.c | 4 +--- > drivers/usb/serial/bus.c | 4 +--- > drivers/usb/typec/bus.c | 4 +--- > drivers/vdpa/vdpa.c
Re: [PATCH] bus: Make remove callback return void
On Tue, Jul 06 2021, 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. Yay! > > Signed-off-by: Uwe Kleine-König > --- > Hello, > > this patch depends on "PCI: endpoint: Make struct pci_epf_driver::remove > return void" that is not yet applied, see > https://lore.kernel.org/r/20210223090757.57604-1-u.kleine-koe...@pengutronix.de. > > I tested it using allmodconfig on amd64 and arm, but I wouldn't be > surprised if I still missed to convert a driver. So it would be great to > get this into next early after the merge window closes. I'm afraid you missed the s390-specific busses in drivers/s390/cio/ (css/ccw/ccwgroup).
Re: [PATCH] bus: Make remove callback return void
On Tue, Jul 06, 2021 at 11:50:37AM +0200, 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. > > Signed-off-by: Uwe Kleine-König > drivers/staging/greybus/gbphy.c | 4 +--- > drivers/usb/serial/bus.c | 4 +--- > include/linux/device/bus.h| 2 +- Acked-by: Johan Hovold
Re: [PATCH] bus: Make remove callback return void
On 06-07-21, 11:50, 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: Vinod Koul -- ~Vinod
Re: [PATCH] bus: Make remove callback return void
Em Tue, 6 Jul 2021 11:50:37 +0200 Uwe Kleine-König escreveu: > 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. > > Signed-off-by: Uwe Kleine-König > --- > Hello, > > this patch depends on "PCI: endpoint: Make struct pci_epf_driver::remove > return void" that is not yet applied, see > https://lore.kernel.org/r/20210223090757.57604-1-u.kleine-koe...@pengutronix.de. > > I tested it using allmodconfig on amd64 and arm, but I wouldn't be > surprised if I still missed to convert a driver. So it would be great to > get this into next early after the merge window closes. > > I send this mail to all people that get_maintainer.pl emits for this > patch. I wonder how many recipents will refuse this mail because of the > long Cc: list :-) > > Best regards > Uwe > > diff --git a/drivers/media/pci/bt8xx/bttv-gpio.c > b/drivers/media/pci/bt8xx/bttv-gpio.c > index b730225ca887..a2b18e2bed1b 100644 > --- a/drivers/media/pci/bt8xx/bttv-gpio.c > +++ b/drivers/media/pci/bt8xx/bttv-gpio.c > @@ -46,14 +46,13 @@ static int bttv_sub_probe(struct device *dev) > return sub->probe ? sub->probe(sdev) : -ENODEV; > } > > -static int bttv_sub_remove(struct device *dev) > +static void bttv_sub_remove(struct device *dev) > { > struct bttv_sub_device *sdev = to_bttv_sub_dev(dev); > struct bttv_sub_driver *sub = to_bttv_sub_drv(dev->driver); > > if (sub->remove) > sub->remove(sdev); > - return 0; > } > Acked-by: Mauro Carvalho Chehab # for drivers/media Thanks, Mauro
Re: [PATCH] bus: Make remove callback return void
On Tuesday 06 July 2021 11:50:37 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. > > Signed-off-by: Uwe Kleine-König Acked-by: Pali Rohár > --- > Hello, > > this patch depends on "PCI: endpoint: Make struct pci_epf_driver::remove > return void" that is not yet applied, see > https://lore.kernel.org/r/20210223090757.57604-1-u.kleine-koe...@pengutronix.de. > > I tested it using allmodconfig on amd64 and arm, but I wouldn't be > surprised if I still missed to convert a driver. So it would be great to > get this into next early after the merge window closes. > > I send this mail to all people that get_maintainer.pl emits for this > patch. I wonder how many recipents will refuse this mail because of the > long Cc: list :-) > > Best regards > Uwe
Re: [PATCH] bus: Make remove callback return void
On Tue, Jul 6, 2021 at 5:54 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. > > Signed-off-by: Uwe Kleine-König > --- > Hello, > > this patch depends on "PCI: endpoint: Make struct pci_epf_driver::remove > return void" that is not yet applied, see > https://lore.kernel.org/r/20210223090757.57604-1-u.kleine-koe...@pengutronix.de. > > I tested it using allmodconfig on amd64 and arm, but I wouldn't be > surprised if I still missed to convert a driver. So it would be great to > get this into next early after the merge window closes. > > I send this mail to all people that get_maintainer.pl emits for this > patch. I wonder how many recipents will refuse this mail because of the > long Cc: list :-) > > Best regards > Uwe > > drivers/bus/sunxi-rsb.c | 4 +--- Acked-by: Chen-Yu Tsai
Re: [PATCH] bus: Make remove callback return void
On Tue, Jul 06, 2021 at 11:50:37AM +0200, 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. Acked-by: Mark Brown signature.asc Description: PGP signature
Re: [PATCH] bus: Make remove callback return void
On Tue, Jul 06, 2021 at 11:50:37AM +0200, 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. > > Signed-off-by: Uwe Kleine-König Yay! For ARM, Amba and related parts: Acked-by: Russell King (Oracle) -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!
Re: [PATCH] bus: Make remove callback return void
On 06/07/2021 12:36, Lee Jones wrote: > On Tue, 06 Jul 2021, 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. >> >> Signed-off-by: Uwe Kleine-König >> --- >> Hello, >> >> this patch depends on "PCI: endpoint: Make struct pci_epf_driver::remove >> return void" that is not yet applied, see >> https://lore.kernel.org/r/20210223090757.57604-1-u.kleine-koe...@pengutronix.de. >> >> I tested it using allmodconfig on amd64 and arm, but I wouldn't be >> surprised if I still missed to convert a driver. So it would be great to >> get this into next early after the merge window closes. >> >> I send this mail to all people that get_maintainer.pl emits for this >> patch. I wonder how many recipents will refuse this mail because of the >> long Cc: list :-) >> >> Best regards >> Uwe >> >> arch/arm/common/locomo.c | 3 +-- >> arch/arm/common/sa.c | 4 +--- >> arch/arm/mach-rpc/ecard.c | 4 +--- >> arch/mips/sgi-ip22/ip22-gio.c | 3 +-- >> arch/parisc/kernel/drivers.c | 5 ++--- >> arch/powerpc/platforms/ps3/system-bus.c | 3 +-- >> arch/powerpc/platforms/pseries/ibmebus.c | 3 +-- >> arch/powerpc/platforms/pseries/vio.c | 3 +-- >> drivers/acpi/bus.c| 3 +-- >> drivers/amba/bus.c| 4 +--- >> drivers/base/auxiliary.c | 4 +--- >> drivers/base/isa.c| 4 +--- >> drivers/base/platform.c | 4 +--- >> drivers/bcma/main.c | 6 ++ >> drivers/bus/sunxi-rsb.c | 4 +--- >> drivers/cxl/core.c| 3 +-- >> drivers/dax/bus.c | 4 +--- >> drivers/dma/idxd/sysfs.c | 4 +--- >> drivers/firewire/core-device.c| 4 +--- >> drivers/firmware/arm_scmi/bus.c | 4 +--- >> drivers/firmware/google/coreboot_table.c | 4 +--- >> drivers/fpga/dfl.c| 4 +--- >> drivers/hid/hid-core.c| 4 +--- >> drivers/hid/intel-ish-hid/ishtp/bus.c | 4 +--- >> drivers/hv/vmbus_drv.c| 5 + >> drivers/hwtracing/intel_th/core.c | 4 +--- >> drivers/i2c/i2c-core-base.c | 5 + >> drivers/i3c/master.c | 4 +--- >> drivers/input/gameport/gameport.c | 3 +-- >> drivers/input/serio/serio.c | 3 +-- >> drivers/ipack/ipack.c | 4 +--- >> drivers/macintosh/macio_asic.c| 4 +--- >> drivers/mcb/mcb-core.c| 4 +--- Acked-by: Johannes Thumshirn # for drivers/mcb
Re: [PATCH] bus: Make remove callback return void
On Tue, 06 Jul 2021, 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. > > Signed-off-by: Uwe Kleine-König > --- > Hello, > > this patch depends on "PCI: endpoint: Make struct pci_epf_driver::remove > return void" that is not yet applied, see > https://lore.kernel.org/r/20210223090757.57604-1-u.kleine-koe...@pengutronix.de. > > I tested it using allmodconfig on amd64 and arm, but I wouldn't be > surprised if I still missed to convert a driver. So it would be great to > get this into next early after the merge window closes. > > I send this mail to all people that get_maintainer.pl emits for this > patch. I wonder how many recipents will refuse this mail because of the > long Cc: list :-) > > Best regards > Uwe > > arch/arm/common/locomo.c | 3 +-- > arch/arm/common/sa.c | 4 +--- > arch/arm/mach-rpc/ecard.c | 4 +--- > arch/mips/sgi-ip22/ip22-gio.c | 3 +-- > arch/parisc/kernel/drivers.c | 5 ++--- > arch/powerpc/platforms/ps3/system-bus.c | 3 +-- > arch/powerpc/platforms/pseries/ibmebus.c | 3 +-- > arch/powerpc/platforms/pseries/vio.c | 3 +-- > drivers/acpi/bus.c| 3 +-- > drivers/amba/bus.c| 4 +--- > drivers/base/auxiliary.c | 4 +--- > drivers/base/isa.c| 4 +--- > drivers/base/platform.c | 4 +--- > drivers/bcma/main.c | 6 ++ > drivers/bus/sunxi-rsb.c | 4 +--- > drivers/cxl/core.c| 3 +-- > drivers/dax/bus.c | 4 +--- > drivers/dma/idxd/sysfs.c | 4 +--- > drivers/firewire/core-device.c| 4 +--- > drivers/firmware/arm_scmi/bus.c | 4 +--- > drivers/firmware/google/coreboot_table.c | 4 +--- > drivers/fpga/dfl.c| 4 +--- > drivers/hid/hid-core.c| 4 +--- > drivers/hid/intel-ish-hid/ishtp/bus.c | 4 +--- > drivers/hv/vmbus_drv.c| 5 + > drivers/hwtracing/intel_th/core.c | 4 +--- > drivers/i2c/i2c-core-base.c | 5 + > drivers/i3c/master.c | 4 +--- > drivers/input/gameport/gameport.c | 3 +-- > drivers/input/serio/serio.c | 3 +-- > drivers/ipack/ipack.c | 4 +--- > drivers/macintosh/macio_asic.c| 4 +--- > drivers/mcb/mcb-core.c| 4 +--- > drivers/media/pci/bt8xx/bttv-gpio.c | 3 +-- > drivers/memstick/core/memstick.c | 3 +-- > drivers/mfd/mcp-core.c| 3 +-- Acked-by: Lee Jones -- Lee Jones [李琼斯] Senior Technical Lead - Developer Services Linaro.org │ Open source software for Arm SoCs Follow Linaro: Facebook | Twitter | Blog