Re: [PATCH] of: reserved_mem: Allow reserved_mem framework detect "cma=" kernel param
From: kernel test robot
Date: Fri Dec 12 2025 - 06:19:54 EST
Hi Oreoluwa,
kernel test robot noticed the following build errors:
[auto build test ERROR on akpm-mm/mm-everything]
[also build test ERROR on v6.18]
[cannot apply to robh/for-next linus/master next-20251212]
[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/Oreoluwa-Babatunde/of-reserved_mem-Allow-reserved_mem-framework-detect-cma-kernel-param/20251210-082127
base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
patch link: https://lore.kernel.org/r/20251210002027.1171519-1-oreoluwa.babatunde%40oss.qualcomm.com
patch subject: [PATCH] of: reserved_mem: Allow reserved_mem framework detect "cma=" kernel param
config: nios2-randconfig-r073-20251212 (https://download.01.org/0day-ci/archive/20251212/202512121807.G5FMUgvU-lkp@xxxxxxxxx/config)
compiler: nios2-linux-gcc (GCC) 10.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251212/202512121807.G5FMUgvU-lkp@xxxxxxxxx/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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512121807.G5FMUgvU-lkp@xxxxxxxxx/
All errors (new ones prefixed by >>):
nios2-linux-ld: drivers/of/of_reserved_mem.o: in function `__reserved_mem_reserve_reg':
>> drivers/of/of_reserved_mem.c:176: undefined reference to `cma_skip_dt_default_reserved_mem'
>> drivers/of/of_reserved_mem.c:176:(.init.text+0x5b8): relocation truncated to fit: R_NIOS2_CALL26 against `cma_skip_dt_default_reserved_mem'
nios2-linux-ld: drivers/of/of_reserved_mem.o: in function `__reserved_mem_alloc_size':
drivers/of/of_reserved_mem.c:444: undefined reference to `cma_skip_dt_default_reserved_mem'
drivers/of/of_reserved_mem.c:444:(.init.text+0x8a4): relocation truncated to fit: R_NIOS2_CALL26 against `cma_skip_dt_default_reserved_mem'
nios2-linux-ld: drivers/of/of_reserved_mem.o: in function `fdt_scan_reserved_mem_reg_nodes':
drivers/of/of_reserved_mem.c:272: undefined reference to `cma_skip_dt_default_reserved_mem'
drivers/of/of_reserved_mem.c:272:(.init.text+0xbb0): relocation truncated to fit: R_NIOS2_CALL26 against `cma_skip_dt_default_reserved_mem'
vim +176 drivers/of/of_reserved_mem.c
150
151 /*
152 * __reserved_mem_reserve_reg() - reserve all memory described in 'reg' property
153 */
154 static int __init __reserved_mem_reserve_reg(unsigned long node,
155 const char *uname)
156 {
157 int t_len = (dt_root_addr_cells + dt_root_size_cells) * sizeof(__be32);
158 phys_addr_t base, size;
159 int len;
160 const __be32 *prop;
161 bool nomap, default_cma;
162
163 prop = of_get_flat_dt_prop(node, "reg", &len);
164 if (!prop)
165 return -ENOENT;
166
167 if (len && len % t_len != 0) {
168 pr_err("Reserved memory: invalid reg property in '%s', skipping node.\n",
169 uname);
170 return -EINVAL;
171 }
172
173 nomap = of_get_flat_dt_prop(node, "no-map", NULL) != NULL;
174 default_cma = of_get_flat_dt_prop(node, "linux,cma-default", NULL);
175
> 176 if (default_cma && cma_skip_dt_default_reserved_mem()) {
177 pr_err("Skipping dt linux,cma-default for \"cma=\" kernel param.\n");
178 return -EINVAL;
179 }
180
181 while (len >= t_len) {
182 base = dt_mem_next_cell(dt_root_addr_cells, &prop);
183 size = dt_mem_next_cell(dt_root_size_cells, &prop);
184
185 if (size && early_init_dt_reserve_memory(base, size, nomap) == 0) {
186 /* Architecture specific contiguous memory fixup. */
187 if (of_flat_dt_is_compatible(node, "shared-dma-pool") &&
188 of_get_flat_dt_prop(node, "reusable", NULL))
189 dma_contiguous_early_fixup(base, size);
190 pr_debug("Reserved memory: reserved region for node '%s': base %pa, size %lu MiB\n",
191 uname, &base, (unsigned long)(size / SZ_1M));
192 } else {
193 pr_err("Reserved memory: failed to reserve memory for node '%s': base %pa, size %lu MiB\n",
194 uname, &base, (unsigned long)(size / SZ_1M));
195 }
196
197 len -= t_len;
198 }
199 return 0;
200 }
201
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki