[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] xen: arm: zero EL2 pagetable pages before use
From: Vikram Sethi <vikrams@xxxxxxxxxxxxxx> arch/arm/mm.c has 2 uses of alloc_boot_pages which are used for pagetables, but the allocated pages are not zeroed. This can cause crashes on CPUs with aggressive prefetching when they find 'valid' entries in the page tables but which are really uninitialized. Memset the allocated pages before use. Change-Id: I517ca45ca240766dfbf1d6884c044c377babab7d Signed-off-by: Vikram Sethi <vikrams@xxxxxxxxxxxxxx> Signed-off-by: Shanker Donthineni <shankerd@xxxxxxxxxxxxxx> --- xen/arch/arm/mm.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c index 81f9e2e..215ec93 100644 --- a/xen/arch/arm/mm.c +++ b/xen/arch/arm/mm.c @@ -730,6 +730,7 @@ void __init setup_xenheap_mappings(unsigned long base_mfn, else { unsigned long first_mfn = alloc_boot_pages(1, 1); + memset(mfn_to_virt(first_mfn), 0, PAGE_SIZE); pte = mfn_to_xen_entry(first_mfn, WRITEALLOC); pte.pt.table = 1; write_pte(p, pte); @@ -771,6 +772,7 @@ void __init setup_frametable_mappings(paddr_t ps, paddr_t pe) nr_second = frametable_size >> SECOND_SHIFT; second_base = alloc_boot_pages(nr_second, 1); second = mfn_to_virt(second_base); + memset(second, 0, nr_second * PAGE_SIZE); for ( i = 0; i < nr_second; i++ ) { pte = mfn_to_xen_entry(second_base + i, WRITEALLOC); -- Qualcomm Technologies, Inc. on behalf of Qualcomm Innovation Center, Inc. Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |