iommu.lists.linux-foundation.org archive mirror
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
To: robin.murphy-5wv7dgnIgG8@public.gmane.org
Cc: iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org
Subject: [bug report] iommu: Implement common IOMMU ops for DMA mapping
Date: Tue, 15 Nov 2016 12:44:25 +0300	[thread overview]
Message-ID: <20161115094425.GA13139@mwanda> (raw)

Hello Robin Murphy,

The patch 0db2e5d18f76: "iommu: Implement common IOMMU ops for DMA
mapping" from Oct 1, 2015, leads to the following static checker
warning:

	drivers/iommu/dma-iommu.c:377 iommu_dma_alloc()
	warn: use 'gfp' here instead of GFP_XXX?

drivers/iommu/dma-iommu.c
   343  struct page **iommu_dma_alloc(struct device *dev, size_t size, gfp_t gfp,
                                                                       ^^^^^^^^^

   344                  unsigned long attrs, int prot, dma_addr_t *handle,
   345                  void (*flush_page)(struct device *, const void *, phys_addr_t))
   346  {
   347          struct iommu_domain *domain = iommu_get_domain_for_dev(dev);
   348          struct iova_domain *iovad = cookie_iovad(domain);
   349          struct iova *iova;
   350          struct page **pages;
   351          struct sg_table sgt;
   352          dma_addr_t dma_addr;
   353          unsigned int count, min_size, alloc_sizes = domain->pgsize_bitmap;
   354  
   355          *handle = DMA_ERROR_CODE;
   356  
   357          min_size = alloc_sizes & -alloc_sizes;
   358          if (min_size < PAGE_SIZE) {
   359                  min_size = PAGE_SIZE;
   360                  alloc_sizes |= PAGE_SIZE;
   361          } else {
   362                  size = ALIGN(size, min_size);
   363          }
   364          if (attrs & DMA_ATTR_ALLOC_SINGLE_PAGES)
   365                  alloc_sizes = min_size;
   366  
   367          count = PAGE_ALIGN(size) >> PAGE_SHIFT;
   368          pages = __iommu_dma_alloc_pages(count, alloc_sizes >> PAGE_SHIFT, gfp);
                                                                                  ^^^^
Here we use gfp.

   369          if (!pages)
   370                  return NULL;
   371  
   372          iova = __alloc_iova(domain, size, dev->coherent_dma_mask);
   373          if (!iova)
   374                  goto out_free_pages;
   375  
   376          size = iova_align(iovad, size);
   377          if (sg_alloc_table_from_pages(&sgt, pages, count, 0, size, GFP_KERNEL))
                                                                           ^^^^^^^^^^
Here we're using GFP_KERNEL.  I don't know the code well enough to say
if it was intentional.

   378                  goto out_free_iova;
   379  
   380          if (!(prot & IOMMU_CACHE)) {
   381                  struct sg_mapping_iter miter;
   382                  /*
   383                   * The CPU-centric flushing implied by SG_MITER_TO_SG isn't
   384                   * sufficient here, so skip it by using the "wrong" direction.
   385                   */
   386                  sg_miter_start(&miter, sgt.sgl, sgt.orig_nents, SG_MITER_FROM_SG);

regards,
dan carpenter

             reply	other threads:[~2016-11-15  9:44 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-15  9:44 Dan Carpenter [this message]
2016-11-15 11:43 ` [bug report] iommu: Implement common IOMMU ops for DMA mapping Robin Murphy

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=20161115094425.GA13139@mwanda \
    --to=dan.carpenter-qhclzuegtsvqt0dzr+alfa@public.gmane.org \
    --cc=iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
    --cc=robin.murphy-5wv7dgnIgG8@public.gmane.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).