lguest: map switcher with executable page table entries
Map switcher with executable page table entries. (This bug didn't matter before PAE and hence NX support -- RR) Signed-off-by: Matias Zabaljauregui <zabaljauregui@gmail.com> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
parent
7b5c806c35
commit
ed1dc77810
|
@ -95,7 +95,7 @@ static __init int map_switcher(void)
|
|||
* array of struct pages. It increments that pointer, but we don't
|
||||
* care. */
|
||||
pagep = switcher_page;
|
||||
err = map_vm_area(switcher_vma, PAGE_KERNEL, &pagep);
|
||||
err = map_vm_area(switcher_vma, PAGE_KERNEL_EXEC, &pagep);
|
||||
if (err) {
|
||||
printk("lguest: map_vm_area failed: %i\n", err);
|
||||
goto free_vma;
|
||||
|
|
|
@ -714,7 +714,7 @@ void map_switcher_in_guest(struct lg_cpu *cpu, struct lguest_pages *pages)
|
|||
|
||||
/* Make the last PGD entry for this Guest point to the Switcher's PTE
|
||||
* page for this CPU (with appropriate flags). */
|
||||
switcher_pgd = __pgd(__pa(switcher_pte_page) | __PAGE_KERNEL);
|
||||
switcher_pgd = __pgd(__pa(switcher_pte_page) | __PAGE_KERNEL_EXEC);
|
||||
|
||||
cpu->lg->pgdirs[cpu->cpu_pgd].pgdir[SWITCHER_PGD_INDEX] = switcher_pgd;
|
||||
|
||||
|
|
Loading…
Reference in New Issue