<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><font size="-1">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.</font><br>
    </p>
    <div class="moz-cite-prefix">Op 03-01-2020 om 09:10 schreef wuxu.wu:<br>
    </div>
    <blockquote type="cite"
      cite="mid:1578039033-6458-1-git-send-email-wuxu.wu@huawei.com">
      <pre class="moz-quote-pre" wrap="">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 <a class="moz-txt-link-rfc2396E" href="mailto:wuxu.wu@huawei.com"><wuxu.wu@huawei.com></a>
---
 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);
        }
</pre>
    </blockquote>
  </body>
</html>