2020-04-21 16:47:16

by Dejin Zheng

[permalink] [raw]
Subject: [PATCH v1] drm/bochs: fix an issue of ioremap() leak

It forgot to call bochs_hw_fini() to release related resources when
bochs_pci_probe() fail. eg: io virtual address get by ioremap().

Fixes: 81da8c3b8d3df6 ("drm/bochs: add drm_driver.release callback.")
CC: Andy Shevchenko <[email protected]>
Signed-off-by: Dejin Zheng <[email protected]>
---
drivers/gpu/drm/bochs/bochs_drv.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/bochs/bochs_drv.c b/drivers/gpu/drm/bochs/bochs_drv.c
index addb0568c1af..210a60135c8a 100644
--- a/drivers/gpu/drm/bochs/bochs_drv.c
+++ b/drivers/gpu/drm/bochs/bochs_drv.c
@@ -138,6 +138,7 @@ static int bochs_pci_probe(struct pci_dev *pdev,
return ret;

err_unload:
+ bochs_hw_fini(dev);
bochs_unload(dev);
err_free_dev:
drm_dev_put(dev);
--
2.25.0


2020-04-21 17:29:04

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH v1] drm/bochs: fix an issue of ioremap() leak

On Tue, Apr 21, 2020 at 7:45 PM Dejin Zheng <[email protected]> wrote:
>
> It forgot to call bochs_hw_fini() to release related resources when
> bochs_pci_probe() fail. eg: io virtual address get by ioremap().

Good start, although I think the best is to switch this driver to use
pcim_*() functions and drop tons of legacy code.

