From adf8340b3f19c3bc9959bf498ef07690e8faa50a Mon Sep 17 00:00:00 2001 From: Oleksandr Tyshchenko Date: Tue, 11 Mar 2014 15:19:45 +0200 Subject: [PATCH] xen/arm: Clean and invalidate dcache for boot pagetables We need to invalidate dcache too after zeroing boot pagetables to avoid unpredictable behavior which may take place after non-boot CPUs enable their caches. So, replace clean_xen_dcache() macro by a clean_and_invalidate_xen_dcache() for boot pagetables. Signed-off-by: Oleksandr Tyshchenko Reviewed-by: Julien Grall Acked-by: Ian Campbell --- xen/arch/arm/mm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c index 544aa87d74..305879fd64 100644 --- a/xen/arch/arm/mm.c +++ b/xen/arch/arm/mm.c @@ -480,13 +480,13 @@ void __init setup_pagetables(unsigned long boot_phys_offset, paddr_t xen_paddr) /* Clear the copy of the boot pagetables. Each secondary CPU * rebuilds these itself (see head.S) */ memset(boot_pgtable, 0x0, PAGE_SIZE); - clean_xen_dcache(boot_pgtable); + clean_and_invalidate_xen_dcache(boot_pgtable); #ifdef CONFIG_ARM_64 memset(boot_first, 0x0, PAGE_SIZE); - clean_xen_dcache(boot_first); + clean_and_invalidate_xen_dcache(boot_first); #endif memset(boot_second, 0x0, PAGE_SIZE); - clean_xen_dcache(boot_second); + clean_and_invalidate_xen_dcache(boot_second); /* Break up the Xen mapping into 4k pages and protect them separately. */ for ( i = 0; i < LPAE_ENTRIES; i++ ) -- 2.39.5