wuxu.wu
2020-Jan-03 08:10 UTC
[Nouveau] [PATCH] drm/nouveau/bios: fix incorrect kfree in platform_init
Hi, I think there has a incorrect kfree in pcirom_init function. In pcirom_init function priv porinter could be free only when priv != null and priv->rom is null. Signed-off-by: wuxu.wu <wuxu.wu at huawei.com> --- drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.c index 9b91da0..d776e01 100644 --- a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.c +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.c @@ -70,8 +70,9 @@ pcirom_init(struct nvkm_bios *bios, const char *name) (priv->rom = pci_map_rom(pdev, &priv->size))) { priv->pdev = pdev; return priv; + } else { + kfree(priv); } - kfree(priv); } pci_disable_rom(pdev); } -- 2.7.4
Roy Spliet
2020-Jan-03 11:53 UTC
[Nouveau] [PATCH] drm/nouveau/bios: fix incorrect kfree in platform_init
NACK. The before and after of this patch are functionally identical. The if-block returns unconditionally ("return priv;"), so the kfree will only ever be reached if the condition in the if-statement evaluates to false. Explicitly writing out an else-block is thus superfluous. Op 03-01-2020 om 09:10 schreef wuxu.wu:> Hi, I think there has a incorrect kfree in pcirom_init function. In > pcirom_init function priv porinter could be free only when priv != null > and priv->rom is null. > > Signed-off-by: wuxu.wu <wuxu.wu at huawei.com> > --- > drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.c > index 9b91da0..d776e01 100644 > --- a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.c > +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.c > @@ -70,8 +70,9 @@ pcirom_init(struct nvkm_bios *bios, const char *name) > (priv->rom = pci_map_rom(pdev, &priv->size))) { > priv->pdev = pdev; > return priv; > + } else { > + kfree(priv); > } > - kfree(priv); > } > pci_disable_rom(pdev); > }-------------- next part -------------- An HTML attachment was scrubbed... URL: <https://lists.freedesktop.org/archives/nouveau/attachments/20200103/45c4fdb7/attachment.htm>
Roy Spliet
2020-Jan-03 11:58 UTC
[Nouveau] [PATCH] drm/nouveau/bios: fix incorrect kfree in platform_init
(re-sending as plain text) NACK. The before and after of this patch are functionally identical. The if-block returns unconditionally ("return priv;"), so the kfree will only ever be reached if the condition in the if-statement evaluates to false. Explicitly writing out an else-block is thus superfluous. Op 03-01-2020 om 09:10 schreef wuxu.wu:> Hi, I think there has a incorrect kfree in pcirom_init function. In > pcirom_init function priv porinter could be free only when priv != null > and priv->rom is null. > > Signed-off-by: wuxu.wu <wuxu.wu at huawei.com> > --- > drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.c > index 9b91da0..d776e01 100644 > --- a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.c > +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.c > @@ -70,8 +70,9 @@ pcirom_init(struct nvkm_bios *bios, const char *name) > (priv->rom = pci_map_rom(pdev, &priv->size))) { > priv->pdev = pdev; > return priv; > + } else { > + kfree(priv); > } > - kfree(priv); > } > pci_disable_rom(pdev); > } >
Wuxu (Max)
2020-Jan-03 13:25 UTC
[Nouveau] [PATCH] drm/nouveau/bios: fix incorrect kfree in platform_init
Thank you, I got it On 2020/1/3 19:58, Roy Spliet wrote:> (re-sending as plain text) > > NACK. The before and after of this patch are functionally identical. The if-block returns unconditionally ("return priv;"), so the kfree will only ever be reached if the condition in the if-statement evaluates to false. Explicitly writing out an else-block is thus superfluous. > > Op 03-01-2020 om 09:10 schreef wuxu.wu: >> Hi, I think there has a incorrect kfree in pcirom_init function. In >> pcirom_init function priv porinter could be free only when priv != null >> and priv->rom is null. >> >> Signed-off-by: wuxu.wu <wuxu.wu at huawei.com> >> --- >> ? drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.c | 3 ++- >> ? 1 file changed, 2 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.c >> index 9b91da0..d776e01 100644 >> --- a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.c >> +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.c >> @@ -70,8 +70,9 @@ pcirom_init(struct nvkm_bios *bios, const char *name) >> ????????????????? (priv->rom = pci_map_rom(pdev, &priv->size))) { >> ????????????????? priv->pdev = pdev; >> ????????????????? return priv; >> +??????????? } else { >> +??????????????? kfree(priv); >> ????????????? } >> -??????????? kfree(priv); >> ????????? } >> ????????? pci_disable_rom(pdev); >> ????? } >> > > .
Reasonably Related Threads
- [PATCH] drm/nouveau/bios: fix incorrect kfree in platform_init
- [PATCH] drm/nouveau/bios: fix incorrect kfree in platform_init
- [PATCH] drm/nouveau/bios: fix incorrect kfree in platform_init
- [PATCH AUTOSEL 5.5 121/121] PCI: Use ioremap(), not phys_to_virt() for platform ROM
- [PATCH AUTOSEL 5.6 149/149] PCI: Use ioremap(), not phys_to_virt() for platform ROM