lkml.org 
[lkml]   [2008]   [Jan]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH] fill in missing pv_mmu_ops entries for PAGETABLE_LEVELS >= 3
    On Fri, Jan 18, 2008 at 03:20:15PM -0200, Glauber de Oliveira Costa wrote:
    > Hi,
    >
    > This small series provides some more fixes towards the goal
    > to have the PARAVIRT selectable for x86_64. After that, just
    > some more small steps are needed.
    >
    > The first fix is not even specific for PARAVIRT, and it's actually
    > preventing the whole tree from booting.
    >

    And the following allows PARAVIRT kernels to boot on x86_64.

    -----

    Fill in missing pagetable manipulation entries in pv_mmu_ops
    for PAGETABLE_LEVELS >= 3.

    Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>


    Index: linux-2.6-x86/arch/x86/kernel/paravirt.c
    ===================================================================
    --- linux-2.6-x86.orig/arch/x86/kernel/paravirt.c
    +++ linux-2.6-x86/arch/x86/kernel/paravirt.c
    @@ -396,16 +396,25 @@ struct pv_mmu_ops pv_mmu_ops = {
    .kmap_atomic_pte = kmap_atomic,
    #endif

    +#if PAGETABLE_LEVELS >= 3
    #ifdef CONFIG_X86_PAE
    .set_pte_atomic = native_set_pte_atomic,
    .set_pte_present = native_set_pte_present,
    - .set_pud = native_set_pud,
    .pte_clear = native_pte_clear,
    .pmd_clear = native_pmd_clear,
    -
    +#endif
    + .set_pud = native_set_pud,
    + .set_pgd = native_set_pgd,
    + .pgd_clear = native_pgd_clear,
    .pmd_val = native_pmd_val,
    .make_pmd = native_make_pmd,
    +
    +#if PAGETABLE_LEVELS == 4
    + .pud_val = native_pud_val,
    + .make_pud = native_make_pud,
    + .pud_clear = native_pud_clear,
    #endif
    +#endif /* PAGETABLE_LEVELS >= 3 */

    .pte_val = native_pte_val,
    .pgd_val = native_pgd_val,




    \
     
     \ /
      Last update: 2008-01-19 19:19    [W:0.020 / U:31.516 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site