Re: [PATCH] PCI: endpoint: Make struct pci_epf_driver::remove return void

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <u.kleine-koenig@xxxxxxxxxxxxxx>
> 
> 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/ |

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux