• Stuart Menefy's avatar
    sh: Flush executable pages in copy_user_highpage · a25bbe12
    Stuart Menefy authored
    This resolves a problem seen when using the Android dynamic linker.
    Sometimes the dynamic linker would seg-fault at start up and this
    was eventually traced to the handling of a COW fault for a page which
    was being modified by the linker. If there was no cache aliasing between
    the kernel and the user page, the page was not flushed, leaving the
    newly copied data in the D-cache. However when executing instructions
    from that page, the I-cache is filled directly from external memory,
    rather than the D-cache, and causing garbage to be executed.
    Signed-off-by: default avatarStuart Menefy <stuart.menefy@st.com>
    Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
    a25bbe12
cache.c 9.27 KB