Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 131606
b: refs/heads/master
c: 07a66d7
h: refs/heads/master
v: v3
  • Loading branch information
Ingo Molnar committed Feb 20, 2009
1 parent a9756bc commit 265c50e
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 11 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 48ffc70b675aa7798a52a2e92e20f6cce9140b3d
refs/heads/master: 07a66d7c53a538e1a9759954a82bb6c07365eff9
15 changes: 5 additions & 10 deletions trunk/arch/x86/mm/pageattr.c
Original file line number Diff line number Diff line change
Expand Up @@ -508,18 +508,13 @@ static int split_large_page(pte_t *kpte, unsigned long address)
#endif

/*
* Install the new, split up pagetable. Important details here:
* Install the new, split up pagetable.
*
* On Intel the NX bit of all levels must be cleared to make a
* page executable. See section 4.13.2 of Intel 64 and IA-32
* Architectures Software Developer's Manual).
*
* Mark the entry present. The current mapping might be
* set to not present, which we preserved above.
* We use the standard kernel pagetable protections for the new
* pagetable protections, the actual ptes set above control the
* primary protection behavior:
*/
ref_prot = pte_pgprot(pte_mkexec(pte_clrhuge(*kpte)));
pgprot_val(ref_prot) |= _PAGE_PRESENT;
__set_pmd_pte(kpte, address, mk_pte(base, ref_prot));
__set_pmd_pte(kpte, address, mk_pte(base, __pgprot(_KERNPG_TABLE)));
base = NULL;

out_unlock:
Expand Down

0 comments on commit 265c50e

Please sign in to comment.