]> git.karo-electronics.de Git - karo-tx-linux.git/commit
x86: NX bit handling in change_page_attr()
authorHuang, Ying <ying.huang@intel.com>
Wed, 17 Oct 2007 16:04:35 +0000 (18:04 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 26 Nov 2007 17:42:31 +0000 (09:42 -0800)
commit5b7e28db04cb42b8f8b81c6ae61a7d77bddc373a
tree5ccef0309dbc2abaf44e4bce3525a3506c4aa360
parent420b463a199d10fc89f41f24fb8c60ed0181b4ad
x86: NX bit handling in change_page_attr()

patch 84e0fdb1754d066dd0a8b257de7299f392d1e727 in mainline.

x86: NX bit handling in change_page_attr()

This patch fixes a bug of change_page_attr/change_page_attr_addr on
Intel x86_64 CPUs.  After changing page attribute to be executable with
these functions, the page remains un-executable on Intel x86_64 CPU.
Because on Intel x86_64 CPU, only if the "NX" bits of all four level
page tables are cleared, the corresponding page is executable (refer to
section 4.13.2 of Intel 64 and IA-32 Architectures Software Developer's
Manual).  So, the bug is fixed through clearing the "NX" bit of PMD when
splitting the huge PMD.

Signed-off-by: Huang Ying <ying.huang@intel.com>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/x86_64/mm/pageattr.c