sandbox: ensure that state->ram_buf is in low memory
Addresses in state->ram_buf must be in the low 4 GiB of the address space. Otherwise we cannot correctly fill SMBIOS tables. This shows up in warnings like: WARNING: SMBIOS table_address overflow 7f752735e020 Ensure that state->ram_buf is initialized by the first invocation of os_malloc(). Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
b953ec2bca
commit
3beba4ad34
1 changed files with 8 additions and 4 deletions
|
@ -453,6 +453,14 @@ int main(int argc, char *argv[])
|
|||
|
||||
text_base = os_find_text_base();
|
||||
|
||||
/*
|
||||
* This must be the first invocation of os_malloc() to have
|
||||
* state->ram_buf in the low 4 GiB.
|
||||
*/
|
||||
ret = state_init();
|
||||
if (ret)
|
||||
goto err;
|
||||
|
||||
/*
|
||||
* Copy argv[] so that we can pass the arguments in the original
|
||||
* sequence when resetting the sandbox.
|
||||
|
@ -467,10 +475,6 @@ int main(int argc, char *argv[])
|
|||
gd = &data;
|
||||
gd->arch.text_base = text_base;
|
||||
|
||||
ret = state_init();
|
||||
if (ret)
|
||||
goto err;
|
||||
|
||||
state = state_get_current();
|
||||
if (os_parse_args(state, argc, argv))
|
||||
return 1;
|
||||
|
|
Loading…
Reference in a new issue