All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@oracle.com>
To: christian.koenig@amd.com
Cc: Christoph Hellwig <hch@lst.de>, dri-devel@lists.freedesktop.org
Subject: [bug report] drm/ttm: add transparent huge page support for DMA allocations v2
Date: Thu, 27 Jun 2019 17:06:27 +0300	[thread overview]
Message-ID: <20190627140626.GA6027@mwanda> (raw)

Hello Christian König,

The patch 648bc3574716: "drm/ttm: add transparent huge page support
for DMA allocations v2" from Jul 6, 2017, leads to the following
static checker warning:

	drivers/gpu/drm/ttm/ttm_page_alloc_dma.c:314 __ttm_dma_alloc_page()
	error: 'vaddr' came from dma_alloc_coherent() so we can't do virt_to_phys()

drivers/gpu/drm/ttm/ttm_page_alloc_dma.c
   295  static struct dma_page *__ttm_dma_alloc_page(struct dma_pool *pool)
   296  {
   297          struct dma_page *d_page;
   298          unsigned long attrs = 0;
   299          void *vaddr;
   300  
   301          d_page = kmalloc(sizeof(struct dma_page), GFP_KERNEL);
   302          if (!d_page)
   303                  return NULL;
   304  
   305          if (pool->type & IS_HUGE)
   306                  attrs = DMA_ATTR_NO_WARN;
   307  
   308          vaddr = dma_alloc_attrs(pool->dev, pool->size, &d_page->dma,
   309                                  pool->gfp_flags, attrs);
   310          if (vaddr) {
   311                  if (is_vmalloc_addr(vaddr))
   312                          d_page->p = vmalloc_to_page(vaddr);
   313                  else
   314                          d_page->p = virt_to_page(vaddr);

Christoph was explaining this earlier and I don't think it's sufficient
to just check is_vmalloc_addr().  See https://lkml.org/lkml/2019/6/17/155
Apparently the vaddr might not have a page backing...

(I am a newbie to this so I may be wrong or have misunderstood also).

   315                  d_page->vaddr = (unsigned long)vaddr;
   316                  if (pool->type & IS_HUGE)
   317                          d_page->vaddr |= VADDR_FLAG_HUGE_POOL;
   318          } else {
   319                  kfree(d_page);
   320                  d_page = NULL;
   321          }
   322          return d_page;
   323  }

regards,
dan carpenter
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

             reply	other threads:[~2019-06-27 14:06 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-27 14:06 Dan Carpenter [this message]
2019-06-27 16:19 ` [bug report] drm/ttm: add transparent huge page support for DMA allocations v2 Koenig, Christian
     [not found]   ` <20190627165532.GD10652@lst.de>
2019-06-27 17:12     ` Koenig, Christian
     [not found]       ` <20190627171536.GA11117@lst.de>
2019-06-27 17:30         ` Koenig, Christian
     [not found]           ` <20190628073935.GA29114@lst.de>
2019-06-28  8:05             ` Koenig, Christian
     [not found]               ` <20190701083117.GA22587@lst.de>
2019-07-15 10:41                 ` Koenig, Christian
     [not found]                   ` <20190715125058.GA4384@lst.de>
2019-07-15 13:38                     ` Koenig, Christian

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=20190627140626.GA6027@mwanda \
    --to=dan.carpenter@oracle.com \
    --cc=christian.koenig@amd.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=hch@lst.de \
    /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.