All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
From: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
To: Cornelia Huck <cohuck@redhat.com>
Cc: "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	nvdimm@lists.linux.dev, "Alexey Kardashevskiy" <aik@ozlabs.ru>,
	"Benjamin Herrenschmidt" <benh@kernel.crashing.org>,
	"Samuel Iglesias Gonsalvez" <siglesias@igalia.com>,
	"Jens Taprogge" <jens.taprogge@taprogge.org>,
	"Ulf Hansson" <ulf.hansson@linaro.org>,
	"Jaroslav Kysela" <perex@perex.cz>,
	"Benjamin Tissoires" <benjamin.tissoires@redhat.com>,
	"Paul Mackerras" <paulus@samba.org>,
	"Srinivas Pandruvada" <srinivas.pandruvada@linux.intel.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	"Mike Christie" <michael.christie@oracle.com>,
	"Wei Liu" <wei.liu@kernel.org>,
	"Maxim Levitsky" <maximlevitsky@gmail.com>,
	"Samuel Holland" <samuel@sholland.org>,
	"Michael Ellerman" <mpe@ellerman.id.au>,
	linux-acpi@vger.kernel.org, linux-pci@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	"Tomas Winkler" <tomas.winkler@intel.com>,
	"Julien Grall" <jgrall@amazon.com>,
	"Ohad Ben-Cohen" <ohad@wizery.com>,
	"Alex Williamson" <alex.williamson@redhat.com>,
	"Alex Elder" <elder@kernel.org>,
	linux-parisc@vger.kernel.org,
	"Geoff Levand" <geoff@infradead.org>,
	linux-fpga@vger.kernel.org, linux-usb@vger.kernel.org,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	linux-kernel@vger.kernel.org, linux-spi@vger.kernel.org,
	"Thorsten Scherer" <t.scherer@eckelmann.de>,
	kernel@pengutronix.de, "Jon Mason" <jdmason@kudzu.us>,
	linux-ntb@googlegroups.com, "Wu Hao" <hao.wu@intel.com>,
	"David Woodhouse" <dwmw@amazon.co.uk>,
	"Krzysztof Wilczyński" <kw@linux.com>,
	"Alexandre Belloni" <alexandre.belloni@bootlin.com>,
	"Manohar Vanga" <manohar.vanga@gmail.com>,
	linux-wireless@vger.kernel.org,
	"Dominik Brodowski" <linux@dominikbrodowski.net>,
	virtualization@lists.linux-foundation.org,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	target-devel@vger.kernel.org,
	"Srinivas Kandagatla" <srinivas.kandagatla@linaro.org>,
	linux-i2c@vger.kernel.org,
	"Kai-Heng Feng" <kai.heng.feng@canonical.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>,
	"Stephen Hemminger" <sthemmin@microsoft.com>,
	"Ira Weiny" <ira.weiny@intel.com>, "Helge Deller" <deller@gmx.de>,
	"Rafał Miłecki" <zajec5@gmail.com>,
	industrypack-devel@lists.sourceforge.net,
	linux-mips@vger.kernel.org, "Len Brown" <lenb@kernel.org>,
	alsa-devel@alsa-project.org, linux-arm-msm@vger.kernel.org,
	linux-media@vger.kernel.org, "Maxime Ripard" <mripard@kernel.org>,
	"Johan Hovold" <johan@kernel.org>,
	greybus-dev@lists.linaro.org,
	"Bjorn Helgaas" <bhelgaas@google.com>,
	"Dave Jiang" <dave.jiang@intel.com>,
	"Boris Ostrovsky" <boris.ostrovsky@oracle.com>,
	"Mika Westerberg" <mika.westerberg@linux.intel.com>,
	linux-arm-kernel@lists.infradead.org,
	"Johannes Thumshirn" <morbidrsa@gmail.com>,
	"Mathieu Poirier" <mathieu.poirier@linaro.org>,
	"Stephen Boyd" <sboyd@kernel.org>,
	"Wolfram Sang" <wsa@kernel.org>,
	"Joey Pabalan" <jpabalanb@gmail.com>,
	"Yehezkel Bernat" <YehezkelShB@gmail.com>,
	"Pali Rohár" <pali@kernel.org>,
	"Bodo Stroesser" <bostroesser@gmail.com>,
	"Alison Schofield" <alison.schofield@intel.com>,
	"Heikki Krogerus" <heikki.krogerus@linux.intel.com>,
	"Tyrel Datwyler" <tyreld@linux.ibm.com>,
	"Alexander Shishkin" <alexander.shishkin@linux.intel.com>,
	"Tom Rix" <trix@redhat.com>, "Jason Wang" <jasowang@redhat.com>,
	"SeongJae Park" <sjpark@amazon.de>,
	linux-hyperv@vger.kernel.org,
	platform-driver-x86@vger.kernel.org,
	"Frank Li" <lznuaa@gmail.com>,
	netdev@vger.kernel.org, "Qinglang Miao" <miaoqinglang@huawei.com>,
	"Jiri Slaby" <jirislaby@kernel.org>,
	"Rob Herring" <robh@kernel.org>,
	"Lorenzo Pieralisi" <lorenzo.pieralisi@arm.com>,
	"Mark Gross" <mgross@linux.intel.com>,
	linux-staging@lists.linux.dev, "Dexuan Cui" <decui@microsoft.com>,
	"Jernej Skrabec" <jernej.skrabec@gmail.com>,
	"Kishon Vijay Abraham I" <kishon@ti.com>,
	"Chen-Yu Tsai" <wens@csie.org>,
	linux-input@vger.kernel.org,
	"Matt Porter" <mporter@kernel.crashing.org>,
	"Allen Hubbe" <allenbh@gmail.com>, "Alex Dubov" <oakad@yahoo.com>,
	"Haiyang Zhang" <haiyangz@microsoft.com>,
	"Jiri Kosina" <jikos@kernel.org>,
	"Vladimir Zapolskiy" <vz@mleia.com>,
	"Ben Widawsky" <ben.widawsky@intel.com>,
	"Moritz Fischer" <mdf@kernel.org>,
	linux-cxl@vger.kernel.org, "Michael Buesch" <m@bues.ch>,
	"Dan Williams" <dan.j.williams@intel.com>,
	"Mauro Carvalho Chehab" <mchehab@kernel.org>,
	"Cristian Marussi" <cristian.marussi@arm.com>,
	"Thomas Bogendoerfer" <tsbogend@alpha.franken.de>,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	"Martyn Welch" <martyn@welchs.me.uk>,
	"Dmitry Torokhov" <dmitry.torokhov@gmail.com>,
	linux-mmc@vger.kernel.org, linux-sunxi@lists.linux.dev,
	"Stefan Richter" <stefanr@s5r6.in-berlin.de>,
	"Sudeep Holla" <sudeep.holla@arm.com>,
	"David S. Miller" <davem@davemloft.net>,
	"Sven Van Asbroeck" <TheSven73@gmail.com>,
	kvm@vger.kernel.org, "Michael S. Tsirkin" <mst@redhat.com>,
	linux-remoteproc@vger.kernel.org,
	"Bjorn Andersson" <bjorn.andersson@linaro.org>,
	"Kirti Wankhede" <kwankhede@nvidia.com>,
	"Andreas Noever" <andreas.noever@gmail.com>,
	linux-i3c@lists.infradead.org,
	linux1394-devel@lists.sourceforge.net,
	"Lee Jones" <lee.jones@linaro.org>,
	"Arnd Bergmann" <arnd@arndb.de>,
	linux-scsi@vger.kernel.org,
	"Vishal Verma" <vishal.l.verma@intel.com>,
	"Russell King" <linux@armlinux.org.uk>,
	"Andy Gross" <agross@kernel.org>,
	linux-serial@vger.kernel.org, "Jakub Kicinski" <kuba@kernel.org>,
	"Michael Jamet" <michael.jamet@intel.com>,
	"William Breathitt Gray" <vilhelm.gray@gmail.com>,
	"Hans de Goede" <hdegoede@redhat.com>,
	"Hannes Reinecke" <hare@suse.de>,
	"Adrian Hunter" <adrian.hunter@intel.com>,
	"Juergen Gross" <jgross@suse.com>,
	linuxppc-dev@lists.ozlabs.org, "Takashi Iwai" <tiwai@suse.com>,
	"Alexandre Bounine" <alex.bou9@gmail.com>,
	"Vinod Koul" <vkoul@kernel.org>,
	"Mark Brown" <broonie@kernel.org>,
	"Marc Zyngier" <maz@kernel.org>,
	dmaengine@vger.kernel.org,
	"Johannes Berg" <johannes@sipsolutions.net>,
	"Maximilian Luz" <luzmaximilian@gmail.com>
