mirror of
https://github.com/opnsense/src.git
synced 2026-06-11 09:41:03 -04:00
Make sure the memory region definitions are zeroed before use.
Since only 32bits of the values are read from the fdt, the existing values
can compromise the results.
Fixes the boot on the Netgate 3100.
Reviewed by: andrew, mmel
Sponsored by: Rubicon Communications, LLC ("Netgate")
Differential Revision: https://reviews.freebsd.org/D50083
This commit is contained in:
parent
720fabb36f
commit
4e3a6fe013
1 changed files with 3 additions and 0 deletions
|
|
@ -441,6 +441,7 @@ fdt_foreach_reserved_region(fdt_mem_region_cb cb, void *arg)
|
|||
reservep = (pcell_t *)&reserve;
|
||||
for (i = 0; i < tuples; i++) {
|
||||
|
||||
memset(&mr, 0, sizeof(mr));
|
||||
rv = fdt_data_to_res(reservep, addr_cells, size_cells,
|
||||
(u_long *)&mr.mr_start, (u_long *)&mr.mr_size);
|
||||
|
||||
|
|
@ -484,6 +485,7 @@ fdt_foreach_reserved_mem(fdt_mem_region_cb cb, void *arg)
|
|||
/* XXX: Does a no-map of a dynamic range make sense? */
|
||||
continue;
|
||||
|
||||
memset(&mr, 0, sizeof(mr));
|
||||
fdt_data_to_res(reg, addr_cells, size_cells,
|
||||
(u_long *)&mr.mr_start, (u_long *)&mr.mr_size);
|
||||
|
||||
|
|
@ -526,6 +528,7 @@ fdt_foreach_mem_region(fdt_mem_region_cb cb, void *arg)
|
|||
regp = (pcell_t *)®
|
||||
for (i = 0; i < tuples; i++) {
|
||||
|
||||
memset(&mr, 0, sizeof(mr));
|
||||
rv = fdt_data_to_res(regp, addr_cells, size_cells,
|
||||
(u_long *)&mr.mr_start, (u_long *)&mr.mr_size);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue