Thread (10 messages) 10 messages, 5 authors, 2015-08-08

[PATCH v4] ARM: early fixmap support for earlycon

From: Russell King - ARM Linux <hidden>
Date: 2015-08-08 17:53:27
Also in: lkml

On Thu, Jul 30, 2015 at 11:02:38PM +0200, Stefan Agner wrote:
On 2015-06-16 23:51, Stefan Agner wrote:
quoted
 static void __init devicemaps_init(const struct machine_desc *mdesc)
 {
@@ -1231,7 +1272,10 @@ static void __init devicemaps_init(const struct
machine_desc *mdesc)
 
 	early_trap_init(vectors);
 
-	for (addr = VMALLOC_START; addr; addr += PMD_SIZE)
+	/*
+	 * Clear page table except top pmd used by early fixmaps
+	 */
+	for (addr = VMALLOC_START; addr < (FIXADDR_TOP & PMD_MASK); addr += PMD_SIZE)
 		pmd_clear(pmd_off_k(addr));
 
Hi Russel,

Checked this again, v4 does the right thing:
FIXADDR_TOP (0xffeff000) & PMD_MASK (0xffe00000) gives us the address of
the top PMD (0xFFE00000). We don't clear that since that is taken care
of by early fixmap support (early_fixmap_shutdown). v3 used
FIXADDR_START, which also left out the second to top PMD. The 3MiB of
fixmap spawns two PMD's however only the top PMD is handled by early
fixmap. Hence this was wrong in v3, but is fixed in v4.

Can you reconsider this patch?
I applied the patch which was in the patch system, and Olof's builder
reported failures:

        arm.allnoconfig:
:(.init.text+0x7a0): undefined reference to `early_fixmap_init'

        arm.efm32_defconfig:
arch/arm/kernel/setup.c:958: undefined reference to `early_fixmap_init'

        arm.lpc18xx_defconfig:
arch/arm/include/asm/fixmap.h:25:29: error: 'L_PTE_YOUNG' undeclared (first use in this function)
arch/arm/include/asm/fixmap.h:25:43: error: 'L_PTE_PRESENT' undeclared (first use in this function)
arch/arm/include/asm/fixmap.h:25:59: error: 'L_PTE_XN' undeclared (first use in this function)
arch/arm/include/asm/fixmap.h:25:70: error: 'L_PTE_DIRTY' undeclared (first use in this function)
arch/arm/include/asm/fixmap.h:30:47: error: 'L_PTE_MT_DEV_SHARED' undeclared (first use in this function)
arch/arm/include/asm/fixmap.h:30:69: error: 'L_PTE_SHARED' undeclared (first use in this function)

So I'm going to drop it from my tree.  Please resubmit a fixed version,
thanks.

-- 
FTTC broadband for 0.8mile line: currently at 10.5Mbps down 400kbps up
according to speedtest.net.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help