Subject: Re: [PATCH] bus: Make remove callback return void
Date: Tue, 6 Jul 2021 14:14:45 +0200	[thread overview]
Message-ID: <20210706121445.o3nxgi4bhzrw5w73@pengutronix.de> (raw)
In-Reply-To: <87mtqzhesu.fsf@redhat.com>

[-- Attachment #1: Type: text/plain, Size: 3533 bytes --]

On Tue, Jul 06, 2021 at 01:17:37PM +0200, Cornelia Huck wrote:
> On Tue, Jul 06 2021, Cornelia Huck <cohuck@redhat.com> wrote:
> 
> > On Tue, Jul 06 2021, 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.
> >
> > Yay!
> >
> >>
> >> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> >> ---
> >> 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-koenig@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/ |

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
To: Cornelia Huck <cohuck@redhat.com>
Cc: nvdimm@lists.linux.dev, "Alexey Kardashevskiy" <aik@ozlabs.ru>,
	"Samuel Iglesias Gonsalvez" <siglesias@igalia.com>,
	"Jens Taprogge" <jens.taprogge@taprogge.org>,
	"Alison Schofield" <alison.schofield@intel.com>,
	"Jaroslav Kysela" <perex@perex.cz>,
	"Benjamin Tissoires" <benjamin.tissoires@redhat.com>,
	"Paul Mackerras" <paulus@samba.org>,
	"Srinivas Pandruvada" <srinivas.pandruvada@linux.intel.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	"Mike Christie" <michael.christie@oracle.com>,
	"Wei Liu" <wei.liu@kernel.org>,
	"Maxim Levitsky" <maximlevitsky@gmail.com>,
	"Samuel Holland" <samuel@sholland.org>,
	"Takashi Iwai" <tiwai@suse.com>,
	linux-acpi@vger.kernel.org, "Tom Rix" <trix@redhat.com>,
	xen-devel@lists.xenproject.org,
	"Tomas Winkler" <tomas.winkler@intel.com>,
	"Jason Wang" <jasowang@redhat.com>,
	"Ohad Ben-Cohen" <ohad@wizery.com>,
	"Alex Williamson" <alex.williamson@redhat.com>,
	"Alex Elder" <elder@kernel.org>,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	"Geoff Levand" <geoff@infradead.org>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	linux-usb@vger.kernel.org, linux-wireless@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-spi@vger.kernel.org,
	"Kai-Heng Feng" <kai.heng.feng@canonical.com>,
	kernel@pengutronix.de, "Jon Mason" <jdmason@kudzu.us>,
	linux-ntb@googlegroups.com, linux-media@vger.kernel.org,
	"David Woodhouse" <dwmw@amazon.co.uk>,
	"Krzysztof Wilczyński" <kw@linux.com>,
	"Alexandre Belloni" <alexandre.belloni@bootlin.com>,
	"Manohar Vanga" <manohar.vanga@gmail.com>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	"Dominik Brodowski" <linux@dominikbrodowski.net>,
	virtualization@lists.linux-foundation.org,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	target-devel@vger.kernel.org,
	"Srinivas Kandagatla" <srinivas.kandagatla@linaro.org>,
	linux-i2c@vger.kernel.org,
	"Stefano Stabellini" <sstabellini@kernel.org>,
	"Stephen Hemminger" <sthemmin@microsoft.com>,
	"Jiri Slaby" <jirislaby@kernel.org>,
	"Helge Deller" <deller@gmx.de>,
	"Rafał Miłecki" <zajec5@gmail.com>,
	industrypack-devel@lists.sourceforge.net,
	"Wu Hao" <hao.wu@intel.com>,
	alsa-devel@alsa-project.org, linux-arm-msm@vger.kernel.org,
	"Maxime Ripard" <mripard@kernel.org>,
	"William Breathitt Gray" <vilhelm.gray@gmail.com>,
	greybus-dev@lists.linaro.org, "Frank Li" <lznuaa@gmail.com>,
	"Mark Gross" <mgross@linux.intel.com>,
	"Boris Ostrovsky" <boris.ostrovsky@oracle.com>,
	"Mika Westerberg" <mika.westerberg@linux.intel.com>,
	linux-arm-kernel@lists.infradead.org,
	"Johannes Thumshirn" <morbidrsa@gmail.com>,
	"Mathieu Poirier" <mathieu.poirier@linaro.org>,
	"Stephen Boyd" <sboyd@kernel.org>,
	"Wolfram Sang" <wsa@kernel.org>,
	"Joey Pabalan" <jpabalanb@gmail.com>,
	"Yehezkel Bernat" <YehezkelShB@gmail.com>,
	"Pali Rohár" <pali@kernel.org>, "Len Brown" <lenb@kernel.org>,
	"Bodo Stroesser" <bostroesser@gmail.com>,
	"Ulf Hansson" <ulf.hansson@linaro.org>,
	"Heikki Krogerus" <heikki.krogerus@linux.intel.com>,
	"Tyrel Datwyler" <tyreld@linux.ibm.com>,
	"Alexander Shishkin" <alexander.shishkin@linux.intel.com>,
	linux-pci@vger.kernel.org, "Julien Grall" <jgrall@amazon.com>,
	"SeongJae Park" <sjpark@amazon.de>,
	linux-hyperv@vger.kernel.org,
	platform-driver-x86@vger.kernel.org,
	"Bjorn Helgaas" <bhelgaas@google.com>,
	"Jernej Skrabec" <jernej.skrabec@gmail.com>,
	"Ira Weiny" <ira.weiny@intel.com>,
	"Rob Herring" <robh@kernel.org>,
	"Lorenzo Pieralisi" <lorenzo.pieralisi@arm.com>,
	"Dave Jiang" <dave.jiang@intel.com>,
	linux-staging@lists.linux.dev, "Dexuan Cui" <decui@microsoft.com>,
	"Qinglang Miao" <miaoqinglang@huawei.com>,
	"Kishon Vijay Abraham I" <kishon@ti.com>,
	"Chen-Yu Tsai" <wens@csie.org>,
	linux-input@vger.kernel.org, "Allen Hubbe" <allenbh@gmail.com>,
	"Alex Dubov" <oakad@yahoo.com>,
	"Haiyang Zhang" <haiyangz@microsoft.com>,
	"Jiri Kosina" <jikos@kernel.org>,
	"Vladimir Zapolskiy" <vz@mleia.com>,
	"Ben Widawsky" <ben.widawsky@intel.com>,
	"Moritz Fischer" <mdf@kernel.org>,
	linux-cxl@vger.kernel.org, "Michael Buesch" <m@bues.ch>,
	"Dan Williams" <dan.j.williams@intel.com>,
	"Mauro Carvalho Chehab" <mchehab@kernel.org>,
	"Cristian Marussi" <cristian.marussi@arm.com>,
	"Thomas Bogendoerfer" <tsbogend@alpha.franken.de>,
	linux-parisc@vger.kernel.org,
	"Martyn Welch" <martyn@welchs.me.uk>,
	"Dmitry Torokhov" <dmitry.torokhov@gmail.com>,
	linux-mmc@vger.kernel.org, linux-sunxi@lists.linux.dev,
	"Stefan Richter" <stefanr@s5r6.in-berlin.de>,
	"Sudeep Holla" <sudeep.holla@arm.com>,
	"David S. Miller" <davem@davemloft.net>,
	"Sven Van Asbroeck" <TheSven73@gmail.com>,
	kvm@vger.kernel.org, "Michael S. Tsirkin" <mst@redhat.com>,
	linux-remoteproc@vger.kernel.org,
	"Maximilian Luz" <luzmaximilian@gmail.com>,
	"Bjorn Andersson" <bjorn.andersson@linaro.org>,
	"Kirti Wankhede" <kwankhede@nvidia.com>,
	"Andreas Noever" <andreas.noever@gmail.com>,
	linux-i3c@lists.infradead.org,
	linux1394-devel@lists.sourceforge.net,
	"Lee Jones" <lee.jones@linaro.org>,
	"Arnd Bergmann" <arnd@arndb.de>,
	linux-scsi@vger.kernel.org,
	"Vishal Verma" <vishal.l.verma@intel.com>,
	"Russell King" <linux@armlinux.org.uk>,
	"Thorsten Scherer" <t.scherer@eckelmann.de>,
	"Andy Gross" <agross@kernel.org>,
	linux-serial@vger.kernel.org, "Jakub Kicinski" <kuba@kernel.org>,
	"Michael Jamet" <michael.jamet@intel.com>,
	"Johan Hovold" <johan@kernel.org>,
	"Hans de Goede" <hdegoede@redhat.com>,
	"Hannes Reinecke" <hare@suse.de>,
	"Adrian Hunter" <adrian.hunter@intel.com>,
	"Johannes Berg" <johannes@sipsolutions.net>,
	"Juergen Gross" <jgross@suse.com>,
	netdev@vger.kernel.org, linux-mips@vger.kernel.org,
	"Alexandre Bounine" <alex.bou9@gmail.com>,
	"Vinod Koul" <vkoul@kernel.org>,
	"Mark Brown" <broonie@kernel.org>,
	"Marc Zyngier" <maz@kernel.org>,
	dmaengine@vger.kernel.org, linux-fpga@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH] bus: Make remove callback return void
