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

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;
 	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)


WARNING: multiple messages have this Message-ID (diff)
From: Cornelia Huck <cohuck@redhat.com>
To: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>
Cc: nvdimm@lists.linux.dev,
	"Benjamin Herrenschmidt" <benh@kernel.crashing.org>,
	"Samuel Iglesias Gonsalvez" <siglesias@igalia.com>,
	"Jens Taprogge" <jens.taprogge@taprogge.org>,
	"Jaroslav Kysela" <perex@perex.cz>,
	"Benjamin Tissoires" <benjamin.tissoires@redhat.com>,
	"Paul Mackerras" <paulus@samba.org>,
	"Srinivas Pandruvada" <srinivas.pandruvada@linux.intel.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 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>, "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>,
	"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, 06 Jul 2021 13:17:37 +0200	[thread overview]
Message-ID: <87mtqzhesu.fsf@redhat.com> (raw)
In-Reply-To: <87pmvvhfqq.fsf@redhat.com>

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;
 	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)

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

WARNING: multiple messages have this Message-ID (diff)
From: Cornelia Huck <cohuck@redhat.com>
To: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>
Cc: nvdimm@lists.linux.dev, "Alexey Kardashevskiy" <aik@ozlabs.ru>,
	"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>,
	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, "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, 06 Jul 2021 13:17:37 +0200	[thread overview]
Message-ID: <87mtqzhesu.fsf@redhat.com> (raw)
In-Reply-To: <87pmvvhfqq.fsf@redhat.com>

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;
 	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)


WARNING: multiple messages have this Message-ID (diff)
From: Cornelia Huck <cohuck@redhat.com>
To: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>
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>,
	"Ulf Hansson" <ulf.hansson@linaro.org>,
	"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, 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, 06 Jul 2021 13:17:37 +0200	[thread overview]
Message-ID: <87mtqzhesu.fsf@redhat.com> (raw)
In-Reply-To: <87pmvvhfqq.fsf@redhat.com>

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;
 	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)


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

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;
 	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)


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

  reply	other threads:[~2021-07-06 11:24 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 [this message]
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
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=87mtqzhesu.fsf@redhat.com \
    --to=cohuck@redhat.com \
    --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=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=u.kleine-koenig@pengutronix.de \
    --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.