]> git.baikalelectronics.ru Git - kernel.git/commit
[PATCH] x86/x86_64: mark rodata section read only: generic x86-64 bugfix
authorArjan van de Ven <arjan@infradead.org>
Fri, 6 Jan 2006 08:12:03 +0000 (00:12 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Fri, 6 Jan 2006 16:33:36 +0000 (08:33 -0800)
commitc9d6016dd7cee589831282170dc0995172c67ae3
tree13a354b83179d6060add1c39bbac79e79f5d4ef2
parent518b77b25e8d3d62a950bb5a34bba57aa3247607
[PATCH] x86/x86_64: mark rodata section read only: generic x86-64 bugfix

Bug fix required for the .rodata work on x86-64:

when change_page_attr() and friends need to break up a 2Mb page into 4Kb
pages, it always set the NX bit on the PMD, which causes the cpu to consider
the entire 2Mb region to be NX regardless of the actual PTE perms.  This is
fine in general, with one big exception: the 2Mb page that covers the last
part of the kernel .text!  The fix is to not invent a new permission for the
new PMD entry, but to just inherit the existing one minus the PSE bit.

Signed-off-by: Arjan van de Ven <arjan@infradead.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Cc: Andi Kleen <ak@muc.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/x86_64/mm/pageattr.c
include/asm-x86_64/pgtable.h