sh: Couple kernel and user write page perm bits for CONFIG_X2TLB
authorMatt Fleming <matt@console-pimps.org>
Fri, 11 Dec 2009 22:58:17 +0000 (22:58 +0000)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 23 Feb 2010 15:37:55 +0000 (07:37 -0800)
commit473e685ee12ccd50d626b58c455dde6bbb51df61
treeab3d7d398e3df03dcc63c139b7f3cecc3b43df23
parent36a508e6c61a3c49680ee349149a8f5f1fb5acd8
sh: Couple kernel and user write page perm bits for CONFIG_X2TLB

commit fcb4ebd678858850e8b029909064175cb627868d upstream.

pte_write() should check whether the permissions include either the user
or kernel write permission bits. Likewise, pte_wrprotect() needs to
remove both the kernel and user write bits.

Without this patch handle_tlbmiss() doesn't handle faulting in pages
from the P3 area (our vmalloc space) because of a write. Mappings of the
P3 space have the _PAGE_EXT_KERN_WRITE bit but not _PAGE_EXT_USER_WRITE.

Signed-off-by: Matt Fleming <matt@console-pimps.org>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/sh/include/asm/pgtable_32.h