tree:   https://github.com/AsahiLinux/linux dart/dev
head:   1bc74c306de810171ce90d15c42ac846bbf183dc
commit: df7d638f551bba7275f5deedee488db2b7fbcc51 [1/4] iommu/dma: Fix IOVA 
reserve dma ranges
config: i386-allyesconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
        # 
https://github.com/AsahiLinux/linux/commit/df7d638f551bba7275f5deedee488db2b7fbcc51
        git remote add asahilinux https://github.com/AsahiLinux/linux
        git fetch --no-tags asahilinux dart/dev
        git checkout df7d638f551bba7275f5deedee488db2b7fbcc51
        # save the attached .config to linux build tree
        make W=1 ARCH=i386 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <l...@intel.com>

All warnings (new ones prefixed by >>):

   In file included from include/linux/device.h:15,
                    from include/linux/acpi.h:15,
                    from include/linux/acpi_iort.h:10,
                    from drivers/iommu/dma-iommu.c:11:
   drivers/iommu/dma-iommu.c: In function 'iova_reserve_pci_windows':
>> drivers/iommu/dma-iommu.c:249:5: warning: format '%llx' expects argument of 
>> type 'long long unsigned int', but argument 3 has type 'phys_addr_t' {aka 
>> 'unsigned int'} [-Wformat=]
     249 |     "Failed to reserve IOVA [%#010llx-%#010llx]\n",
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/dev_printk.h:19:22: note: in definition of macro 'dev_fmt'
      19 | #define dev_fmt(fmt) fmt
         |                      ^~~
   drivers/iommu/dma-iommu.c:248:4: note: in expansion of macro 'dev_err'
     248 |    dev_err(&dev->dev,
         |    ^~~~~~~
   drivers/iommu/dma-iommu.c:249:37: note: format string is defined here
     249 |     "Failed to reserve IOVA [%#010llx-%#010llx]\n",
         |                              ~~~~~~~^
         |                                     |
         |                                     long long unsigned int
         |                              %#010x
   In file included from include/linux/device.h:15,
                    from include/linux/acpi.h:15,
                    from include/linux/acpi_iort.h:10,
                    from drivers/iommu/dma-iommu.c:11:
   drivers/iommu/dma-iommu.c:249:5: warning: format '%llx' expects argument of 
type 'long long unsigned int', but argument 4 has type 'phys_addr_t' {aka 
'unsigned int'} [-Wformat=]
     249 |     "Failed to reserve IOVA [%#010llx-%#010llx]\n",
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/dev_printk.h:19:22: note: in definition of macro 'dev_fmt'
      19 | #define dev_fmt(fmt) fmt
         |                      ^~~
   drivers/iommu/dma-iommu.c:248:4: note: in expansion of macro 'dev_err'
     248 |    dev_err(&dev->dev,
         |    ^~~~~~~
   drivers/iommu/dma-iommu.c:249:46: note: format string is defined here
     249 |     "Failed to reserve IOVA [%#010llx-%#010llx]\n",
         |                                       ~~~~~~~^
         |                                              |
         |                                              long long unsigned int
         |                                       %#010x


vim +249 drivers/iommu/dma-iommu.c

   220  
   221  static int iova_reserve_pci_windows(struct pci_dev *dev,
   222                  struct iova_domain *iovad)
   223  {
   224          struct pci_host_bridge *bridge = pci_find_host_bridge(dev->bus);
   225          struct resource_entry *window;
   226          unsigned long lo, hi;
   227          phys_addr_t start = 0, end;
   228  
   229          resource_list_for_each_entry(window, &bridge->windows) {
   230                  if (resource_type(window->res) != IORESOURCE_MEM)
   231                          continue;
   232  
   233                  lo = iova_pfn(iovad, window->res->start - 
window->offset);
   234                  hi = iova_pfn(iovad, window->res->end - window->offset);
   235                  reserve_iova(iovad, lo, hi);
   236          }
   237  
   238          /* Get reserved DMA windows from host bridge */
   239          resource_list_for_each_entry(window, &bridge->dma_ranges) {
   240                  end = window->res->start - window->offset;
   241  resv_iova:
   242                  if (end > start) {
   243                          lo = iova_pfn(iovad, start);
   244                          hi = iova_pfn(iovad, end);
   245                          reserve_iova(iovad, lo, hi);
   246                  } else if (end < start) {
   247                          /* dma_ranges list should be sorted */
   248                          dev_err(&dev->dev,
 > 249                                  "Failed to reserve IOVA 
 > [%#010llx-%#010llx]\n",
   250                                  start, end);
   251                          return -EINVAL;
   252                  }
   253  
   254                  start = window->res->end - window->offset + 1;
   255                  /* If window is last entry */
   256                  if (window->node.next == &bridge->dma_ranges &&
   257                      end != ~(phys_addr_t)0) {
   258                          end = ~(phys_addr_t)0;
   259                          goto resv_iova;
   260                  }
   261          }
   262  
   263          return 0;
   264  }
   265  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org

Attachment: .config.gz
Description: application/gzip

_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to