Re: [PATCH 3/3] iommu: Enable compile testing for some of drivers

From: Suman Anna
Date: Thu Jan 02 2020 - 17:40:45 EST


Hi Krzysztof,

On 12/31/19 2:07 AM, Krzysztof Kozlowski wrote:
> On Tue, Dec 31, 2019 at 03:43:39PM +0800, kbuild test robot wrote:
>> Hi Krzysztof,
>>
>> I love your patch! Perhaps something to improve:
>>
>> [auto build test WARNING on iommu/next]
>> [also build test WARNING on v5.5-rc4]
>> [if your patch is applied to the wrong git tree, please drop us a note to help
>> improve the system. BTW, we also suggest to use '--base' option to specify the
>> base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
>>
>> url: https://github.com/0day-ci/linux/commits/Krzysztof-Kozlowski/iommu-omap-Fix-pointer-cast-Wpointer-to-int-cast-warnings-on-64-bit/20191231-022212
>> base: https://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git next
>> config: ia64-allmodconfig (attached as .config)
>> compiler: ia64-linux-gcc (GCC) 7.5.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
>> GCC_VERSION=7.5.0 make.cross ARCH=ia64
>>
>> If you fix the issue, kindly add following tag
>> Reported-by: kbuild test robot <lkp@xxxxxxxxx>
>
> I saw it already while compile testing my patch. I must admit that I
> could not find easy/fast fix for it. Probably the
> omap_iommu_translate() helper should be made 64-bit friendly but this
> obfuscates the code.

>The driver and hardware supports only 32-bit addresses.

Yeah, is there a reason why you are trying to enable the build for the
OMAP IOMMU driver on 64-bit platforms or other architectures - the IP
and driver is only ever used on ARMv7 platforms, and it should already
be available for COMPILE_TEST on those.

regards
Suman

>
> Best regards,
> Krzysztof
>
>
>>
>> All warnings (new ones prefixed by >>):
>>
>> In file included from drivers/iommu/omap-iommu.c:33:0:
>> drivers/iommu/omap-iommu.c: In function 'omap_iommu_iova_to_phys':
>>>> drivers/iommu/omap-iopgtable.h:44:21: warning: large integer implicitly truncated to unsigned type [-Woverflow]
>> #define IOPTE_MASK (~(IOPTE_SIZE - 1))
>> ^
>>>> drivers/iommu/omap-iommu.c:1641:41: note: in expansion of macro 'IOPTE_MASK'
>> ret = omap_iommu_translate(*pte, da, IOPTE_MASK);
>> ^~~~~~~~~~
>> drivers/iommu/omap-iopgtable.h:51:23: warning: large integer implicitly truncated to unsigned type [-Woverflow]
>> #define IOLARGE_MASK (~(IOLARGE_SIZE - 1))
>> ^
>>>> drivers/iommu/omap-iommu.c:1643:41: note: in expansion of macro 'IOLARGE_MASK'
>> ret = omap_iommu_translate(*pte, da, IOLARGE_MASK);
>> ^~~~~~~~~~~~
>> drivers/iommu/omap-iopgtable.h:27:25: warning: large integer implicitly truncated to unsigned type [-Woverflow]
>> #define IOSECTION_MASK (~(IOSECTION_SIZE - 1))
>> ^
>>>> drivers/iommu/omap-iommu.c:1649:41: note: in expansion of macro 'IOSECTION_MASK'
>> ret = omap_iommu_translate(*pgd, da, IOSECTION_MASK);
>> ^~~~~~~~~~~~~~
>> drivers/iommu/omap-iopgtable.h:34:23: warning: large integer implicitly truncated to unsigned type [-Woverflow]
>> #define IOSUPER_MASK (~(IOSUPER_SIZE - 1))
>> ^
>>>> drivers/iommu/omap-iommu.c:1651:41: note: in expansion of macro 'IOSUPER_MASK'
>> ret = omap_iommu_translate(*pgd, da, IOSUPER_MASK);
>> ^~~~~~~~~~~~
>>
>> vim +44 drivers/iommu/omap-iopgtable.h
>>
>> 97ec7d585b33bb arch/arm/plat-omap/iopgtable.h Hiroshi DOYU 2010-02-15 38
>> 97ec7d585b33bb arch/arm/plat-omap/iopgtable.h Hiroshi DOYU 2010-02-15 39 /*
>> 97ec7d585b33bb arch/arm/plat-omap/iopgtable.h Hiroshi DOYU 2010-02-15 40 * "small page" address mask and size definitions.
>> 97ec7d585b33bb arch/arm/plat-omap/iopgtable.h Hiroshi DOYU 2010-02-15 41 */
>> a9dcad5e375800 arch/arm/plat-omap/iopgtable.h Hiroshi DOYU 2009-01-26 42 #define IOPTE_SHIFT 12
>> 5ff98fa68c88d7 drivers/iommu/omap-iopgtable.h Suman Anna 2015-07-20 43 #define IOPTE_SIZE BIT(IOPTE_SHIFT)
>> a9dcad5e375800 arch/arm/plat-omap/iopgtable.h Hiroshi DOYU 2009-01-26 @44 #define IOPTE_MASK (~(IOPTE_SIZE - 1))
>> a9dcad5e375800 arch/arm/plat-omap/iopgtable.h Hiroshi DOYU 2009-01-26 45
>>
>> :::::: The code at line 44 was first introduced by commit
>> :::::: a9dcad5e375800fcb07f7617dba23b3aade8f09d omap iommu: tlb and pagetable primitives
>>
>> :::::: TO: Hiroshi DOYU <Hiroshi.DOYU@xxxxxxxxx>
>> :::::: CC: Hiroshi DOYU <Hiroshi.DOYU@xxxxxxxxx>
>>
>> ---
>> 0-DAY kernel test infrastructure Open Source Technology Center
>> https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx Intel Corporation
>
>