linux-cxl.vger.kernel.org archive mirror
 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)


  reply	other threads:[~2021-07-06 11:19 UTC|newest]

Thread overview: 21+ 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:56 ` Russell King (Oracle)
2021-07-06 10:21 ` Mark Brown
2021-07-06 10:24 ` Chen-Yu Tsai
2021-07-06 10:25 ` Pali Rohár
2021-07-06 10:26 ` Mauro Carvalho Chehab
2021-07-06 10:35 ` Lee Jones
2021-07-06 10:47   ` Johannes Thumshirn
2021-07-06 10:43 ` Alexandre Belloni
2021-07-06 10:45 ` Vinod Koul
2021-07-06 10:46 ` Juergen Gross
2021-07-06 10:49 ` Johan Hovold
2021-07-06 10:57 ` Cornelia Huck
2021-07-06 11:17   ` Cornelia Huck [this message]
2021-07-06 12:14     ` Uwe Kleine-König
2021-07-06 11:16 ` Kirti Wankhede
2021-07-06 11:42 ` Maximilian Luz
2021-07-06 14:51 ` Geoff Levand
2021-07-06 15:06 ` Yehezkel Bernat
2021-07-06 15:11 ` Mathieu Poirier
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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).