Re: [PATCH v2 6/7] of/reserved_mem: Simplify the logic of __reserved_mem_reserve_reg()

kernel test robot
2025-11-13T19:38:03Z

Hi Yuntao,

kernel test robot noticed the following build errors:

[auto build test ERROR on robh/for-next]
[also build test ERROR on linus/master v6.18-rc5 next-20251113]
[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/Yuntao-Wang/of-fdt-Consolidate-duplicate-code-into-helper-functions/20251114-004121
base: https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
patch link: https://lore.kernel.org/r/20251113155104.226617-7-yuntao.wang%40linux.dev
patch subject: [PATCH v2 6/7] of/reserved_mem: Simplify the logic of __reserved_mem_reserve_reg()
config: arm-allnoconfig (https://download.01.org/0day-ci/archive/20251114/202511140307.Th0UqUd9-lkp@intel.com/config)
compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 0bba1e76581bad04e7d7f09f5115ae5e2989e0d9)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251114/202511140307.Th0UqUd9-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/202511140307.Th0UqUd9-lkp@intel.com/

All errors (new ones prefixed by >>):

>> drivers/of/of_reserved_mem.c:175:31: error: incompatible pointer types passing 'phys_addr_t *' (aka 'unsigned int *') to parameter of type 'u64 *' (aka 'unsigned long long *') [-Wincompatible-pointer-types]
175 | of_fdt_read_addr_size(prop, &base, &size);
| ^~~~~
include/linux/of_fdt.h:62:60: note: passing argument to parameter 'addr' here
62 | extern void of_fdt_read_addr_size(const __be32 *prop, u64 *addr, u64 *size);
| ^
drivers/of/of_reserved_mem.c:175:38: error: incompatible pointer types passing 'phys_addr_t *' (aka 'unsigned int *') to parameter of type 'u64 *' (aka 'unsigned long long *') [-Wincompatible-pointer-types]
175 | of_fdt_read_addr_size(prop, &base, &size);
| ^~~~~
include/linux/of_fdt.h:62:71: note: passing argument to parameter 'size' here
62 | extern void of_fdt_read_addr_size(const __be32 *prop, u64 *addr, u64 *size);
| ^
2 errors generated.

vim +175 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 phys_addr_t base, size;
158 int len;
159 const __be32 *prop;
160 bool nomap;
161
162 prop = of_fdt_get_addr_size_prop(node, "reg", &len);
163 if (!len)
164 return -ENOENT;
165
166 if (len < 0) {
167 pr_err("Reserved memory: invalid reg property in '%s', skipping node.\n",
168 uname);
169 return -EINVAL;
170 }
171
172 nomap = of_get_flat_dt_prop(node, "no-map", NULL) != NULL;
173
174 while (len-- > 0) {
> 175 of_fdt_read_addr_size(prop, &base, &size);
176
177 if (size && early_init_dt_reserve_memory(base, size, nomap) == 0) {
178 /* Architecture specific contiguous memory fixup. */
179 if (of_flat_dt_is_compatible(node, "shared-dma-pool") &&
180 of_get_flat_dt_prop(node, "reusable", NULL))
181 dma_contiguous_early_fixup(base, size);
182 pr_debug("Reserved memory: reserved region for node '%s': base %pa, size %lu MiB\n",
183 uname, &base, (unsigned long)(size / SZ_1M));
184 } else {
185 pr_err("Reserved memory: failed to reserve memory for node '%s': base %pa, size %lu MiB\n",
186 uname, &base, (unsigned long)(size / SZ_1M));
187 }
188 }
189 return 0;
190 }
191

--
0-DAY CI Kernel Test Service