[PATCH] powerpc: Add missing icache flushes for hugepages
authorDavid Gibson <david@gibson.dropbear.id.au>
Fri, 9 Dec 2005 03:20:52 +0000 (14:20 +1100)
committerPaul Mackerras <paulus@samba.org>
Fri, 9 Dec 2005 05:30:48 +0000 (16:30 +1100)
commitcbf52afdc0eb88492cf7808cc4b4f58a46f1b1ad
tree89910c9d9a054f0bf64670757a3715e19fcc62b2
parentdabcafd3f363bacd6b89f537af27dc79128e4806
[PATCH] powerpc: Add missing icache flushes for hugepages

On most powerpc CPUs, the dcache and icache are not coherent so
between writing and executing a page, the caches must be flushed.
Userspace programs assume pages given to them by the kernel are icache
clean, so we must do this flush between the kernel clearing a page and
it being mapped into userspace for execute.  We were not doing this
for hugepages, this patch corrects the situation.

We use the same lazy mechanism as we use for normal pages, delaying
the flush until userspace actually attempts to execute from the page
in question.

Tested on G5.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/mm/hash_utils_64.c
arch/powerpc/mm/hugetlbpage.c
include/asm-powerpc/mmu.h