static pmd_t * __init one_md_table_init(pgd_t *pgd)
{
        pud_t *pud;
        pmd_t *pmd_table;
                
#ifdef CONFIG_X86_PAE
        pmd_table = (pmd_t *) alloc_bootmem_low_pages(PAGE_SIZE);
        paravirt_alloc_pmd(__pa(page_table) >> PAGE_SHIFT);
                                ^^^^^^^^^^ pmd_table?
        set_pgd(pgd, __pgd(__pa(pmd_table) | _PAGE_PRESENT));
        pud = pud_offset(pgd, 0);
        if (pmd_table != pmd_offset(pud, 0)) 
                BUG();
#else
        pud = pud_offset(pgd, 0);
        pmd_table = pmd_offset(pud, 0);
#endif

        return pmd_table;
}


Also, did you anticipate that these paravirt_alloc_* functions would be 
useful for Xen to maintain the "pagetable pages must be RO" constraint?  
Or do you think that will need to be done in a second pass (which is how 
it seems to me).

    J

_______________________________________________
Virtualization mailing list
[email protected]
https://lists.osdl.org/mailman/listinfo/virtualization

Reply via email to