Messages in this thread Patch in this message | | | Subject | [PATCH 04 of 11] x86: fix early_ioremap pagetable ops | Date | Fri, 25 Jan 2008 13:23:13 -0800 | From | Jeremy Fitzhardinge <> |
| |
Put appropriate pagetable update hooks in so that paravirt knows what's going on in there.
Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com> --- arch/x86/mm/ioremap.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c --- a/arch/x86/mm/ioremap.c +++ b/arch/x86/mm/ioremap.c @@ -18,6 +18,7 @@ #include <asm/fixmap.h> #include <asm/pgtable.h> #include <asm/tlbflush.h> +#include <asm/pgalloc.h> #ifdef CONFIG_X86_64 @@ -265,7 +266,7 @@ void __init early_ioremap_init(void) pmd = early_ioremap_pmd(fix_to_virt(FIX_BTMAP_BEGIN)); memset(bm_pte, 0, sizeof(bm_pte)); - set_pmd(pmd, __pmd(__pa(bm_pte) | _PAGE_TABLE)); + pmd_populate_kernel(&init_mm, pmd, bm_pte); /* * The boot-ioremap range spans multiple pmds, for which @@ -295,6 +296,7 @@ void __init early_ioremap_clear(void) pmd = early_ioremap_pmd(fix_to_virt(FIX_BTMAP_BEGIN)); pmd_clear(pmd); + paravirt_release_pt(__pa(bm_pte) >> PAGE_SHIFT); __flush_tlb_all(); }
| |