On Sat, Nov 10, 2012 at 03:42:17PM +0000, Christoffer Dall wrote: > KVM uses the stage-2 page tables and the Hyp page table format, > so we define the fields and page protection flags needed by KVM. > > The nomenclature is this: > - page_hyp: PL2 code/data mappings > - page_hyp_device: PL2 device mappings (vgic access) > - page_s2: Stage-2 code/data page mappings > - page_s2_device: Stage-2 device mappings (vgic access) > > Reviewed-by: Marcelo Tosatti <mtosatti@xxxxxxxxxx> > Christoffer Dall <c.dall@xxxxxxxxxxxxxxxxxxxxxx> [...] > diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c > index 941dfb9..087d949 100644 > --- a/arch/arm/mm/mmu.c > +++ b/arch/arm/mm/mmu.c > @@ -57,43 +57,61 @@ static unsigned int cachepolicy __initdata = CPOLICY_WRITEBACK; > static unsigned int ecc_mask __initdata = 0; > pgprot_t pgprot_user; > pgprot_t pgprot_kernel; > +pgprot_t pgprot_hyp_device; > +pgprot_t pgprot_s2; > +pgprot_t pgprot_s2_device; > > EXPORT_SYMBOL(pgprot_user); > EXPORT_SYMBOL(pgprot_kernel); > +EXPORT_SYMBOL(pgprot_hyp_device); > +EXPORT_SYMBOL(pgprot_s2); > +EXPORT_SYMBOL(pgprot_s2_device); Do we still need these? > struct cachepolicy { > const char policy[16]; > unsigned int cr_mask; > pmdval_t pmd; > pteval_t pte; > + pteval_t pte_s2; > }; > > +#ifdef CONFIG_ARM_LPAE > +#define s2_policy(policy) policy > +#else > +#define s2_policy(policy) 0 > +#endif Put the macro in pgtable-{2,3}level.h? Will -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html