Home
last modified time | relevance | path

Searched hist:b212ad1db74d5e4a50b6b8fd548825fc47dc054f (Results 1 – 1 of 1) sorted by relevance

/optee_os/core/mm/
H A Dcore_mmu.cb212ad1db74d5e4a50b6b8fd548825fc47dc054f Thu Jun 30 21:01:27 UTC 2022 Jens Wiklander <jens.wiklander@linaro.org> core: pager: fix get_linear_map_end()

With paging enabled there is an unpaged portion of OP-TEE which ends at
the address returned by get_linear_map_end(). Without ASLR enabled this
is both a virtual and physical address. However, with ASLR enabled it's
important to keep these addresses apart so add get_linear_map_end_va()
and get_linear_map_end_pa() and use the right function in
phys_to_virt_tee_ram() and is_unpaged().

This fixes occasional errors like:
E/TC:0 0 Panic 'can't find mmu tables' at core/arch/arm/mm/tee_pager.c:549 <tee_pager_early_init>
E/TC:0 0 TEE load address @ 0x50b9000
E/TC:0 0 Call stack:
E/TC:0 0 0x050bf144

with paging and ASLR enabled.

Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (vexpress-qemu_armv8a)
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>