Skip to content

Commit 85a8a30

Browse files
ytcooderobherring
authored andcommitted
of/reserved_mem: Simplify the logic of fdt_scan_reserved_mem_reg_nodes()
Use the existing helper functions to simplify the logic of fdt_scan_reserved_mem_reg_nodes() Signed-off-by: Yuntao Wang <yuntao.wang@linux.dev> Link: https://patch.msgid.link/20251115134753.179931-8-yuntao.wang@linux.dev Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
1 parent 8c0f606 commit 85a8a30

1 file changed

Lines changed: 7 additions & 18 deletions

File tree

drivers/of/of_reserved_mem.c

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -225,12 +225,9 @@ static void __init __rmem_check_for_overlap(void);
225225
*/
226226
void __init fdt_scan_reserved_mem_reg_nodes(void)
227227
{
228-
int t_len = (dt_root_addr_cells + dt_root_size_cells) * sizeof(__be32);
229228
const void *fdt = initial_boot_params;
230229
phys_addr_t base, size;
231-
const __be32 *prop;
232230
int node, child;
233-
int len;
234231

235232
if (!fdt)
236233
return;
@@ -251,29 +248,21 @@ void __init fdt_scan_reserved_mem_reg_nodes(void)
251248

252249
fdt_for_each_subnode(child, fdt, node) {
253250
const char *uname;
251+
u64 b, s;
254252

255-
prop = of_get_flat_dt_prop(child, "reg", &len);
256-
if (!prop)
257-
continue;
258253
if (!of_fdt_device_is_available(fdt, child))
259254
continue;
260255

261-
uname = fdt_get_name(fdt, child, NULL);
262-
if (len && len % t_len != 0) {
263-
pr_err("Reserved memory: invalid reg property in '%s', skipping node.\n",
264-
uname);
256+
if (!of_flat_dt_get_addr_size(child, "reg", &b, &s))
265257
continue;
266-
}
267-
268-
if (len > t_len)
269-
pr_warn("%s() ignores %d regions in node '%s'\n",
270-
__func__, len / t_len - 1, uname);
271258

272-
base = dt_mem_next_cell(dt_root_addr_cells, &prop);
273-
size = dt_mem_next_cell(dt_root_size_cells, &prop);
259+
base = b;
260+
size = s;
274261

275-
if (size)
262+
if (size) {
263+
uname = fdt_get_name(fdt, child, NULL);
276264
fdt_reserved_mem_save_node(child, uname, base, size);
265+
}
277266
}
278267

279268
/* check for overlapping reserved regions */

0 commit comments

Comments
 (0)