All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@oracle.com>
To: jy0922.shim@samsung.com
Cc: linux-samsung-soc@vger.kernel.org
Subject: re: drm/exynos: merge exynos_drm_buf.c to exynos_drm_gem.c
Date: Wed, 19 Aug 2015 11:35:46 +0300	[thread overview]
Message-ID: <20150819083546.GA5271@mwanda> (raw)

Hello Joonyoung Shim,

The patch 2a8cb4894540: "drm/exynos: merge exynos_drm_buf.c to
exynos_drm_gem.c" from Aug 16, 2015, leads to the following static
checker warning:

	drivers/gpu/drm/exynos/exynos_drm_gem.c:610 exynos_drm_gem_prime_import_sg_table()
	error: 'exynos_gem_obj' dereferencing possible ERR_PTR()

drivers/gpu/drm/exynos/exynos_drm_gem.c
   562  struct drm_gem_object *
   563  exynos_drm_gem_prime_import_sg_table(struct drm_device *dev,
   564                                       struct dma_buf_attachment *attach,
   565                                       struct sg_table *sgt)
   566  {
   567          struct exynos_drm_gem_obj *exynos_gem_obj;
   568          int npages;
   569          int ret;
   570  
   571          exynos_gem_obj = exynos_drm_gem_init(dev, attach->dmabuf->size);
   572          if (IS_ERR(exynos_gem_obj)) {
   573                  ret = PTR_ERR(exynos_gem_obj);

exynos_gem_obj is an ERR_PTR.

   574                  goto err;
   575          }
   576  
   577          exynos_gem_obj->dma_addr = sg_dma_address(sgt->sgl);

   603  
   604          return &exynos_gem_obj->base;
   605  
   606  err_free_large:
   607          drm_free_large(exynos_gem_obj->pages);
   608  err:
   609          drm_gem_object_release(&exynos_gem_obj->base);
   610          kfree(exynos_gem_obj);

So both the drm_gem_object_release() and kfree() will crash.  Do we
really need both?  I feel like there should be a single free function
which undoes the exynos_drm_gem_init() function.  Also the
exynos_drm_gem_init() has no documentation about how it is supposed to
be freed.

   611          return ERR_PTR(ret);
   612  }

regards,
dan carpenter

             reply	other threads:[~2015-08-19  8:35 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-19  8:35 Dan Carpenter [this message]
2015-08-19  9:25 ` drm/exynos: merge exynos_drm_buf.c to exynos_drm_gem.c Joonyoung Shim

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150819083546.GA5271@mwanda \
    --to=dan.carpenter@oracle.com \
    --cc=jy0922.shim@samsung.com \
    --cc=linux-samsung-soc@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.