[PATCH 3/4] ARM: dma-mapping: Implement arch_iommu_detach_device()

kbuild test robot lkp at intel.com
Thu Apr 26 14:00:07 PDT 2018


Hi Thierry,

I love your patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v4.17-rc2 next-20180424]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Thierry-Reding/drm-nouveau-tegra-Detach-from-ARM-DMA-IOMMU-mapping/20180426-140854
config: arm-omap2plus_defconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=arm 

All error/warnings (new ones prefixed by >>):

   arch/arm/mm/dma-mapping.c: In function 'arch_iommu_detach_device':
>> arch/arm/mm/dma-mapping.c:2380:12: error: implicit declaration of function 'arm_get_dma_map_ops'; did you mean 'arm_get_iommu_dma_map_ops'? [-Werror=implicit-function-declaration]
     dma_ops = arm_get_dma_map_ops(dev->archdata.dma_coherent);
               ^~~~~~~~~~~~~~~~~~~
               arm_get_iommu_dma_map_ops
>> arch/arm/mm/dma-mapping.c:2380:10: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
     dma_ops = arm_get_dma_map_ops(dev->archdata.dma_coherent);
             ^
   arch/arm/mm/dma-mapping.c: At top level:
>> arch/arm/mm/dma-mapping.c:2402:34: error: conflicting types for 'arm_get_dma_map_ops'
    static const struct dma_map_ops *arm_get_dma_map_ops(bool coherent)
                                     ^~~~~~~~~~~~~~~~~~~
   arch/arm/mm/dma-mapping.c:2380:12: note: previous implicit declaration of 'arm_get_dma_map_ops' was here
     dma_ops = arm_get_dma_map_ops(dev->archdata.dma_coherent);
               ^~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors

vim +2380 arch/arm/mm/dma-mapping.c

  2368	
  2369	void arch_iommu_detach_device(struct device *dev)
  2370	{
  2371		struct dma_iommu_mapping *mapping = to_dma_iommu_mapping(dev);
  2372		const struct dma_map_ops *dma_ops;
  2373	
  2374		if (!mapping)
  2375			return;
  2376	
  2377		arm_iommu_release_mapping(mapping);
  2378		arm_iommu_detach_device(dev);
  2379	
> 2380		dma_ops = arm_get_dma_map_ops(dev->archdata.dma_coherent);
  2381		set_dma_ops(dev, dma_ops);
  2382	}
  2383	
  2384	#else
  2385	
  2386	static bool arm_setup_iommu_dma_ops(struct device *dev, u64 dma_base, u64 size,
  2387					    const struct iommu_ops *iommu)
  2388	{
  2389		return false;
  2390	}
  2391	
  2392	static void arm_teardown_iommu_dma_ops(struct device *dev) { }
  2393	
  2394	#define arm_get_iommu_dma_map_ops arm_get_dma_map_ops
  2395	
  2396	void arch_iommu_detach_device(struct device *dev)
  2397	{
  2398	}
  2399	
  2400	#endif	/* CONFIG_ARM_DMA_USE_IOMMU */
  2401	
> 2402	static const struct dma_map_ops *arm_get_dma_map_ops(bool coherent)
  2403	{
  2404		return coherent ? &arm_coherent_dma_ops : &arm_dma_ops;
  2405	}
  2406	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 33598 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20180427/3a09a331/attachment-0001.gz>


More information about the linux-arm-kernel mailing list