* Re: [PATCH v1 1/1] ARM: Select DMA_DIRECT_REMAP to fix restricted DMA
[not found] <20230926175208.9298-2-james.quinlan@broadcom.com>
@ 2023-09-27 7:13 ` kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2023-09-27 7:13 UTC (permalink / raw)
To: Jim Quinlan, Christoph Hellwig, bcm-kernel-feedback-list,
jim2101024
Cc: oe-kbuild-all, Russell King, Arnd Bergmann, Geert Uytterhoeven,
Russell King (Oracle), Linus Walleij, Andrew Morton,
Linux Memory Management List, Jonathan Corbet, Thomas Gleixner,
Sebastian Reichel, Mike Rapoport (IBM), Eric DeVolder,
Nathan Chancellor, Kirill A. Shutemov, Christophe Leroy,
linux-arm-kernel, linux-kernel
Hi Jim,
kernel test robot noticed the following build errors:
[auto build test ERROR on arm/for-next]
[also build test ERROR on linus/master hch-configfs/for-next arm/fixes v6.6-rc3 next-20230927]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Jim-Quinlan/ARM-Select-DMA_DIRECT_REMAP-to-fix-restricted-DMA/20230927-025212
base: git://git.armlinux.org.uk/~rmk/linux-arm.git for-next
patch link: https://lore.kernel.org/r/20230926175208.9298-2-james.quinlan%40broadcom.com
patch subject: [PATCH v1 1/1] ARM: Select DMA_DIRECT_REMAP to fix restricted DMA
config: arm-allnoconfig (https://download.01.org/0day-ci/archive/20230927/202309271425.sxoPXWOX-lkp@intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20230927/202309271425.sxoPXWOX-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202309271425.sxoPXWOX-lkp@intel.com/
All errors (new ones prefixed by >>):
kernel/dma/pool.c: In function 'atomic_pool_expand':
>> kernel/dma/pool.c:105:44: error: implicit declaration of function 'pgprot_dmacoherent' [-Werror=implicit-function-declaration]
105 | pgprot_dmacoherent(PAGE_KERNEL),
| ^~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/pgprot_dmacoherent +105 kernel/dma/pool.c
d7e673ec2c8e0ea Nicolas Saenz Julienne 2020-08-14 78
54adadf9b08571f David Rientjes 2020-04-20 79 static int atomic_pool_expand(struct gen_pool *pool, size_t pool_size,
54adadf9b08571f David Rientjes 2020-04-20 80 gfp_t gfp)
e860c299ac0d738 David Rientjes 2020-04-14 81 {
54adadf9b08571f David Rientjes 2020-04-20 82 unsigned int order;
892fc9f6835ecf0 Dan Carpenter 2020-08-26 83 struct page *page = NULL;
e860c299ac0d738 David Rientjes 2020-04-14 84 void *addr;
54adadf9b08571f David Rientjes 2020-04-20 85 int ret = -ENOMEM;
54adadf9b08571f David Rientjes 2020-04-20 86
23baf831a32c04f Kirill A. Shutemov 2023-03-15 87 /* Cannot allocate larger than MAX_ORDER */
23baf831a32c04f Kirill A. Shutemov 2023-03-15 88 order = min(get_order(pool_size), MAX_ORDER);
54adadf9b08571f David Rientjes 2020-04-20 89
54adadf9b08571f David Rientjes 2020-04-20 90 do {
54adadf9b08571f David Rientjes 2020-04-20 91 pool_size = 1 << (PAGE_SHIFT + order);
d7e673ec2c8e0ea Nicolas Saenz Julienne 2020-08-14 92 if (cma_in_zone(gfp))
d7e673ec2c8e0ea Nicolas Saenz Julienne 2020-08-14 93 page = dma_alloc_from_contiguous(NULL, 1 << order,
d7e673ec2c8e0ea Nicolas Saenz Julienne 2020-08-14 94 order, false);
d7e673ec2c8e0ea Nicolas Saenz Julienne 2020-08-14 95 if (!page)
c84dc6e68a1d246 David Rientjes 2020-04-14 96 page = alloc_pages(gfp, order);
54adadf9b08571f David Rientjes 2020-04-20 97 } while (!page && order-- > 0);
e860c299ac0d738 David Rientjes 2020-04-14 98 if (!page)
e860c299ac0d738 David Rientjes 2020-04-14 99 goto out;
e860c299ac0d738 David Rientjes 2020-04-14 100
c84dc6e68a1d246 David Rientjes 2020-04-14 101 arch_dma_prep_coherent(page, pool_size);
e860c299ac0d738 David Rientjes 2020-04-14 102
76a19940bd62a81 David Rientjes 2020-04-14 103 #ifdef CONFIG_DMA_DIRECT_REMAP
c84dc6e68a1d246 David Rientjes 2020-04-14 104 addr = dma_common_contiguous_remap(page, pool_size,
e860c299ac0d738 David Rientjes 2020-04-14 @105 pgprot_dmacoherent(PAGE_KERNEL),
e860c299ac0d738 David Rientjes 2020-04-14 106 __builtin_return_address(0));
e860c299ac0d738 David Rientjes 2020-04-14 107 if (!addr)
54adadf9b08571f David Rientjes 2020-04-20 108 goto free_page;
76a19940bd62a81 David Rientjes 2020-04-14 109 #else
76a19940bd62a81 David Rientjes 2020-04-14 110 addr = page_to_virt(page);
76a19940bd62a81 David Rientjes 2020-04-14 111 #endif
76a19940bd62a81 David Rientjes 2020-04-14 112 /*
76a19940bd62a81 David Rientjes 2020-04-14 113 * Memory in the atomic DMA pools must be unencrypted, the pools do not
2f5388a29be82a6 Christoph Hellwig 2020-08-17 114 * shrink so no re-encryption occurs in dma_direct_free().
76a19940bd62a81 David Rientjes 2020-04-14 115 */
76a19940bd62a81 David Rientjes 2020-04-14 116 ret = set_memory_decrypted((unsigned long)page_to_virt(page),
76a19940bd62a81 David Rientjes 2020-04-14 117 1 << order);
76a19940bd62a81 David Rientjes 2020-04-14 118 if (ret)
76a19940bd62a81 David Rientjes 2020-04-14 119 goto remove_mapping;
54adadf9b08571f David Rientjes 2020-04-20 120 ret = gen_pool_add_virt(pool, (unsigned long)addr, page_to_phys(page),
54adadf9b08571f David Rientjes 2020-04-20 121 pool_size, NUMA_NO_NODE);
e860c299ac0d738 David Rientjes 2020-04-14 122 if (ret)
76a19940bd62a81 David Rientjes 2020-04-14 123 goto encrypt_mapping;
e860c299ac0d738 David Rientjes 2020-04-14 124
2edc5bb3c5cc421 David Rientjes 2020-04-14 125 dma_atomic_pool_size_add(gfp, pool_size);
e860c299ac0d738 David Rientjes 2020-04-14 126 return 0;
e860c299ac0d738 David Rientjes 2020-04-14 127
76a19940bd62a81 David Rientjes 2020-04-14 128 encrypt_mapping:
76a19940bd62a81 David Rientjes 2020-04-14 129 ret = set_memory_encrypted((unsigned long)page_to_virt(page),
76a19940bd62a81 David Rientjes 2020-04-14 130 1 << order);
76a19940bd62a81 David Rientjes 2020-04-14 131 if (WARN_ON_ONCE(ret)) {
76a19940bd62a81 David Rientjes 2020-04-14 132 /* Decrypt succeeded but encrypt failed, purposely leak */
76a19940bd62a81 David Rientjes 2020-04-14 133 goto out;
76a19940bd62a81 David Rientjes 2020-04-14 134 }
e860c299ac0d738 David Rientjes 2020-04-14 135 remove_mapping:
76a19940bd62a81 David Rientjes 2020-04-14 136 #ifdef CONFIG_DMA_DIRECT_REMAP
c84dc6e68a1d246 David Rientjes 2020-04-14 137 dma_common_free_remap(addr, pool_size);
76a19940bd62a81 David Rientjes 2020-04-14 138 #endif
76a19940bd62a81 David Rientjes 2020-04-14 139 free_page: __maybe_unused
c84dc6e68a1d246 David Rientjes 2020-04-14 140 __free_pages(page, order);
e860c299ac0d738 David Rientjes 2020-04-14 141 out:
54adadf9b08571f David Rientjes 2020-04-20 142 return ret;
54adadf9b08571f David Rientjes 2020-04-20 143 }
54adadf9b08571f David Rientjes 2020-04-20 144
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2023-09-27 7:14 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20230926175208.9298-2-james.quinlan@broadcom.com>
2023-09-27 7:13 ` [PATCH v1 1/1] ARM: Select DMA_DIRECT_REMAP to fix restricted DMA kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).