Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

core: mm: fix mobj_tee_ram_rw initialization #7088

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Commits on Oct 21, 2024

  1. 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>
    jenswi-linaro committed Oct 21, 2024
    Configuration menu
    Copy the full SHA
    e280c55 View commit details
    Browse the repository at this point in the history