kexec-tools: powerpc: dt_reserve doesn't allocate enough memory for large properties
Subsystems (2)
PATCH 1/1 kexec-tools: powerpc: dt_reserve doesn't allocate enough memory for large properties
On a large ppc64 box I got the following error from kexec -l:
unrecoverable error: could not read "/proc/device-tree/ibm,dynamic-reconfiguration-memory/ibm,dynamic-memory": Bad address
dt_reserve was assuming a property was never larger than INIT_TREE_WORDS (65536), but on this box ibm,dynamic-memory is 119995 words.
Allocate INIT_TREE_WORDS or the number of words requested, whatever is larger.
---
kexec/arch/ppc64/fs2dt.c +6 -1
@@ -57,9 +57,14 @@ extern int my_debug;*/ void dt_reserve (unsigned **dt_ptr,unsigned words) { +unsigned int sz =INIT_TREE_WORDS ; + +if (sz < words) + sz = words; +if (((*dt_ptr - dt_base) + words) >= dt_cur_size) {int offset; -unsigned int new_size = dt_cur_size +INIT_TREE_WORDS ; +unsigned int new_size = dt_cur_size + sz;unsigned *new_dt =realloc (dt_base, new_size*4 );if (!new_dt)
_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec
Simon Horman
AppliedQuoted 10 lines · Anton Blanchard
On a large ppc64 box I got the following error from kexec -l:
unrecoverable error: could not read "
/proc/device-tree/ibm,dynamic-reconfiguration-memory/ibm,dynamic-memory": Bad address
dt_reservewas assuming a property was never larger thanINIT_TREE_WORDS(65536), but on this box ibm,dynamic-memory is 119995 words.Allocate
INIT_TREE_WORDSor the number of words requested, whatever
Thanks, applied.
_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec