]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - arch/mips/mm/init.c
Merge branch 'linux_next' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab...
[karo-tx-linux.git] / arch / mips / mm / init.c
index 6b59617760c1933223337581dd0359feef084b37..4fc74c78265a9af156f260a6efd83e908aa8b000 100644 (file)
@@ -422,10 +422,20 @@ void free_initrd_mem(unsigned long start, unsigned long end)
 }
 #endif
 
+void (*free_init_pages_eva)(void *begin, void *end) = NULL;
+
 void __init_refok free_initmem(void)
 {
        prom_free_prom_memory();
-       free_initmem_default(POISON_FREE_INITMEM);
+       /*
+        * Let the platform define a specific function to free the
+        * init section since EVA may have used any possible mapping
+        * between virtual and physical addresses.
+        */
+       if (free_init_pages_eva)
+               free_init_pages_eva((void *)&__init_begin, (void *)&__init_end);
+       else
+               free_initmem_default(POISON_FREE_INITMEM);
 }
 
 #ifndef CONFIG_MIPS_PGD_C0_CONTEXT