Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
core: mm: fix mobj_tee_ram_rw initialization
Until this patch, for CFG_CORE_RWDATA_NOEXEC=n and CFG_CORE_ASLR=y there's an error in mobj_init() when the length of the combined TEE_RAM_RWX is calculated. The relocatable address VCORE_UNPG_RW_PA is mixed with the absolute address TEE_RAM_START. Relocated addresses only changes with CFG_CORE_ASLR=y so before ASLR this expression was correct. The combined TEE_RAM_RWX is only used with CFG_CORE_RWDATA_NOEXEC=n so that is also a perquisite for the error. The calculated length field is usually not more wrong than code depending on mobj_tee_ram_rw/mobj_tee_ram_rx still works. So the error wasn't visible until length checks for phys_to_virt() was introduced with the commit c2e4eb4 ("core_mmu: fix phys_to_virt() to check length"). Fix this by using VCORE_START_VA instead of TEE_RAM_START since the former is a relocated address. Fixes: c2e4eb4 ("core_mmu: fix phys_to_virt() to check length") Fixes: 170e908 ("core: add support for CFG_CORE_ASLR") Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
- Loading branch information