Re: [PATCH] video: fbdev: arkfb: fix possible object reference leak

From: Daniel Vetter
Date: Tue Oct 10 2023 - 07:46:06 EST


On Fri, Oct 06, 2023 at 04:34:01PM +0200, Ondrej Zary wrote:
> On Friday 06 October 2023, Helge Deller wrote:
> > On 10/5/23 09:01, Zhang Shurong wrote:
> > > Add missing pci_disable_device() in error path in ark_pci_probe().
> >
> > Do you have this hardware and tested your patch?
> > I'm sure there is a reason, why "pci_disable_device()" was commented
> > out in the original submission in commit 681e14730c73c...
>
> pci_disable_device() call is disabled in many fbdev drivers because
> calling it might prevent display from working.

Yeah I've recently hit some _really_ interesting regression report where
essentially fbdev driver and vgacon where managing the hardware
collaboratively. There's enormous amounts of "this shouldn't work like
that, but it is how it does" going on in old fbdev drivers, and what you
brought up is also what I immediately thought of.

This patch feels way too risky to me that we should apply it ...
-Sima

>
> >
> > Additionally I'm wondering why your patch doesn't show up in
> > the fbdev patchwork, although you added linux-fbdev mailing list.
> > Probably a vger issue.
> >
> > Helge
> >
> >
> > > Signed-off-by: Zhang Shurong <zhang_shurong@xxxxxxxxxxx>
> > > ---
> > > drivers/video/fbdev/arkfb.c | 4 ++--
> > > 1 file changed, 2 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/drivers/video/fbdev/arkfb.c b/drivers/video/fbdev/arkfb.c
> > > index 60a96fdb5dd8..6c4e5065646f 100644
> > > --- a/drivers/video/fbdev/arkfb.c
> > > +++ b/drivers/video/fbdev/arkfb.c
> > > @@ -1064,7 +1064,7 @@ static int ark_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
> > > err_dac:
> > > pci_release_regions(dev);
> > > err_request_regions:
> > > -/* pci_disable_device(dev); */
> > > + pci_disable_device(dev);
> > > err_enable_device:
> > > framebuffer_release(info);
> > > return rc;
> > > @@ -1085,7 +1085,7 @@ static void ark_pci_remove(struct pci_dev *dev)
> > >
> > > pci_iounmap(dev, info->screen_base);
> > > pci_release_regions(dev);
> > > -/* pci_disable_device(dev); */
> > > + pci_disable_device(dev);
> > >
> > > framebuffer_release(info);
> > > }
> >
> >
>
>
>
> --
> Ondrej Zary

--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch