linux/arch/arm/kernel
Will Deacon 4e8ee7de22 ARM: SMP: use idmap_pgd for mapping MMU enable during secondary booting
The ARM SMP booting code allocates a temporary set of page tables
containing an identity mapping of the kernel image and provides this
to secondary CPUs for initial booting.

In reality, we only need to include the __turn_mmu_on function in the
identity mapping since the rest of the kernel is executing from virtual
addresses after this point.

This patch adds __turn_mmu_on to the .idmap.text section, allowing the
SMP booting code to use the idmap_pgd directly and not have to populate
its own set of page table.

As a result of this patch, we can make the identity_mapping_add function
static (since it is only used within mm/idmap.c) and also remove the
identity_mapping_del function. The identity map population is moved to
an early initcall so that it is setup in time for secondary CPU bringup.

Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2011-12-06 14:04:15 +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
compat.h
crash_dump.c
crunch-bits.S
crunch.c
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
dma.c locking, ARM: Annotate low level hw locks as raw 2011-09-13 11:12:14 +02:00
early_printk.c
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
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
fiqasm.S
ftrace.c
head-common.S
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 ARM: SMP: use idmap_pgd for mapping MMU enable during secondary booting 2011-12-06 14:04:15 +00: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
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
iwmmxt.S ARM: pxa: fix logic error in PJ4 iWMMXt handling 2011-08-11 10:10:26 +08:00
kgdb.c
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_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
perf_event.c arm: convert core files from module.h to export.h 2011-10-31 19:30:49 -04: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
setup.c ARM: restart: allow platforms more flexibility specifying restart mode 2011-11-10 22:30:10 +00:00
signal.c
signal.h
sleep.S ARM: suspend: use idmap_pgd instead of suspend_pgd 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
smp_twd.c ARM: gic, local timers: use the request_percpu_irq() interface 2011-10-23 13:32:33 +01:00
smp.c ARM: SMP: use idmap_pgd for mapping MMU enable during secondary booting 2011-12-06 14:04:15 +00:00
stacktrace.c arm: convert core files from module.h to export.h 2011-10-31 19:30:49 -04:00
suspend.c ARM: suspend: use idmap_pgd instead of suspend_pgd 2011-12-06 14:04:14 +00:00
swp_emulate.c
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
tcm.c ARM: 6985/1: export functions to determine the presence of I/DTCM 2011-07-06 20:49:45 +01:00
tcm.h
thumbee.c
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