sandbox: correct determination of the text base
authorHeinrich Schuchardt <xypron.glpk@gmx.de>
Sat, 15 May 2021 17:29:13 +0000 (19:29 +0200)
committerSimon Glass <sjg@chromium.org>
Sat, 5 Jun 2021 13:35:47 +0000 (07:35 -0600)
commit205b9f510035b835d48bae07ce8b968c3d6d75af
treee351f123d3f9f276cda963f51e921601ee14a482
parent0e35b937b9c46f313a38aa7d4aba88be76d8abf7
sandbox: correct determination of the text base

os_find_text_base() assumes that first line of /proc/self/maps holds
information about the text. Hence we must call the function before calling
os_malloc() which calls mmap(0x10000000,).

Failure to do so has led to incorrect values for pc_reloc when an
exception was reported

    => exception undefined

    Illegal instruction
    pc = 0x5628d82e9d3c, pc_reloc = 0x5628c82e9d3c

as well as incorrect output of the bdinfo command

    => bdinfo
    relocaddr   = 0x0000000007858000
    reloc off   = 0x0000000010000000

Fixes: b308d9fd18fa ("sandbox: Avoid using malloc() for system state")
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
arch/sandbox/cpu/start.c