linux/arch/arm/kernel
Will Deacon 8903826d0c ARM: idmap: populate identity map pgd at init time using .init.text
When disabling and re-enabling the MMU, it is necessary to take out an
identity mapping for the code that manipulates the SCTLR in order to
avoid it disappearing from under our feet. This is useful when soft
rebooting and returning from CPU suspend.

This patch allocates a set of page tables during boot and populates them
with an identity mapping for the .idmap.text section. This means that
users of the identity map do not need to manage their own pgd and can
instead annotate their functions with __idmap or, in the case of assembly
code, place them in the correct section.

Acked-by: Dave Martin <dave.martin@linaro.org>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Tested-by: Lorenzo Pieralisi <Lorenzo.Pieralisi@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2011-12-06 14:04:14 +00:00
..
.gitignore
armksyms.c arm: convert core files from module.h to export.h 2011-10-31 19:30:49 -04:00
arthur.c
asm-offsets.c ARM: 7114/1: cache-l2x0: add resume entry for l2 in secure mode 2011-10-17 09:11:51 +01:00
atags.c
atags.h
bios32.c arm: convert core files from module.h to export.h 2011-10-31 19:30:49 -04:00
calls.S All Arch: remove linkage for sys_nfsservctl system call 2011-08-26 15:09:58 -07:00
compat.c ARM: deprecate support for old way to pass kernel parameters 2010-07-07 16:38:36 +02:00
compat.h ARM: deprecate support for old way to pass kernel parameters 2010-07-07 16:38:36 +02:00
crash_dump.c crash_dump: export is_kdump_kernel to modules, consolidate elfcorehdr_addr, setup_elfcorehdr and saved_max_pfn 2011-03-23 19:47:19 -07:00
crunch-bits.S
crunch.c ARM: Convert VFP/Crunch/XscaleCP thread_release() to exit_thread() 2009-12-18 14:53:41 +00:00
debug.S Merge branch 'devel-stable' of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm 2011-10-28 12:02:27 -07:00
devtree.c arm: convert core files from module.h to export.h 2011-10-31 19:30:49 -04:00
dma-isa.c ARM: dma-isa: request cascade channel after registering it 2009-12-24 18:34:08 +00:00
dma.c locking, ARM: Annotate low level hw locks as raw 2011-09-13 11:12:14 +02:00
early_printk.c ARM: Add an earlyprintk debug console 2009-12-09 10:02:18 +00:00
ecard.c ARM: io: RiscPC: make EASI_BASE a void iomem pointer 2011-08-17 08:44:16 +01:00
ecard.h
elf.c arm: convert core files from module.h to export.h 2011-10-31 19:30:49 -04:00
entry-armv.S ARM: Make global handler and CONFIG_MULTI_IRQ_HANDLER mutually exclusive 2011-11-15 18:13:03 +00:00
entry-common.S ARM: 6952/1: fix lockdep warning of "unannotated irqs-off" 2011-06-06 10:56:22 +01:00
entry-header.S Merge branch 'devel-stable' into for-next 2011-07-22 23:09:07 +01:00
etm.c arm: fix implicit module.h users by adding it to arch/arm as required. 2011-10-31 19:30:50 -04:00
fiq.c ARM: 6938/1: fiq: Refactor {get,set}_fiq_regs() for Thumb-2 2011-05-26 10:31:06 +01:00
fiqasm.S ARM: 6938/1: fiq: Refactor {get,set}_fiq_regs() for Thumb-2 2011-05-26 10:31:06 +01:00
ftrace.c ARM: ftrace: graph tracer + dynamic ftrace 2010-11-19 21:43:27 +05:30
head-common.S arm/dt: Make __vet_atags also accept a dtb image 2011-05-11 15:12:32 +02:00
head-nommu.S ARM: 6999/1: head, zImage: Always Enter the kernel in ARM state 2011-07-19 12:00:53 +01:00
head.S Merge branch 'devel-stable' of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm 2011-10-28 12:02:27 -07:00
hw_breakpoint.c ARM: 7127/1: hw_breakpoint: skip v7-specific reset on v6 cores 2011-10-08 10:05:34 +01:00
init_task.c Use new __init_task_data macro in arch init_task.c files. 2009-09-21 06:27:08 +02:00
io.c arm: convert core files from module.h to export.h 2011-10-31 19:30:49 -04:00
irq.c arm: remove several unnecessary module.h include instances 2011-10-31 19:30:48 -04:00
isa.c sysctl: Drop & in front of every proc_handler. 2009-11-18 08:37:40 -08:00
iwmmxt.S ARM: pxa: fix logic error in PJ4 iWMMXt handling 2011-08-11 10:10:26 +08:00
kgdb.c kgdb,arm: fix register dump 2010-10-29 13:14:40 -05:00
kprobes-arm.c ARM: kprobes: Add exports for test code 2011-09-20 18:17:43 +00:00
kprobes-common.c ARM: kprobes: Add alu_write_pc() 2011-07-13 17:32:48 +00:00
kprobes-test-arm.c ARM: kprobes: Add ARM instruction simulation test cases 2011-09-20 18:17:43 +00:00
kprobes-test-thumb.c ARM: kprobes: Add Thumb instruction simulation test cases 2011-09-20 18:17:43 +00:00
kprobes-test.c ARM: kprobes: Add introductory comment to test code 2011-09-20 18:17:44 +00:00
kprobes-test.h ARM: kprobes: Add ARM instruction simulation test cases 2011-09-20 18:17:43 +00:00
kprobes-thumb.c ARM: kprobes: Add exports for test code 2011-09-20 18:17:43 +00:00
kprobes.c ARM: kprobes: Extend arch_specific_insn to add pointer to emulated instruction 2011-07-13 17:32:42 +00:00
kprobes.h ARM: kprobes: Add exports for test code 2011-09-20 18:17:43 +00:00
leds.c arm: convert core files from module.h to export.h 2011-10-31 19:30:49 -04:00
machine_kexec.c ARM: restart: remove argument to setup_mm_for_reboot() 2011-11-10 22:30:28 +00:00
Makefile Merge branch 'devel-stable' of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm 2011-10-28 12:02:27 -07:00
module.c ARM: 7059/1: LPAE: Use PMD_(SHIFT|SIZE|MASK) instead of PGDIR_* 2011-08-23 15:30:33 +01:00
perf_event.c arm: convert core files from module.h to export.h 2011-10-31 19:30:49 -04:00
perf_event_v6.c ARM: perf: remove cpu-related misnomers 2011-08-31 10:50:12 +01:00
perf_event_v7.c Merge branch 'devel-stable' of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm 2011-10-28 12:02:27 -07:00
perf_event_xscale.c ARM: perf: remove cpu-related misnomers 2011-08-31 10:50:12 +01:00
pj4-cp0.c arm: remove several unnecessary module.h include instances 2011-10-31 19:30:48 -04:00
pmu.c ARM: PMU: move CPU PMU platform device handling and init into perf 2011-08-31 10:17:59 +01:00
process.c ARM: restart: only perform setup for restart when soft-restarting 2011-11-21 09:47:48 +00:00
ptrace.c arm: add elf.h to arch/arm/kernel/ptrace.c 2011-10-31 19:30:45 -04:00
relocate_kernel.S ARM: 7065/1: kexec: ensure new kernel is entered in ARM state 2011-08-28 10:39:41 +01:00
return_address.c arm: convert core files from module.h to export.h 2011-10-31 19:30:49 -04:00
sched_clock.c ARM: sched_clock: make minsec argument to clocks_calc_mult_shift() zero 2011-01-11 16:44:02 +00:00
setup.c ARM: restart: allow platforms more flexibility specifying restart mode 2011-11-10 22:30:10 +00:00
signal.c ARM: 6892/1: handle ptrace requests to change PC during interrupted system calls 2011-05-12 10:52:00 +01:00
signal.h ARM: Fix signal restart issues with NX and OABI compat 2009-10-25 15:39:37 +00:00
sleep.S ARM: pm: convert some assembly to C 2011-09-20 23:33:44 +01:00
smp.c ARM: idmap: populate identity map pgd at init time using .init.text 2011-12-06 14:04:14 +00:00
smp_scu.c Merge branches 'arnd-randcfg-fixes', 'debug', 'io' (early part), 'l2x0', 'p2v', 'pgt' (early part) and 'smp' into for-linus 2011-10-25 08:19:29 +01:00
smp_tlb.c ARM: SMP: split out software TLB maintainence broadcasting 2010-12-20 15:09:17 +00:00
smp_twd.c ARM: gic, local timers: use the request_percpu_irq() interface 2011-10-23 13:32:33 +01:00
stacktrace.c arm: convert core files from module.h to export.h 2011-10-31 19:30:49 -04:00
suspend.c ARM: pm: add L2 cache cleaning for suspend 2011-09-20 23:33:47 +01:00
swp_emulate.c perf: Remove the nmi parameter from the swevent and overflow interface 2011-07-01 11:06:35 +02:00
sys_arm.c arm: convert core files from module.h to export.h 2011-10-31 19:30:49 -04:00
sys_oabi-compat.c ARM: 6891/1: prevent heap corruption in OABI semtimedop 2011-04-29 15:53:14 +01:00
tcm.c ARM: 6985/1: export functions to determine the presence of I/DTCM 2011-07-06 20:49:45 +01:00
tcm.h ARM: 5580/2: ARM TCM (Tightly-Coupled Memory) support v3 2009-09-15 22:11:05 +01:00
thumbee.c Fix the teehbr_read function prototype 2008-11-10 14:14:11 +00:00
time.c arm: convert core files from module.h to export.h 2011-10-31 19:30:49 -04:00
topology.c ARM: 7011/1: Add ARM cpu topology definition 2011-10-17 09:02:43 +01:00
traps.c Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2011-10-26 16:17:32 +02:00
unwind.c arm: convert core files from module.h to export.h 2011-10-31 19:30:49 -04:00
vmlinux.lds.S ARM: idmap: populate identity map pgd at init time using .init.text 2011-12-06 14:04:14 +00:00
xscale-cp0.c arm: remove several unnecessary module.h include instances 2011-10-31 19:30:48 -04:00