patch-2.2.18 linux/arch/arm/mm/mm-armv.c
Next file: linux/arch/arm/mm/proc-arm2,3.S
Previous file: linux/arch/arm/mm/ioremap.c
Back to the patch index
Back to the overall index
- Lines: 28
- Date:
Fri Sep 15 23:28:37 2000
- Orig file:
v2.2.17/arch/arm/mm/mm-armv.c
- Orig date:
Fri Apr 21 12:45:45 2000
diff -u --new-file --recursive --exclude-from /usr/src/exclude v2.2.17/arch/arm/mm/mm-armv.c linux/arch/arm/mm/mm-armv.c
@@ -70,3 +70,27 @@
return start_mem;
}
+
+/*
+ * In order to soft-boot, we need to insert a 1:1 mapping in place of
+ * the user-mode pages. This will then ensure that we have predictable
+ * results when turning the mmu off
+ */
+void setup_mm_for_reboot(char mode)
+{
+ pgd_t *pgd;
+ pmd_t pmd;
+ int i;
+
+ if (current->mm && current->mm->pgd)
+ pgd = current->mm->pgd;
+ else
+ pgd = init_mm.pgd;
+
+ for (i = 0; i < USER_PTRS_PER_PGD; i++) {
+ pmd_val(pmd) = (i << PAGE_SHIFT) |
+ PMD_SECT_AP_WRITE | PMD_SECT_AP_READ |
+ PMD_TYPE_SECT;
+ set_pmd(pmd_offset(pgd + i, i << PGDIR_SHIFT), pmd);
+ }
+}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)