Message ID | 20210713193522.1770306-1-u.kleine-koenig@pengutronix.de |
---|---|
Headers | show |
Series | bus: Make remove callback return void | expand |
On Tue, Jul 13, 2021 at 9:35 PM Uwe Kleine-König <u.kleine-koenig@pengutronix.de> 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. > drivers/zorro/zorro-driver.c | 3 +-- Acked-by: Geert Uytterhoeven <geert@linux-m68k.org> Gr{oetje,eeting}s, Geert
On Tue, Jul 13, 2021 at 09:35:22PM +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. > [...] > diff --git a/drivers/firmware/arm_scmi/bus.c b/drivers/firmware/arm_scmi/bus.c > index 784cf0027da3..2682c3df651c 100644 > --- a/drivers/firmware/arm_scmi/bus.c > +++ b/drivers/firmware/arm_scmi/bus.c > @@ -116,15 +116,13 @@ static int scmi_dev_probe(struct device *dev) > return scmi_drv->probe(scmi_dev); > } > > -static int scmi_dev_remove(struct device *dev) > +static void scmi_dev_remove(struct device *dev) > { > struct scmi_driver *scmi_drv = to_scmi_driver(dev->driver); > struct scmi_device *scmi_dev = to_scmi_dev(dev); > > if (scmi_drv->remove) > scmi_drv->remove(scmi_dev); > - > - return 0; > } > > static struct bus_type scmi_bus_type = { Acked-by: Sudeep Holla <sudeep.holla@arm.com> -- Regards, Sudeep
On Wed, Jul 21, 2021 at 12:09:41PM +0200, Greg Kroah-Hartman wrote: > On Tue, Jul 13, 2021 at 09:35:17PM +0200, Uwe Kleine-König wrote: > > Hello, > > > > this is v4 of the final patch set for my effort to make struct > > bus_type::remove return void. > > > > The first four patches contain cleanups that make some of these > > callbacks (more obviously) always return 0. They are acked by the > > respective maintainers. Bjorn Helgaas explicitly asked to include the > > pci patch (#1) into this series, so Greg taking this is fine. I assume > > the s390 people are fine with Greg taking patches #2 to #4, too, they > > didn't explicitly said so though. > > > > The last patch actually changes the prototype and so touches quite some > > drivers and has the potential to conflict with future developments, so I > > consider it beneficial to put these patches into next soon. I expect > > that it will be Greg who takes the complete series, he already confirmed > > via irc (for v2) to look into this series. > > > > The only change compared to v3 is in the fourth patch where I modified a > > few more drivers to fix build failures. Some of them were found by build > > bots (thanks!), some of them I found myself using a regular expression > > search. The newly modified files are: > > > > arch/sparc/kernel/vio.c > > drivers/nubus/bus.c > > drivers/sh/superhyway/superhyway.c > > drivers/vlynq/vlynq.c > > drivers/zorro/zorro-driver.c > > sound/ac97/bus.c > > > > Best regards > > Uwe > > Now queued up. I can go make a git tag that people can pull from after > 0-day is finished testing this to verify all is good, if others need it. Ok, here's a tag that any other subsystem can pull from if they want these changes in their tree before 5.15-rc1 is out. I might pull it into my char-misc-next tree as well just to keep that tree sane as it seems to pick up new busses on a regular basis... thanks, greg k-h ----------------------------------- The following changes since commit 2734d6c1b1a089fb593ef6a23d4b70903526fe0c: Linux 5.14-rc2 (2021-07-18 14:13:49 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git tags/bus_remove_return_void-5.15 for you to fetch changes up to fc7a6209d5710618eb4f72a77cd81b8d694ecf89: bus: Make remove callback return void (2021-07-21 11:53:42 +0200) ---------------------------------------------------------------- Bus: Make remove callback return void tag Tag for other trees/branches to pull from in order to have a stable place to build off of if they want to add new busses for 5.15. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---------------------------------------------------------------- Uwe Kleine-König (5): PCI: endpoint: Make struct pci_epf_driver::remove return void s390/cio: Make struct css_driver::remove return void s390/ccwgroup: Drop if with an always false condition s390/scm: Make struct scm_driver::remove return void bus: Make remove callback return void arch/arm/common/locomo.c | 3 +-- arch/arm/common/sa1111.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 +-- arch/s390/include/asm/eadm.h | 2 +- arch/sparc/kernel/vio.c | 4 +--- 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/nubus/bus.c | 6 ++---- drivers/nvdimm/bus.c | 3 +-- drivers/pci/endpoint/pci-epf-core.c | 7 ++----- 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 | 7 ++----- drivers/s390/block/scm_drv.c | 4 +--- drivers/s390/cio/ccwgroup.c | 6 +----- drivers/s390/cio/chsc_sch.c | 3 +-- drivers/s390/cio/css.c | 7 +++---- drivers/s390/cio/css.h | 2 +- drivers/s390/cio/device.c | 9 +++------ drivers/s390/cio/eadm_sch.c | 4 +--- drivers/s390/cio/scm.c | 5 +++-- drivers/s390/cio/vfio_ccw_drv.c | 3 +-- drivers/s390/crypto/ap_bus.c | 4 +--- drivers/scsi/scsi_debug.c | 3 +-- drivers/sh/superhyway/superhyway.c | 8 ++------ 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 | 4 +--- drivers/vfio/mdev/mdev_driver.c | 4 +--- drivers/virtio/virtio.c | 3 +-- drivers/vlynq/vlynq.c | 4 +--- drivers/vme/vme.c | 4 +--- drivers/xen/xenbus/xenbus.h | 2 +- drivers/xen/xenbus/xenbus_probe.c | 4 +--- drivers/zorro/zorro-driver.c | 3 +-- include/linux/device/bus.h | 2 +- include/linux/pci-epf.h | 2 +- sound/ac97/bus.c | 6 ++---- sound/aoa/soundbus/core.c | 4 +--- 93 files changed, 107 insertions(+), 263 deletions(-)