patch-2.3.43 linux/arch/arm/mm/mm-armv.c

Next file: linux/arch/i386/boot/compressed/head.S
Previous file: linux/arch/arm/mm/ioremap.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.42/linux/arch/arm/mm/mm-armv.c linux/arch/arm/mm/mm-armv.c
@@ -34,6 +34,7 @@
 {
 	cr_alignment &= ~4;
 	cr_no_alignment &= ~4;
+	flush_cache_all();
 	set_cr(cr_alignment);
 	return 1;
 }
@@ -42,6 +43,7 @@
 {
 	cr_alignment &= ~(8|4);
 	cr_no_alignment &= ~(8|4);
+	flush_cache_all();
 	set_cr(cr_alignment);
 	return 1;
 }
@@ -284,7 +286,7 @@
 
 void __init pagetable_init(void)
 {
-	struct map_desc *init_maps, *p;
+	struct map_desc *init_maps, *p, *q;
 	unsigned long address = 0;
 	int i;
 
@@ -358,17 +360,18 @@
 	 * pgdir entries that are not in the description.
 	 */
 	i = 0;
+	q = init_maps;
 	do {
-		if (address < init_maps->virtual || init_maps == p) {
+		if (address < q->virtual || q == p) {
 			clear_mapping(address);
 			address += PGDIR_SIZE;
 		} else {
-			create_mapping(init_maps);
+			create_mapping(q);
 
-			address = init_maps->virtual + init_maps->length;
+			address = q->virtual + q->length;
 			address = (address + PGDIR_SIZE - 1) & PGDIR_MASK;
 
-			init_maps ++;
+			q ++;
 		}
 	} while (address != 0);
 

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)