On Fri, 2008-01-25 at 13:23 -0800, Jeremy Fitzhardinge wrote: > Put appropriate pagetable update hooks in so that paravirt knows > what's going on in there. > > Signed-off-by: Jeremy Fitzhardinge <[EMAIL PROTECTED]> > --- > 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(); > }
This seems to have ended up in f6df72e71eba621b2f5c49b3a763116fac748f6e as: + paravirt_release_pt(__pa(pmd) >> PAGE_SHIFT); and the pmd_populate_kernel hunk is missing altogether. --- >From bfa2a08064a269dd7906ed5f60e436360e1360e7 Mon Sep 17 00:00:00 2001 From: Ian Campbell <[EMAIL PROTECTED]> Date: Thu, 31 Jan 2008 18:56:06 +0000 Subject: [PATCH] x86: fix early_ioremap pagetable ops for paravirt. Some important parts of f6df72e71eba621b2f5c49b3a763116fac748f6e got dropped along the way, reintroduce them. Signed-off-by: Ian Campbell <[EMAIL PROTECTED]> --- arch/x86/mm/ioremap.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c index ed4208e..93d931e 100644 --- a/arch/x86/mm/ioremap.c +++ b/arch/x86/mm/ioremap.c @@ -302,7 +302,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 @@ -332,7 +332,7 @@ void __init early_ioremap_clear(void) pmd = early_ioremap_pmd(fix_to_virt(FIX_BTMAP_BEGIN)); pmd_clear(pmd); - paravirt_release_pt(__pa(pmd) >> PAGE_SHIFT); + paravirt_release_pt(__pa(bm_pte) >> PAGE_SHIFT); __flush_tlb_all(); } -- 1.5.3.8 -- Ian Campbell This fortune would be seven words long if it were six words shorter. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/