> Fixes: 81da8c3b8d3df6 ("drm/bochs: add drm_driver.release callback.")
> CC: Andy Shevchenko <[email protected]>
> Signed-off-by: Dejin Zheng <[email protected]>
> ---
> drivers/gpu/drm/bochs/bochs_drv.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpu/drm/bochs/bochs_drv.c b/drivers/gpu/drm/bochs/bochs_drv.c
> index addb0568c1af..210a60135c8a 100644
> --- a/drivers/gpu/drm/bochs/bochs_drv.c
> +++ b/drivers/gpu/drm/bochs/bochs_drv.c
> @@ -138,6 +138,7 @@ static int bochs_pci_probe(struct pci_dev *pdev,
> return ret;
>
> err_unload:
> + bochs_hw_fini(dev);
> bochs_unload(dev);
> err_free_dev:
> drm_dev_put(dev);
> --
> 2.25.0
>


--
With Best Regards,
Andy Shevchenko

2020-04-22 13:54:43

by Dejin Zheng

[permalink] [raw]
Subject: Re: [PATCH v1] drm/bochs: fix an issue of ioremap() leak

On Tue, Apr 21, 2020 at 08:24:24PM +0300, Andy Shevchenko wrote:
> On Tue, Apr 21, 2020 at 7:45 PM Dejin Zheng <[email protected]> wrote:
> >
> > It forgot to call bochs_hw_fini() to release related resources when
> > bochs_pci_probe() fail. eg: io virtual address get by ioremap().
>
> Good start, although I think the best is to switch this driver to use
> pcim_*() functions and drop tons of legacy code.
>
Andy, thanks for your encouragement, I think we might be able to fix this
issue first, after that, drop tons of legacy code by pcim_*() functions.
Do you think it is ok?

BR,
Dejin

> > Fixes: 81da8c3b8d3df6 ("drm/bochs: add drm_driver.release callback.")
> > CC: Andy Shevchenko <[email protected]>
> > Signed-off-by: Dejin Zheng <[email protected]>
> > ---
> > drivers/gpu/drm/bochs/bochs_drv.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/drivers/gpu/drm/bochs/bochs_drv.c b/drivers/gpu/drm/bochs/bochs_drv.c
> > index addb0568c1af..210a60135c8a 100644
> > --- a/drivers/gpu/drm/bochs/bochs_drv.c
> > +++ b/drivers/gpu/drm/bochs/bochs_drv.c
> > @@ -138,6 +138,7 @@ static int bochs_pci_probe(struct pci_dev *pdev,
> > return ret;
> >
> > err_unload:
> > + bochs_hw_fini(dev);
> > bochs_unload(dev);
> > err_free_dev:
> > drm_dev_put(dev);
> > --
> > 2.25.0
> >
>
>
> --
> With Best Regards,
> Andy Shevchenko

2020-04-22 14:43:58

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH v1] drm/bochs: fix an issue of ioremap() leak

On Wed, Apr 22, 2020 at 4:52 PM Dejin Zheng <[email protected]> wrote:
>
> On Tue, Apr 21, 2020 at 08:24:24PM +0300, Andy Shevchenko wrote:
> > On Tue, Apr 21, 2020 at 7:45 PM Dejin Zheng <[email protected]> wrote:
> > >
> > > It forgot to call bochs_hw_fini() to release related resources when
> > > bochs_pci_probe() fail. eg: io virtual address get by ioremap().
> >
> > Good start, although I think the best is to switch this driver to use
> > pcim_*() functions and drop tons of legacy code.
> >
> Andy, thanks for your encouragement, I think we might be able to fix this
> issue first, after that, drop tons of legacy code by pcim_*() functions.
> Do you think it is ok?

It's really up to maintainer. I'm not the one here.

> > > Fixes: 81da8c3b8d3df6 ("drm/bochs: add drm_driver.release callback.")
> > > CC: Andy Shevchenko <[email protected]>
> > > Signed-off-by: Dejin Zheng <[email protected]>
> > > ---
> > > drivers/gpu/drm/bochs/bochs_drv.c | 1 +
> > > 1 file changed, 1 insertion(+)
> > >
> > > diff --git a/drivers/gpu/drm/bochs/bochs_drv.c b/drivers/gpu/drm/bochs/bochs_drv.c
> > > index addb0568c1af..210a60135c8a 100644
> > > --- a/drivers/gpu/drm/bochs/bochs_drv.c
> > > +++ b/drivers/gpu/drm/bochs/bochs_drv.c
> > > @@ -138,6 +138,7 @@ static int bochs_pci_probe(struct pci_dev *pdev,
> > > return ret;
> > >
> > > err_unload:
> > > + bochs_hw_fini(dev);
> > > bochs_unload(dev);
> > > err_free_dev:
> > > drm_dev_put(dev);
> > > --
> > > 2.25.0
> > >
> >
> >
> > --
> > With Best Regards,
> > Andy Shevchenko



--
With Best Regards,
Andy Shevchenko

2020-04-22 15:23:58

by Dejin Zheng

[permalink] [raw]
Subject: Re: [PATCH v1] drm/bochs: fix an issue of ioremap() leak

On Wed, Apr 22, 2020 at 05:40:51PM +0300, Andy Shevchenko wrote:
> On Wed, Apr 22, 2020 at 4:52 PM Dejin Zheng <[email protected]> wrote:
> >
> > On Tue, Apr 21, 2020 at 08:24:24PM +0300, Andy Shevchenko wrote:
> > > On Tue, Apr 21, 2020 at 7:45 PM Dejin Zheng <[email protected]> wrote:
> > > >
> > > > It forgot to call bochs_hw_fini() to release related resources when
> > > > bochs_pci_probe() fail. eg: io virtual address get by ioremap().
> > >
> > > Good start, although I think the best is to switch this driver to use
> > > pcim_*() functions and drop tons of legacy code.
> > >
> > Andy, thanks for your encouragement, I think we might be able to fix this
> > issue first, after that, drop tons of legacy code by pcim_*() functions.
> > Do you think it is ok?
>
> It's really up to maintainer. I'm not the one here.
>
Thanks Andy.

Hi Gerd:

I am a newbie, andy gave me some directions to submit the patch, eg: check
ioremap leak. At this time, I found that the bochs driver may have similar
problems, so I submitted this patch, then, Andy said the best is to switch
this driver to use pcim _ * () functions and drop tons of legacy code.
I think we might be able to fix this issue first, after that, drop tons
of legacy code by pcim_*() functions. Can you give me some suggestions?
thank you very much!

BR,
Dejin

> > > > Fixes: 81da8c3b8d3df6 ("drm/bochs: add drm_driver.release callback.")
> > > > CC: Andy Shevchenko <[email protected]>
> > > > Signed-off-by: Dejin Zheng <[email protected]>
> > > > ---
> > > > drivers/gpu/drm/bochs/bochs_drv.c | 1 +
> > > > 1 file changed, 1 insertion(+)
> > > >
> > > > diff --git a/drivers/gpu/drm/bochs/bochs_drv.c b/drivers/gpu/drm/bochs/bochs_drv.c
> > > > index addb0568c1af..210a60135c8a 100644
> > > > --- a/drivers/gpu/drm/bochs/bochs_drv.c
> > > > +++ b/drivers/gpu/drm/bochs/bochs_drv.c
> > > > @@ -138,6 +138,7 @@ static int bochs_pci_probe(struct pci_dev *pdev,
> > > > return ret;
> > > >
> > > > err_unload:
> > > > + bochs_hw_fini(dev);
> > > > bochs_unload(dev);
> > > > err_free_dev:
> > > > drm_dev_put(dev);
> > > > --
> > > > 2.25.0
> > > >
> > >
> > >
> > > --
> > > With Best Regards,
> > > Andy Shevchenko
>
>
>
> --
> With Best Regards,
> Andy Shevchenko

2020-04-23 10:16:42

by Gerd Hoffmann

[permalink] [raw]
Subject: Re: [PATCH v1] drm/bochs: fix an issue of ioremap() leak

Hi,

> I am a newbie, andy gave me some directions to submit the patch, eg: check
> ioremap leak. At this time, I found that the bochs driver may have similar
> problems, so I submitted this patch, then, Andy said the best is to switch
> this driver to use pcim _ * () functions and drop tons of legacy code.
> I think we might be able to fix this issue first, after that, drop tons
> of legacy code by pcim_*() functions. Can you give me some suggestions?
> thank you very much!

drm has drmm_* functions for that. Daniel Vetter <[email protected]> has
a patch series pending switching lots of drivers over and IIRC it fixes
this bug too.

cheers,
Gerd

2020-04-23 14:27:16

by Dejin Zheng

[permalink] [raw]
Subject: Re: [PATCH v1] drm/bochs: fix an issue of ioremap() leak

On Thu, Apr 23, 2020 at 12:14:20PM +0200, Gerd Hoffmann wrote:
> Hi,
>
> > I am a newbie, andy gave me some directions to submit the patch, eg: check
> > ioremap leak. At this time, I found that the bochs driver may have similar
> > problems, so I submitted this patch, then, Andy said the best is to switch
> > this driver to use pcim _ * () functions and drop tons of legacy code.
> > I think we might be able to fix this issue first, after that, drop tons
> > of legacy code by pcim_*() functions. Can you give me some suggestions?
> > thank you very much!
>
> drm has drmm_* functions for that. Daniel Vetter <[email protected]> has
> a patch series pending switching lots of drivers over and IIRC it fixes
> this bug too.
>
Gerd, Thanks for your info and abandon this commit.

BR,
Dejin

> cheers,
> Gerd
>