2007-02-20 17:05:16

by Jeff Dike

[permalink] [raw]
Subject: [PATCH 3/3] UML - pte_mkread fix

Fix the fact that pte_mkread set _PAGE_RW instead of _PAGE_USER (the logic is
copied from i386 in most place, so it is really as bad as you're thinking).

Thus currently page tables are more permissive than they should.

Such a change may trigger other latent bugs, so be careful with this.

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <[email protected]>
Signed-off-by: Jeff Dike <[email protected]>
--
include/asm-um/pgtable.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux-2.6.18-mm/include/asm-um/pgtable.h
===================================================================
--- linux-2.6.18-mm.orig/include/asm-um/pgtable.h 2006-10-03 12:53:16.000000000 -0400
+++ linux-2.6.18-mm/include/asm-um/pgtable.h 2006-10-09 12:25:44.000000000 -0400
@@ -270,7 +270,7 @@ static inline pte_t pte_wrprotect(pte_t

static inline pte_t pte_mkread(pte_t pte)
{
- pte_set_bits(pte, _PAGE_RW);
+ pte_set_bits(pte, _PAGE_USER);
return(pte_mknewprot(pte));
}


--
Work email - jdike at linux dot intel dot com