Date: Tue, 6 Jul 2021 14:14:45 +0200	[thread overview]
Message-ID: <20210706121445.o3nxgi4bhzrw5w73@pengutronix.de> (raw)
In-Reply-To: <87mtqzhesu.fsf@redhat.com>

[-- Attachment #1: Type: text/plain, Size: 3533 bytes --]

On Tue, Jul 06, 2021 at 01:17:37PM +0200, Cornelia Huck wrote:
> On Tue, Jul 06 2021, Cornelia Huck <cohuck@redhat.com> wrote:
> 
> > On Tue, Jul 06 2021, 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.
> >
> > Yay!
> >
> >>
> >> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> >> ---
> >> 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-koenig@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/ |

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
To: Cornelia Huck <cohuck@redhat.com>
Cc: nvdimm@lists.linux.dev, "Alexey Kardashevskiy" <aik@ozlabs.ru>,
	"Benjamin Herrenschmidt" <benh@kernel.crashing.org>,
	"Samuel Iglesias Gonsalvez" <siglesias@igalia.com>,
	"Jens Taprogge" <jens.taprogge@taprogge.org>,
	"Alison Schofield" <alison.schofield@intel.com>,
	"Benjamin Tissoires" <benjamin.tissoires@redhat.com>,
	"Paul Mackerras" <paulus@samba.org>,
	"Srinivas Pandruvada" <srinivas.pandruvada@linux.intel.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	"Mike Christie" <michael.christie@oracle.com>,
	"Wei Liu" <wei.liu@kernel.org>,
	"Maxim Levitsky" <maximlevitsky@gmail.com>,
	"Samuel Holland" <samuel@sholland.org>,
	"Michael Ellerman" <mpe@ellerman.id.au>,
	"Takashi Iwai" <tiwai@suse.com>,
	linux-acpi@vger.kernel.org, "Tom Rix" <trix@redhat.com>,
	xen-devel@lists.xenproject.org,
	"Tomas Winkler" <tomas.winkler@intel.com>,
	"Jason Wang" <jasowang@redhat.com>,
	"Ohad Ben-Cohen" <ohad@wizery.com>,
	"Alex Williamson" <alex.williamson@redhat.com>,
	"Alex Elder" <elder@kernel.org>,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	"Geoff Levand" <geoff@infradead.org>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	linux-usb@vger.kernel.org, linux-wireless@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-spi@vger.kernel.org,
	"Kai-Heng Feng" <kai.heng.feng@canonical.com>,
	kernel@pengutronix.de, "Jon Mason" <jdmason@kudzu.us>,
	linux-ntb@googlegroups.com, linux-media@vger.kernel.org,
	"David Woodhouse" <dwmw@amazon.co.uk>,
	"Krzysztof Wilczyński" <kw@linux.com>,
	"Alexandre Belloni" <alexandre.belloni@bootlin.com>,
	"Manohar Vanga" <manohar.vanga@gmail.com>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	"Dominik Brodowski" <linux@dominikbrodowski.net>,
	virtualization@lists.linux-foundation.org,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	target-devel@vger.kernel.org, linux-i2c@vger.kernel.org,
	"Stefano Stabellini" <sstabellini@kernel.org>,
	"Stephen Hemminger" <sthemmin@microsoft.com>,
	"Jiri Slaby" <jirislaby@kernel.org>,
	"Helge Deller" <deller@gmx.de>,
	"Rafał Miłecki" <zajec5@gmail.com>,
	industrypack-devel@lists.sourceforge.net,
	"Wu Hao" <hao.wu@intel.com>,
	alsa-devel@alsa-project.org, linux-arm-msm@vger.kernel.org,
	"Maxime Ripard" <mripard@kernel.org>,
	"William Breathitt Gray" <vilhelm.gray@gmail.com>,
	greybus-dev@lists.linaro.org, "Frank Li" <lznuaa@gmail.com>,
	"Mark Gross" <mgross@linux.intel.com>,
	"Boris Ostrovsky" <boris.ostrovsky@oracle.com>,
	"Mika Westerberg" <mika.westerberg@linux.intel.com>,
	linux-arm-kernel@lists.infradead.org,
	"Johannes Thumshirn" <morbidrsa@gmail.com>,
	"Mathieu Poirier" <mathieu.poirier@linaro.org>,
	"Stephen Boyd" <sboyd@kernel.org>,
	"Wolfram Sang" <wsa@kernel.org>,
	"Joey Pabalan" <jpabalanb@gmail.com>,
	"Yehezkel Bernat" <YehezkelShB@gmail.com>,
	"Pali Rohár" <pali@kernel.org>, "Len Brown" <lenb@kernel.org>,
	"Bodo Stroesser" <bostroesser@gmail.com>,
	"Ulf Hansson" <ulf.hansson@linaro.org>,
	"Heikki Krogerus" <heikki.krogerus@linux.intel.com>,
	"Tyrel Datwyler" <tyreld@linux.ibm.com>,
	"Alexander Shishkin" <alexander.shishkin@linux.intel.com>,
	linux-pci@vger.kernel.org, "Julien Grall" <jgrall@amazon.com>,
	"SeongJae Park" <sjpark@amazon.de>,
	linux-hyperv@vger.kernel.org,
	platform-driver-x86@vger.kernel.org,
	"Bjorn Helgaas" <bhelgaas@google.com>,
	"Jernej Skrabec" <jernej.skrabec@gmail.com>,
	"Ira Weiny" <ira.weiny@intel.com>,
	"Rob Herring" <robh@kernel.org>,
	"Lorenzo Pieralisi" <lorenzo.pieralisi@arm.com>,
	"Dave Jiang" <dave.jiang@intel.com>,
	linux-staging@lists.linux.dev, "Dexuan Cui" <decui@microsoft.com>,
	"Qinglang Miao" <miaoqinglang@huawei.com>,
	"Kishon Vijay Abraham I" <kishon@ti.com>,
	"Chen-Yu Tsai" <wens@csie.org>,
	linux-input@vger.kernel.org,
	"Matt Porter" <mporter@kernel.crashing.org>,
	"Allen Hubbe" <allenbh@gmail.com>, "Alex Dubov" <oakad@yahoo.com>,
	"Haiyang Zhang" <haiyangz@microsoft.com>,
	"Jiri Kosina" <jikos@kernel.org>,
	"Vladimir Zapolskiy" <vz@mleia.com>,
	"Ben Widawsky" <ben.widawsky@intel.com>,
	"Moritz Fischer" <mdf@kernel.org>,
	linux-cxl@vger.kernel.org, "Michael Buesch" <m@bues.ch>,
	"Dan Williams" <dan.j.williams@intel.com>,
	"Mauro Carvalho Chehab" <mchehab@kernel.org>,
	"Cristian Marussi" <cristian.marussi@arm.com>,
	"Thomas Bogendoerfer" <tsbogend@alpha.franken.de>,
	linux-parisc@vger.kernel.org,
	"Martyn Welch" <martyn@welchs.me.uk>,
	"Dmitry Torokhov" <dmitry.torokhov@gmail.com>,
	linux-mmc@vger.kernel.org, linux-sunxi@lists.linux.dev,
	"Stefan Richter" <stefanr@s5r6.in-berlin.de>,
	"Sudeep Holla" <sudeep.holla@arm.com>,
	"David S. Miller" <davem@davemloft.net>,
	"Sven Van Asbroeck" <TheSven73@gmail.com>,
	kvm@vger.kernel.org, "Michael S. Tsirkin" <mst@redhat.com>,
	linux-remoteproc@vger.kernel.org,
	"Maximilian Luz" <luzmaximilian@gmail.com>,
	"Bjorn Andersson" <bjorn.andersson@linaro.org>,
	"Kirti Wankhede" <kwankhede@nvidia.com>,
	"Andreas Noever" <andreas.noever@gmail.com>,
	linux-i3c@lists.infradead.org,
	linux1394-devel@lists.sourceforge.net,
	"Lee Jones" <lee.jones@linaro.org>,
	"Arnd Bergmann" <arnd@arndb.de>,
	linux-scsi@vger.kernel.org,
	"Vishal Verma" <vishal.l.verma@intel.com>,
	"Russell King" <linux@armlinux.org.uk>,
	"Thorsten Scherer" <t.scherer@eckelmann.de>,
	"Andy Gross" <agross@kernel.org>,
	linux-serial@vger.kernel.org, "Jakub Kicinski" <kuba@kernel.org>,
	"Michael Jamet" <michael.jamet@intel.com>,
	"Johan Hovold" <johan@kernel.org>,
	"Hans de Goede" <hdegoede@redhat.com>,
	"Hannes Reinecke" <hare@suse.de>,
	"Adrian Hunter" <adrian.hunter@intel.com>,
	"Johannes Berg" <johannes@sipsolutions.net>,
	"Juergen Gross" <jgross@suse.com>,
	netdev@vger.kernel.org, linux-mips@vger.kernel.org,
	"Alexandre Bounine" <alex.bou9@gmail.com>,
	"Vinod Koul" <vkoul@kernel.org>,
	"Mark Brown" <broonie@kernel.org>,
	"Marc Zyngier" <maz@kernel.org>,
	dmaengine@vger.kernel.org, linux-fpga@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH] bus: Make remove callback return void
