Hello Bjorn, On Mon, May 10, 2021 at 09:26:37PM +0200, Uwe Kleine-König wrote: > On 2/23/21 10:07 AM, Uwe Kleine-König wrote: > > The driver core ignores the return value of pci_epf_device_remove() > > (because there is only little it can do when a device disappears) and > > there are no pci_epf_drivers with a remove callback. > > > > So make it impossible for future drivers to return an unused error code > > by changing the remove prototype to return void. > > > > The real motivation for this change is the quest to make struct > > bus_type::remove return void, too. > > > > Signed-off-by: Uwe Kleine-König > > Ping! This patch now waits for more than 2 months on feedback (or > application). The 5.13 merge window just closed, this is a great opportunity > to apply this patch for next. It seems I don't get feedback from Kishon and Lorenzo. This is one of the last patches I need to actually change bus_type::remove. Would you be willing to take the patch without them reacting? Or do you have a way to trigger them that is more effective than I have? Best regards Uwe > > --- > > drivers/pci/endpoint/pci-epf-core.c | 5 ++--- > > include/linux/pci-epf.h | 2 +- > > 2 files changed, 3 insertions(+), 4 deletions(-) > > > > diff --git a/drivers/pci/endpoint/pci-epf-core.c b/drivers/pci/endpoint/pci-epf-core.c > > index 7646c8660d42..a19c375f9ec9 100644 > > --- a/drivers/pci/endpoint/pci-epf-core.c > > +++ b/drivers/pci/endpoint/pci-epf-core.c > > @@ -389,15 +389,14 @@ static int pci_epf_device_probe(struct device *dev) > > static int pci_epf_device_remove(struct device *dev) > > { > > - int ret = 0; > > struct pci_epf *epf = to_pci_epf(dev); > > struct pci_epf_driver *driver = to_pci_epf_driver(dev->driver); > > if (driver->remove) > > - ret = driver->remove(epf); > > + driver->remove(epf); > > epf->driver = NULL; > > - return ret; > > + return 0; > > } > > static struct bus_type pci_epf_bus_type = { > > diff --git a/include/linux/pci-epf.h b/include/linux/pci-epf.h > > index 6833e2160ef1..f8a17b6b1d31 100644 > > --- a/include/linux/pci-epf.h > > +++ b/include/linux/pci-epf.h > > @@ -85,7 +85,7 @@ struct pci_epf_ops { > > */ > > struct pci_epf_driver { > > int (*probe)(struct pci_epf *epf); > > - int (*remove)(struct pci_epf *epf); > > + void (*remove)(struct pci_epf *epf); > > struct device_driver driver; > > struct pci_epf_ops *ops; > > > > -- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | https://www.pengutronix.de/ |