diff options
Diffstat (limited to 'drivers/lguest/page_tables.c')
-rw-r--r-- | drivers/lguest/page_tables.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/lguest/page_tables.c b/drivers/lguest/page_tables.c index 17d3329e34c2..f19add469944 100644 --- a/drivers/lguest/page_tables.c +++ b/drivers/lguest/page_tables.c | |||
@@ -640,6 +640,7 @@ void map_switcher_in_guest(struct lg_cpu *cpu, struct lguest_pages *pages) | |||
640 | pte_t *switcher_pte_page = __get_cpu_var(switcher_pte_pages); | 640 | pte_t *switcher_pte_page = __get_cpu_var(switcher_pte_pages); |
641 | pgd_t switcher_pgd; | 641 | pgd_t switcher_pgd; |
642 | pte_t regs_pte; | 642 | pte_t regs_pte; |
643 | unsigned long pfn; | ||
643 | 644 | ||
644 | /* Make the last PGD entry for this Guest point to the Switcher's PTE | 645 | /* Make the last PGD entry for this Guest point to the Switcher's PTE |
645 | * page for this CPU (with appropriate flags). */ | 646 | * page for this CPU (with appropriate flags). */ |
@@ -654,7 +655,8 @@ void map_switcher_in_guest(struct lg_cpu *cpu, struct lguest_pages *pages) | |||
654 | * CPU's "struct lguest_pages": if we make sure the Guest's register | 655 | * CPU's "struct lguest_pages": if we make sure the Guest's register |
655 | * page is already mapped there, we don't have to copy them out | 656 | * page is already mapped there, we don't have to copy them out |
656 | * again. */ | 657 | * again. */ |
657 | regs_pte = pfn_pte (__pa(lg->regs_page) >> PAGE_SHIFT, __pgprot(_PAGE_KERNEL)); | 658 | pfn = __pa(cpu->regs_page) >> PAGE_SHIFT; |
659 | regs_pte = pfn_pte(pfn, __pgprot(_PAGE_KERNEL)); | ||
658 | switcher_pte_page[(unsigned long)pages/PAGE_SIZE%PTRS_PER_PTE] = regs_pte; | 660 | switcher_pte_page[(unsigned long)pages/PAGE_SIZE%PTRS_PER_PTE] = regs_pte; |
659 | } | 661 | } |
660 | /*:*/ | 662 | /*:*/ |