Date: Tue, 6 Jul 2021 14:14:45 +0200	[thread overview]
Message-ID: <20210706121445.o3nxgi4bhzrw5w73@pengutronix.de> (raw)
In-Reply-To: <87mtqzhesu.fsf@redhat.com>

[-- Attachment #1: Type: text/plain, Size: 3533 bytes --]

On Tue, Jul 06, 2021 at 01:17:37PM +0200, Cornelia Huck wrote:
> On Tue, Jul 06 2021, Cornelia Huck <cohuck@redhat.com> wrote:
> 
> > On Tue, Jul 06 2021, 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.
> >
> > Yay!
> >
> >>
> >> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> >> ---
> >> 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-koenig@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/ |

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
To: Cornelia Huck <cohuck@redhat.com>
Cc: "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	nvdimm@lists.linux.dev, "Alexey Kardashevskiy" <aik@ozlabs.ru>,
	"Benjamin Herrenschmidt" <benh@kernel.crashing.org>,
	"Samuel Iglesias Gonsalvez" <siglesias@igalia.com>,
	"Jens Taprogge" <jens.taprogge@taprogge.org>,
	"Ulf Hansson" <ulf.hansson@linaro.org>,
	"Jaroslav Kysela" <perex@perex.cz>,
	"Benjamin Tissoires" <benjamin.tissoires@redhat.com>,
	"Paul Mackerras" <paulus@samba.org>,
	"Srinivas Pandruvada" <srinivas.pandruvada@linux.intel.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	"Mike Christie" <michael.christie@oracle.com>,
	"Wei Liu" <wei.liu@kernel.org>,
	"Maxim Levitsky" <maximlevitsky@gmail.com>,
	"Samuel Holland" <samuel@sholland.org>,
	"Michael Ellerman" <mpe@ellerman.id.au>,
	linux-acpi@vger.kernel.org, linux-pci@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	"Tomas Winkler" <tomas.winkler@intel.com>,
	"Julien Grall" <jgrall@amazon.com>,
	"Ohad Ben-Cohen" <ohad@wizery.com>,
	"Alex Williamson" <alex.williamson@redhat.com>,
	"Alex Elder" <elder@kernel.org>,
	linux-parisc@vger.kernel.org,
	"Geoff Levand" <geoff@infradead.org>,
	linux-fpga@vger.kernel.org, linux-usb@vger.kernel.org,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	linux-kernel@vger.kernel.org, linux-spi@vger.kernel.org,
	"Thorsten Scherer" <t.scherer@eckelmann.de>,
	kernel@pengutronix.de, "Jon Mason" <jdmason@kudzu.us>,
	linux-ntb@googlegroups.com, "Wu Hao" <hao.wu@intel.com>,
	"David Woodhouse" <dwmw@amazon.co.uk>,
	"Krzysztof Wilczyński" <kw@linux.com>,
	"Alexandre Belloni" <alexandre.belloni@bootlin.com>,
	"Manohar Vanga" <manohar.vanga@gmail.com>,
	linux-wireless@vger.kernel.org,
	"Dominik Brodowski" <linux@dominikbrodowski.net>,
	virtualization@lists.linux-foundation.org,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	target-devel@vger.kernel.org,
	"Srinivas Kandagatla" <srinivas.kandagatla@linaro.org>,
	linux-i2c@vger.kernel.org,
	"Kai-Heng Feng" <kai.heng.feng@canonical.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>,
	"Stephen Hemminger" <sthemmin@microsoft.com>,
	"Ira Weiny" <ira.weiny@intel.com>, "Helge Deller" <deller@gmx.de>,
	"Rafał Miłecki" <zajec5@gmail.com>,
	industrypack-devel@lists.sourceforge.net,
	linux-mips@vger.kernel.org, "Len Brown" <lenb@kernel.org>,
	alsa-devel@alsa-project.org, linux-arm-msm@vger.kernel.org,
	linux-media@vger.kernel.org, "Maxime Ripard" <mripard@kernel.org>,
	"Johan Hovold" <johan@kernel.org>,
	greybus-dev@lists.linaro.org,
	"Bjorn Helgaas" <bhelgaas@google.com>,
	"Dave Jiang" <dave.jiang@intel.com>,
	"Boris Ostrovsky" <boris.ostrovsky@oracle.com>,
	"Mika Westerberg" <mika.westerberg@linux.intel.com>,
	linux-arm-kernel@lists.infradead.org,
	"Johannes Thumshirn" <morbidrsa@gmail.com>,
	"Mathieu Poirier" <mathieu.poirier@linaro.org>,
	"Stephen Boyd" <sboyd@kernel.org>,
	"Wolfram Sang" <wsa@kernel.org>,
	"Joey Pabalan" <jpabalanb@gmail.com>,
	"Yehezkel Bernat" <YehezkelShB@gmail.com>,
	"Pali Rohár" <pali@kernel.org>,
	"Bodo Stroesser" <bostroesser@gmail.com>,
	"Alison Schofield" <alison.schofield@intel.com>,
	"Heikki Krogerus" <heikki.krogerus@linux.intel.com>,
	"Tyrel Datwyler" <tyreld@linux.ibm.com>,
	"Alexander Shishkin" <alexander.shishkin@linux.intel.com>,
	"Tom Rix" <trix@redhat.com>, "Jason Wang" <jasowang@redhat.com>,
	"SeongJae Park" <sjpark@amazon.de>,
	linux-hyperv@vger.kernel.org,
	platform-driver-x86@vger.kernel.org,
	"Frank Li" <lznuaa@gmail.com>,
	netdev@vger.kernel.org, "Qinglang Miao" <miaoqinglang@huawei.com>,
	"Jiri Slaby" <jirislaby@kernel.org>,
	"Rob Herring" <robh@kernel.org>,
	"Lorenzo Pieralisi" <lorenzo.pieralisi@arm.com>,
	"Mark Gross" <mgross@linux.intel.com>,
	linux-staging@lists.linux.dev, "Dexuan Cui" <decui@microsoft.com>,
	"Jernej Skrabec" <jernej.skrabec@gmail.com>,
	"Kishon Vijay Abraham I" <kishon@ti.com>,
	"Chen-Yu Tsai" <wens@csie.org>,
	linux-input@vger.kernel.org,
	"Matt Porter" <mporter@kernel.crashing.org>,
	"Allen Hubbe" <allenbh@gmail.com>, "Alex Dubov" <oakad@yahoo.com>,
	"Haiyang Zhang" <haiyangz@microsoft.com>,
	"Jiri Kosina" <jikos@kernel.org>,
	"Vladimir Zapolskiy" <vz@mleia.com>,
	"Ben Widawsky" <ben.widawsky@intel.com>,
	"Moritz Fischer" <mdf@kernel.org>,
	linux-cxl@vger.kernel.org, "Michael Buesch" <m@bues.ch>,
	"Dan Williams" <dan.j.williams@intel.com>,
	"Mauro Carvalho Chehab" <mchehab@kernel.org>,
	"Cristian Marussi" <cristian.marussi@arm.com>,
	"Thomas Bogendoerfer" <tsbogend@alpha.franken.de>,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	"Martyn Welch" <martyn@welchs.me.uk>,
	"Dmitry Torokhov" <dmitry.torokhov@gmail.com>,
	linux-mmc@vger.kernel.org, linux-sunxi@lists.linux.dev,
	"Stefan Richter" <stefanr@s5r6.in-berlin.de>,
	"Sudeep Holla" <sudeep.holla@arm.com>,
	"David S. Miller" <davem@davemloft.net>,
	"Sven Van Asbroeck" <TheSven73@gmail.com>,
	kvm@vger.kernel.org, "Michael S. Tsirkin" <mst@redhat.com>,
	linux-remoteproc@vger.kernel.org,
	"Bjorn Andersson" <bjorn.andersson@linaro.org>,
	"Kirti Wankhede" <kwankhede@nvidia.com>,
	"Andreas Noever" <andreas.noever@gmail.com>,
	linux-i3c@lists.infradead.org,
	linux1394-devel@lists.sourceforge.net,
	"Lee Jones" <lee.jones@linaro.org>,
	"Arnd Bergmann" <arnd@arndb.de>,
	linux-scsi@vger.kernel.org,
	"Vishal Verma" <vishal.l.verma@intel.com>,
	"Russell King" <linux@armlinux.org.uk>,
	"Andy Gross" <agross@kernel.org>,
	linux-serial@vger.kernel.org, "Jakub Kicinski" <kuba@kernel.org>,
	"Michael Jamet" <michael.jamet@intel.com>,
	"William Breathitt Gray" <vilhelm.gray@gmail.com>,
	"Hans de Goede" <hdegoede@redhat.com>,
	"Hannes Reinecke" <hare@suse.de>,
	"Adrian Hunter" <adrian.hunter@intel.com>,
	"Juergen Gross" <jgross@suse.com>,
	linuxppc-dev@lists.ozlabs.org, "Takashi Iwai" <tiwai@suse.com>,
	"Alexandre Bounine" <alex.bou9@gmail.com>,
	"Vinod Koul" <vkoul@kernel.org>,
	"Mark Brown" <broonie@kernel.org>,
	"Marc Zyngier" <maz@kernel.org>,
	dmaengine@vger.kernel.org,
	"Johannes Berg" <johannes@sipsolutions.net>,
	"Maximilian Luz" <luzmaximilian@gmail.com>
Subject: Re: [PATCH] bus: Make remove callback return void
Date: Tue, 6 Jul 2021 14:14:45 +0200	[thread overview]
Message-ID: <20210706121445.o3nxgi4bhzrw5w73@pengutronix.de> (raw)
In-Reply-To: <87mtqzhesu.fsf@redhat.com>


[-- Attachment #1.1: Type: text/plain, Size: 3533 bytes --]

On Tue, Jul 06, 2021 at 01:17:37PM +0200, Cornelia Huck wrote:
> On Tue, Jul 06 2021, Cornelia Huck <cohuck@redhat.com> wrote:
> 
> > On Tue, Jul 06 2021, 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.
> >
> > Yay!
> >
> >>
> >> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> >> ---
> >> 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-koenig@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/ |

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

[-- Attachment #2: Type: text/plain, Size: 111 bytes --]

-- 
linux-i3c mailing list
linux-i3c@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-i3c

  reply	other threads:[~2021-07-06 12:44 UTC|newest]

Thread overview: 104+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-06  9:50 [PATCH] bus: Make remove callback return void Uwe Kleine-König
2021-07-06  9:50 ` Uwe Kleine-König
2021-07-06  9:50 ` Uwe Kleine-König
2021-07-06  9:50 ` Uwe Kleine-König
2021-07-06  9:56 ` Russell King (Oracle)
2021-07-06  9:56   ` Russell King (Oracle)
2021-07-06  9:56   ` Russell King (Oracle)
2021-07-06  9:56   ` Russell King (Oracle)
2021-07-06  9:56   ` Russell King (Oracle)
2021-07-06  9:56   ` Russell King (Oracle)
2021-07-06 10:21 ` Mark Brown
2021-07-06 10:21   ` Mark Brown
2021-07-06 10:21   ` Mark Brown
2021-07-06 10:21   ` Mark Brown
2021-07-06 10:21   ` Mark Brown
2021-07-06 10:24 ` Chen-Yu Tsai
2021-07-06 10:24   ` Chen-Yu Tsai
2021-07-06 10:24   ` Chen-Yu Tsai
2021-07-06 10:24   ` Chen-Yu Tsai
2021-07-06 10:25 ` Pali Rohár
2021-07-06 10:25   ` Pali Rohár
2021-07-06 10:25   ` Pali Rohár
2021-07-06 10:25   ` Pali Rohár
2021-07-06 10:26 ` Mauro Carvalho Chehab
2021-07-06 10:26   ` Mauro Carvalho Chehab
2021-07-06 10:26   ` Mauro Carvalho Chehab
2021-07-06 10:26   ` Mauro Carvalho Chehab
2021-07-06 10:28 ` Hans de Goede
2021-07-06 10:35 ` Lee Jones
2021-07-06 10:35   ` Lee Jones
2021-07-06 10:35   ` Lee Jones
2021-07-06 10:35   ` Lee Jones
2021-07-06 10:35   ` Lee Jones
2021-07-06 10:35   ` Lee Jones
2021-07-06 10:47   ` Johannes Thumshirn
2021-07-06 10:47     ` Johannes Thumshirn
2021-07-06 10:47     ` Johannes Thumshirn
2021-07-06 10:47     ` Johannes Thumshirn
2021-07-06 10:47     ` Johannes Thumshirn
2021-07-06 10:43 ` Alexandre Belloni
2021-07-06 10:43   ` Alexandre Belloni
2021-07-06 10:43   ` Alexandre Belloni
2021-07-06 10:43   ` Alexandre Belloni
2021-07-06 10:43   ` Alexandre Belloni
2021-07-06 10:43   ` Alexandre Belloni
2021-07-06 10:45 ` Vinod Koul
2021-07-06 10:45   ` Vinod Koul
2021-07-06 10:45   ` Vinod Koul
2021-07-06 10:45   ` Vinod Koul
2021-07-06 10:45   ` Vinod Koul
2021-07-06 10:46 ` Juergen Gross
2021-07-06 10:46   ` Juergen Gross
2021-07-06 10:46   ` Juergen Gross
2021-07-06 10:46   ` Juergen Gross
2021-07-06 10:46   ` Juergen Gross via Virtualization
2021-07-06 10:49 ` Johan Hovold
2021-07-06 10:49   ` Johan Hovold
2021-07-06 10:49   ` Johan Hovold
2021-07-06 10:49   ` Johan Hovold
2021-07-06 10:56 ` Srinivas Kandagatla
2021-07-06 10:57 ` Cornelia Huck
2021-07-06 10:57   ` Cornelia Huck
2021-07-06 10:57   ` Cornelia Huck
2021-07-06 10:57   ` Cornelia Huck
2021-07-06 10:57   ` Cornelia Huck
2021-07-06 11:17   ` Cornelia Huck
2021-07-06 11:17     ` Cornelia Huck
2021-07-06 11:17     ` Cornelia Huck
2021-07-06 11:17     ` Cornelia Huck
2021-07-06 11:17     ` Cornelia Huck
2021-07-06 12:14     ` Uwe Kleine-König [this message]
2021-07-06 12:14       ` Uwe Kleine-König
2021-07-06 12:14       ` Uwe Kleine-König
2021-07-06 12:14       ` Uwe Kleine-König
2021-07-06 11:16 ` Kirti Wankhede
2021-07-06 11:16   ` Kirti Wankhede
2021-07-06 11:16   ` Kirti Wankhede
2021-07-06 11:16   ` Kirti Wankhede
2021-07-06 11:41 ` Heikki Krogerus
2021-07-06 11:41   ` Heikki Krogerus
2021-07-06 11:41   ` Heikki Krogerus
2021-07-06 12:50   ` Samuel Iglesias Gonsálvez
2021-07-06 11:42 ` Maximilian Luz
2021-07-06 11:42   ` Maximilian Luz
2021-07-06 11:42   ` Maximilian Luz
2021-07-06 13:52 ` Tom Rix
2021-07-08  2:19   ` Xu Yilun
2021-07-08  5:32     ` Uwe Kleine-König
2021-07-06 14:51 ` Geoff Levand
2021-07-06 14:51   ` Geoff Levand
2021-07-06 14:51   ` Geoff Levand
2021-07-06 14:51   ` Geoff Levand
2021-07-06 15:06 ` Yehezkel Bernat
2021-07-06 15:06   ` Yehezkel Bernat
2021-07-06 15:06   ` Yehezkel Bernat
2021-07-06 15:06   ` Yehezkel Bernat
2021-07-06 15:11 ` Mathieu Poirier
2021-07-06 15:11   ` Mathieu Poirier
2021-07-06 15:11   ` Mathieu Poirier
2021-07-06 15:11   ` Mathieu Poirier
2021-07-06 15:11 ` Alexander Shishkin
2021-07-06 15:11   ` Alexander Shishkin
2021-07-06 15:11   ` Alexander Shishkin
2021-07-06 15:11   ` Alexander Shishkin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210706121445.o3nxgi4bhzrw5w73@pengutronix.de \
    --to=u.kleine-koenig@pengutronix.de \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=TheSven73@gmail.com \
    --cc=YehezkelShB@gmail.com \
    --cc=adrian.hunter@intel.com \
    --cc=agross@kernel.org \
    --cc=aik@ozlabs.ru \
    --cc=alex.bou9@gmail.com \
    --cc=alex.williamson@redhat.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=alexandre.belloni@bootlin.com \
    --cc=alison.schofield@intel.com \
    --cc=allenbh@gmail.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=andreas.noever@gmail.com \
    --cc=arnd@arndb.de \
    --cc=ben.widawsky@intel.com \
    --cc=benh@kernel.crashing.org \
    --cc=benjamin.tissoires@redhat.com \
    --cc=bhelgaas@google.com \
    --cc=bjorn.andersson@linaro.org \
    --cc=boris.ostrovsky@oracle.com \
    --cc=bostroesser@gmail.com \
    --cc=broonie@kernel.org \
    --cc=cohuck@redhat.com \
    --cc=cristian.marussi@arm.com \
    --cc=dan.j.williams@intel.com \
    --cc=dave.jiang@intel.com \
    --cc=davem@davemloft.net \
    --cc=decui@microsoft.com \
    --cc=deller@gmx.de \
    --cc=dmaengine@vger.kernel.org \
    --cc=dmitry.torokhov@gmail.com \
    --cc=dwmw@amazon.co.uk \
    --cc=elder@kernel.org \
    --cc=geoff@infradead.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=greybus-dev@lists.linaro.org \
    --cc=haiyangz@microsoft.com \
    --cc=hao.wu@intel.com \
    --cc=hare@suse.de \
    --cc=hdegoede@redhat.com \
    --cc=heikki.krogerus@linux.intel.com \
    --cc=industrypack-devel@lists.sourceforge.net \
    --cc=ira.weiny@intel.com \
    --cc=jasowang@redhat.com \
    --cc=jdmason@kudzu.us \
    --cc=jens.taprogge@taprogge.org \
    --cc=jernej.skrabec@gmail.com \
    --cc=jgrall@amazon.com \
    --cc=jgross@suse.com \
    --cc=jikos@kernel.org \
    --cc=jirislaby@kernel.org \
    --cc=johan@kernel.org \
    --cc=johannes@sipsolutions.net \
    --cc=jpabalanb@gmail.com \
    --cc=kai.heng.feng@canonical.com \
    --cc=kernel@pengutronix.de \
    --cc=kishon@ti.com \
    --cc=kuba@kernel.org \
    --cc=kvm@vger.kernel.org \
    --cc=kw@linux.com \
    --cc=kwankhede@nvidia.com \
    --cc=kys@microsoft.com \
    --cc=lee.jones@linaro.org \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-cxl@vger.kernel.org \
    --cc=linux-fpga@vger.kernel.org \
    --cc=linux-hyperv@vger.kernel.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-i3c@lists.infradead.org \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=linux-ntb@googlegroups.com \
    --cc=linux-parisc@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux-remoteproc@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=linux-spi@vger.kernel.org \
    --cc=linux-staging@lists.linux.dev \
    --cc=linux-sunxi@lists.linux.dev \
    --cc=linux-usb@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linux1394-devel@lists.sourceforge.net \
    --cc=linux@armlinux.org.uk \
    --cc=linux@dominikbrodowski.net \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=luzmaximilian@gmail.com \
    --cc=lznuaa@gmail.com \
    --cc=m@bues.ch \
    --cc=manohar.vanga@gmail.com \
    --cc=martin.petersen@oracle.com \
    --cc=martyn@welchs.me.uk \
    --cc=mathieu.poirier@linaro.org \
    --cc=maximlevitsky@gmail.com \
    --cc=maz@kernel.org \
    --cc=mchehab@kernel.org \
    --cc=mdf@kernel.org \
    --cc=mgross@linux.intel.com \
    --cc=miaoqinglang@huawei.com \
    --cc=michael.christie@oracle.com \
    --cc=michael.jamet@intel.com \
    --cc=mika.westerberg@linux.intel.com \
    --cc=morbidrsa@gmail.com \
    --cc=mpe@ellerman.id.au \
    --cc=mporter@kernel.crashing.org \
    --cc=mripard@kernel.org \
    --cc=mst@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=nvdimm@lists.linux.dev \
    --cc=oakad@yahoo.com \
    --cc=ohad@wizery.com \
    --cc=pali@kernel.org \
    --cc=paulus@samba.org \
    --cc=perex@perex.cz \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=rjw@rjwysocki.net \
    --cc=robh@kernel.org \
    --cc=samuel@sholland.org \
    --cc=sboyd@kernel.org \
    --cc=siglesias@igalia.com \
    --cc=sjpark@amazon.de \
    --cc=srinivas.kandagatla@linaro.org \
    --cc=srinivas.pandruvada@linux.intel.com \
    --cc=sstabellini@kernel.org \
    --cc=stefanr@s5r6.in-berlin.de \
    --cc=sthemmin@microsoft.com \
    --cc=sudeep.holla@arm.com \
    --cc=t.scherer@eckelmann.de \
    --cc=target-devel@vger.kernel.org \
    --cc=tiwai@suse.com \
    --cc=tomas.winkler@intel.com \
    --cc=trix@redhat.com \
    --cc=tsbogend@alpha.franken.de \
    --cc=tyreld@linux.ibm.com \
    --cc=ulf.hansson@linaro.org \
    --cc=vilhelm.gray@gmail.com \
    --cc=virtualization@lists.linux-foundation.org \
    --cc=vishal.l.verma@intel.com \
    --cc=vkoul@kernel.org \
    --cc=vz@mleia.com \
    --cc=wei.liu@kernel.org \
    --cc=wens@csie.org \
    --cc=wsa@kernel.org \
    --cc=xen-devel@lists.xenproject.org \
    --cc=zajec5@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.