diff options
author | Milton Miller <miltonm@bga.com> | 2009-01-02 15:04:45 -0600 |
---|---|---|
committer | Simon Horman <horms@verge.net.au> | 2009-01-16 09:41:05 +1100 |
commit | 4fcb65c9089c2c9d203402d549c4e11e44021542 (patch) | |
tree | 644adc8ee623f7c12ad0cf30a0b3513ed5283250 /kexec/kexec.c | |
parent | 79c650e757561b03163da73dfc367f702248ef98 (diff) |
ppc64: segments may be reordered
Instead of fetching data from the segment array, remember the address
when added and find the kernel text from the parsed elf header.
While add_segment (and hence add_buffer) always adds to the end of
the list of segments, it sorts the previous segments before each
allocation. In some layouts, the device tree or initrd will fit
in a hole below the the kernel. When that happens, the previus
code mis-patches purgatory and the kexec fails.
Signed-off-by: Milton Miller <miltonm@bga.com>
Tested-by: M. Mohan Kumar <mohan@in.ibm.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
Diffstat (limited to 'kexec/kexec.c')
0 files changed, 0 insertions, 0 deletions