[intel-tdx:guest 69/127] kernel/dma/direct.c:121:20: warning: shift count >= width of type
From: kernel test robot
Date: Tue Sep 28 2021 - 07:48:57 EST
tree: https://github.com/intel/tdx.git guest
head: 10b6ec254ee65ec602a7c3efde66ac0ca545b4bc
commit: b0040b6252b9f83c00f70d3b975238cb47381270 [69/127] x86/tdx: Add device filter support for x86 TDX guest platform
config: x86_64-randconfig-a002-20210928 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project dc6e8dfdfe7efecfda318d43a06fae18b40eb498)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel/tdx/commit/b0040b6252b9f83c00f70d3b975238cb47381270
git remote add intel-tdx https://github.com/intel/tdx.git
git fetch --no-tags intel-tdx guest
git checkout b0040b6252b9f83c00f70d3b975238cb47381270
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>
All warnings (new ones prefixed by >>):
In file included from kernel/dma/direct.c:7:
In file included from include/linux/memblock.h:14:
In file included from arch/x86/include/asm/dma.h:13:
In file included from arch/x86/include/asm/io.h:45:
arch/x86/include/asm/tdx.h:175:12: error: incomplete definition of type 'struct device'
return dev->authorized;
~~~^
include/linux/dynamic_debug.h:70:8: note: forward declaration of 'struct device'
struct device;
^
>> kernel/dma/direct.c:121:20: warning: shift count >= width of type [-Wshift-count-overflow]
phys_limit < DMA_BIT_MASK(64) &&
^~~~~~~~~~~~~~~~
include/linux/dma-mapping.h:76:54: note: expanded from macro 'DMA_BIT_MASK'
#define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
^ ~~~
1 warning and 1 error generated.
--
In file included from security/security.c:22:
In file included from include/linux/ima.h:13:
In file included from include/linux/kexec.h:19:
In file included from arch/x86/include/asm/io.h:45:
arch/x86/include/asm/tdx.h:175:12: error: incomplete definition of type 'struct device'
return dev->authorized;
~~~^
include/linux/dynamic_debug.h:70:8: note: forward declaration of 'struct device'
struct device;
^
In file included from security/security.c:25:
>> include/linux/mman.h:158:9: warning: division by zero is undefined [-Wdivision-by-zero]
_calc_vm_trans(flags, MAP_SYNC, VM_SYNC ) |
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/mman.h:136:21: note: expanded from macro '_calc_vm_trans'
: ((x) & (bit1)) / ((bit1) / (bit2))))
^ ~~~~~~~~~~~~~~~~~
1 warning and 1 error generated.
--
In file included from drivers/rapidio/devices/tsi721.c:10:
In file included from include/linux/io.h:13:
In file included from arch/x86/include/asm/io.h:45:
arch/x86/include/asm/tdx.h:175:12: error: incomplete definition of type 'struct device'
return dev->authorized;
~~~^
include/linux/dynamic_debug.h:70:8: note: forward declaration of 'struct device'
struct device;
^
>> drivers/rapidio/devices/tsi721.c:2839:29: warning: shift count >= width of type [-Wshift-count-overflow]
if (pci_set_dma_mask(pdev, DMA_BIT_MASK(64))) {
^~~~~~~~~~~~~~~~
include/linux/dma-mapping.h:76:54: note: expanded from macro 'DMA_BIT_MASK'
#define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
^ ~~~
drivers/rapidio/devices/tsi721.c:2849:43: warning: shift count >= width of type [-Wshift-count-overflow]
err = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64));
^~~~~~~~~~~~~~~~
include/linux/dma-mapping.h:76:54: note: expanded from macro 'DMA_BIT_MASK'
#define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
^ ~~~
2 warnings and 1 error generated.
--
In file included from drivers/gpu/drm/vgem/vgem_drv.c:33:
In file included from include/linux/dma-buf.h:16:
In file included from include/linux/dma-buf-map.h:9:
In file included from include/linux/io.h:13:
In file included from arch/x86/include/asm/io.h:45:
arch/x86/include/asm/tdx.h:175:12: error: incomplete definition of type 'struct device'
return dev->authorized;
~~~^
include/linux/dynamic_debug.h:70:8: note: forward declaration of 'struct device'
struct device;
^
>> drivers/gpu/drm/vgem/vgem_drv.c:460:10: warning: shift count >= width of type [-Wshift-count-overflow]
DMA_BIT_MASK(64));
^~~~~~~~~~~~~~~~
include/linux/dma-mapping.h:76:54: note: expanded from macro 'DMA_BIT_MASK'
#define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
^ ~~~
1 warning and 1 error generated.
vim +121 kernel/dma/direct.c
f4111e39a52aa5 kernel/dma/direct.c Claire Chang 2021-06-19 86
26749b3201ab05 kernel/dma/direct.c Christoph Hellwig 2020-06-15 87 static struct page *__dma_direct_alloc_pages(struct device *dev, size_t size,
3773dfe6ea4d22 kernel/dma/direct.c Christoph Hellwig 2020-08-17 88 gfp_t gfp)
a8463d4b0e47d1 lib/dma-noop.c Christian Borntraeger 2016-02-02 89 {
90ae409f9eb3bc kernel/dma/direct.c Christoph Hellwig 2019-08-20 90 int node = dev_to_node(dev);
080321d3b3139b lib/dma-direct.c Christoph Hellwig 2017-12-22 91 struct page *page = NULL;
a7ba70f1787f97 kernel/dma/direct.c Nicolas Saenz Julienne 2019-11-21 92 u64 phys_limit;
a8463d4b0e47d1 lib/dma-noop.c Christian Borntraeger 2016-02-02 93
633d5fce78a61e kernel/dma/direct.c David Rientjes 2020-06-11 94 WARN_ON_ONCE(!PAGE_ALIGNED(size));
633d5fce78a61e kernel/dma/direct.c David Rientjes 2020-06-11 95
c84dc6e68a1d24 kernel/dma/direct.c David Rientjes 2020-04-14 96 gfp |= dma_direct_optimal_gfp_mask(dev, dev->coherent_dma_mask,
a7ba70f1787f97 kernel/dma/direct.c Nicolas Saenz Julienne 2019-11-21 97 &phys_limit);
f4111e39a52aa5 kernel/dma/direct.c Claire Chang 2021-06-19 98 if (IS_ENABLED(CONFIG_DMA_RESTRICTED_POOL) &&
f4111e39a52aa5 kernel/dma/direct.c Claire Chang 2021-06-19 99 is_swiotlb_for_alloc(dev)) {
f4111e39a52aa5 kernel/dma/direct.c Claire Chang 2021-06-19 100 page = swiotlb_alloc(dev, size);
f4111e39a52aa5 kernel/dma/direct.c Claire Chang 2021-06-19 101 if (page && !dma_coherent_ok(dev, page_to_phys(page), size)) {
f4111e39a52aa5 kernel/dma/direct.c Claire Chang 2021-06-19 102 __dma_direct_free_pages(dev, page, size);
f4111e39a52aa5 kernel/dma/direct.c Claire Chang 2021-06-19 103 return NULL;
f4111e39a52aa5 kernel/dma/direct.c Claire Chang 2021-06-19 104 }
f4111e39a52aa5 kernel/dma/direct.c Claire Chang 2021-06-19 105 return page;
f4111e39a52aa5 kernel/dma/direct.c Claire Chang 2021-06-19 106 }
f4111e39a52aa5 kernel/dma/direct.c Claire Chang 2021-06-19 107
633d5fce78a61e kernel/dma/direct.c David Rientjes 2020-06-11 108 page = dma_alloc_contiguous(dev, size, gfp);
90ae409f9eb3bc kernel/dma/direct.c Christoph Hellwig 2019-08-20 109 if (page && !dma_coherent_ok(dev, page_to_phys(page), size)) {
633d5fce78a61e kernel/dma/direct.c David Rientjes 2020-06-11 110 dma_free_contiguous(dev, page, size);
90ae409f9eb3bc kernel/dma/direct.c Christoph Hellwig 2019-08-20 111 page = NULL;
90ae409f9eb3bc kernel/dma/direct.c Christoph Hellwig 2019-08-20 112 }
95f183916d4b0b lib/dma-direct.c Christoph Hellwig 2018-01-09 113 again:
90ae409f9eb3bc kernel/dma/direct.c Christoph Hellwig 2019-08-20 114 if (!page)
633d5fce78a61e kernel/dma/direct.c David Rientjes 2020-06-11 115 page = alloc_pages_node(node, gfp, get_order(size));
95f183916d4b0b lib/dma-direct.c Christoph Hellwig 2018-01-09 116 if (page && !dma_coherent_ok(dev, page_to_phys(page), size)) {
b1d2dc009dece4 kernel/dma/direct.c Nicolin Chen 2019-05-23 117 dma_free_contiguous(dev, page, size);
95f183916d4b0b lib/dma-direct.c Christoph Hellwig 2018-01-09 118 page = NULL;
95f183916d4b0b lib/dma-direct.c Christoph Hellwig 2018-01-09 119
de7eab301de788 lib/dma-direct.c Takashi Iwai 2018-04-16 120 if (IS_ENABLED(CONFIG_ZONE_DMA32) &&
a7ba70f1787f97 kernel/dma/direct.c Nicolas Saenz Julienne 2019-11-21 @121 phys_limit < DMA_BIT_MASK(64) &&
de7eab301de788 lib/dma-direct.c Takashi Iwai 2018-04-16 122 !(gfp & (GFP_DMA32 | GFP_DMA))) {
de7eab301de788 lib/dma-direct.c Takashi Iwai 2018-04-16 123 gfp |= GFP_DMA32;
de7eab301de788 lib/dma-direct.c Takashi Iwai 2018-04-16 124 goto again;
de7eab301de788 lib/dma-direct.c Takashi Iwai 2018-04-16 125 }
de7eab301de788 lib/dma-direct.c Takashi Iwai 2018-04-16 126
fbce251baa6e35 kernel/dma/direct.c Christoph Hellwig 2019-02-13 127 if (IS_ENABLED(CONFIG_ZONE_DMA) && !(gfp & GFP_DMA)) {
95f183916d4b0b lib/dma-direct.c Christoph Hellwig 2018-01-09 128 gfp = (gfp & ~GFP_DMA32) | GFP_DMA;
95f183916d4b0b lib/dma-direct.c Christoph Hellwig 2018-01-09 129 goto again;
95f183916d4b0b lib/dma-direct.c Christoph Hellwig 2018-01-09 130 }
95f183916d4b0b lib/dma-direct.c Christoph Hellwig 2018-01-09 131 }
95f183916d4b0b lib/dma-direct.c Christoph Hellwig 2018-01-09 132
b18814e767a445 kernel/dma/direct.c Christoph Hellwig 2018-11-04 133 return page;
b18814e767a445 kernel/dma/direct.c Christoph Hellwig 2018-11-04 134 }
b18814e767a445 kernel/dma/direct.c Christoph Hellwig 2018-11-04 135
:::::: The code at line 121 was first introduced by commit
:::::: a7ba70f1787f977f970cd116076c6fce4b9e01cc dma-mapping: treat dev->bus_dma_mask as a DMA limit
:::::: TO: Nicolas Saenz Julienne <nsaenzjulienne@xxxxxxx>
:::::: CC: Christoph Hellwig <hch@xxxxxx>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip