It seems that without the extra tlb flush, we may end up faulting
during the early kernel initialisation because the TLB can't see
the updated page tables.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
 
        /*
         * Ask the machine support to map in the statically mapped devices.
-        * After this point, we can start to touch devices again.
         */
        if (mdesc->map_io)
                mdesc->map_io();
+
+       /*
+        * Finally flush the tlb again - this ensures that we're in a
+        * consistent state wrt the writebuffer if the writebuffer needs
+        * draining.  After this point, we can start to touch devices
+        * again.
+        */
+       local_flush_tlb_all();
 }
 
 /*