]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
sh: Flush executable pages in copy_user_highpage
authorStuart Menefy <stuart.menefy@st.com>
Mon, 31 Jan 2011 17:50:29 +0000 (17:50 +0000)
committerPaul Mundt <lethal@linux-sh.org>
Tue, 15 Feb 2011 07:24:31 +0000 (16:24 +0900)
commita25bbe12224e649fe12cba7a2fa920180a35c8a9
tree2c4b07a6e106551b70f3c48e5ce32824e3168a1e
parenta086536858ad0eb51c58074af2fc2c89ba9c1f5e
sh: Flush executable pages in copy_user_highpage

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: Stuart Menefy <stuart.menefy@st.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
arch/sh/mm/cache.c