tree:
git://git.infradead.org/users/hch/misc.git dma_alloc_pages
head: a16b2f06eb63d5638da06476cd7d21cac6ccf955
commit: 250f1c6e2d5b33ccd5650a4e3b3384b646edea3c [34/37] dma-mapping: add a new
dma_alloc_pages API
config: s390-randconfig-r021-20200917 (attached as .config)
compiler: s390-linux-gcc (GCC) 9.3.0
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
git checkout 250f1c6e2d5b33ccd5650a4e3b3384b646edea3c
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=s390
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
s390-linux-ld: kernel/dma/direct.o: in function `dma_direct_free':
> kernel/dma/direct.c:268: undefined reference to
`dma_free_from_pool'
s390-linux-ld: kernel/dma/direct.o: in function
`dma_direct_free_pages':
kernel/dma/direct.c:330: undefined reference to `dma_free_from_pool'
git remote add hch-misc
git://git.infradead.org/users/hch/misc.git
git fetch --no-tags hch-misc dma_alloc_pages
git checkout 250f1c6e2d5b33ccd5650a4e3b3384b646edea3c
vim +268 kernel/dma/direct.c
a8463d4b0e47d1f lib/dma-noop.c Christian Borntraeger 2016-02-02 254
2f5388a29be82a6 kernel/dma/direct.c Christoph Hellwig 2020-08-17 255 void
dma_direct_free(struct device *dev, size_t size,
2f5388a29be82a6 kernel/dma/direct.c Christoph Hellwig 2020-08-17 256 void
*cpu_addr, dma_addr_t dma_addr, unsigned long attrs)
a8463d4b0e47d1f lib/dma-noop.c Christian Borntraeger 2016-02-02 257 {
c10f07aa27dadf5 lib/dma-direct.c Christoph Hellwig 2018-03-19 258 unsigned int
page_order = get_order(size);
080321d3b3139b3 lib/dma-direct.c Christoph Hellwig 2017-12-22 259
2f5388a29be82a6 kernel/dma/direct.c Christoph Hellwig 2020-08-17 260 if
(!IS_ENABLED(CONFIG_ARCH_HAS_DMA_SET_UNCACHED) &&
2f5388a29be82a6 kernel/dma/direct.c Christoph Hellwig 2020-08-17 261
!IS_ENABLED(CONFIG_DMA_DIRECT_REMAP) &&
2f5388a29be82a6 kernel/dma/direct.c Christoph Hellwig 2020-08-17 262
dma_alloc_need_uncached(dev, attrs)) {
2f5388a29be82a6 kernel/dma/direct.c Christoph Hellwig 2020-08-17 263
arch_dma_free(dev, size, cpu_addr, dma_addr, attrs);
2f5388a29be82a6 kernel/dma/direct.c Christoph Hellwig 2020-08-17 264 return;
2f5388a29be82a6 kernel/dma/direct.c Christoph Hellwig 2020-08-17 265 }
2f5388a29be82a6 kernel/dma/direct.c Christoph Hellwig 2020-08-17 266
76a19940bd62a81 kernel/dma/direct.c David Rientjes 2020-04-14 267 /* If cpu_addr
is not from an atomic pool, dma_free_from_pool() fails */
76a19940bd62a81 kernel/dma/direct.c David Rientjes 2020-04-14 @268 if
(dma_should_free_from_pool(dev, attrs) &&
76a19940bd62a81 kernel/dma/direct.c David Rientjes 2020-04-14 269
dma_free_from_pool(dev, cpu_addr, PAGE_ALIGN(size)))
76a19940bd62a81 kernel/dma/direct.c David Rientjes 2020-04-14 270 return;
76a19940bd62a81 kernel/dma/direct.c David Rientjes 2020-04-14 271
cf14be0b41c659e kernel/dma/direct.c Christoph Hellwig 2019-08-06 272 if ((attrs
& DMA_ATTR_NO_KERNEL_MAPPING) &&
cf14be0b41c659e kernel/dma/direct.c Christoph Hellwig 2019-08-06 273
!force_dma_unencrypted(dev)) {
d98849aff879110 kernel/dma/direct.c Christoph Hellwig 2019-06-14 274 /* cpu_addr
is a struct page cookie, not a kernel address */
acaade1af358713 kernel/dma/direct.c Christoph Hellwig 2019-10-29 275
dma_free_contiguous(dev, cpu_addr, size);
d98849aff879110 kernel/dma/direct.c Christoph Hellwig 2019-06-14 276 return;
d98849aff879110 kernel/dma/direct.c Christoph Hellwig 2019-06-14 277 }
d98849aff879110 kernel/dma/direct.c Christoph Hellwig 2019-06-14 278
9087c37584fb7d8 kernel/dma/direct.c Tom Lendacky 2019-07-10 279 if
(force_dma_unencrypted(dev))
c10f07aa27dadf5 lib/dma-direct.c Christoph Hellwig 2018-03-19 280
set_memory_encrypted((unsigned long)cpu_addr, 1 << page_order);
c30700db9eaabb3 kernel/dma/direct.c Christoph Hellwig 2019-06-03 281
3acac065508f6cc kernel/dma/direct.c Christoph Hellwig 2019-10-29 282 if
(IS_ENABLED(CONFIG_DMA_REMAP) && is_vmalloc_addr(cpu_addr))
3acac065508f6cc kernel/dma/direct.c Christoph Hellwig 2019-10-29 283
vunmap(cpu_addr);
999a5d1203baa7c kernel/dma/direct.c Christoph Hellwig 2020-02-21 284 else if
(IS_ENABLED(CONFIG_ARCH_HAS_DMA_CLEAR_UNCACHED))
999a5d1203baa7c kernel/dma/direct.c Christoph Hellwig 2020-02-21 285
arch_dma_clear_uncached(cpu_addr, size);
3acac065508f6cc kernel/dma/direct.c Christoph Hellwig 2019-10-29 286
3acac065508f6cc kernel/dma/direct.c Christoph Hellwig 2019-10-29 287
dma_free_contiguous(dev, dma_direct_to_page(dev, dma_addr), size);
a8463d4b0e47d1f lib/dma-noop.c Christian Borntraeger 2016-02-02 288 }
a8463d4b0e47d1f lib/dma-noop.c Christian Borntraeger 2016-02-02 289
:::::: The code at line 268 was first introduced by commit
:::::: 76a19940bd62a81148c303f3df6d0cee9ae4b509 dma-direct: atomic allocations must come
from atomic coherent pools
:::::: TO: David Rientjes <rientjes(a)google.com>
:::::: CC: Christoph Hellwig <hch(a)lst.de>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org