1
linux/arch/arm/kernel
Russell King 058ddee562 [ARM] Fix SMP booting with non-zero PHYS_OFFSET
The existing code tries to get the pmd for the temporary page table
by doing:

        pgd = pgd_alloc(&init_mm);
        pmd = pmd_offset(pgd, PHYS_OFFSET);

Since we have a two level page table, pmd_offset() is a no-op, so
this just has a casting effect from a pgd to a pmd - the address
argument is unused.  So this can't work.

Normally, we'd do:

	pgd = pgd_offset(&init_mm, PHYS_OFFSET);
	...
	pmd = pmd_offset(pgd, PHYS_OFFSET);

to get the pmd you want.  However, pgd_offset() takes the mm_struct,
not the (unattached) pgd we just allocated.  So, instead use:

        pgd = pgd_alloc(&init_mm);
        pmd = pmd_offset(pgd + pgd_index(PHYS_OFFSET), PHYS_OFFSET);

Reported-by: Antti P Miettinen <ananaza@iki.fi>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-08-07 22:36:59 +01:00
..
armksyms.c ftrace: store mcount address in rec->ip 2008-06-23 22:10:56 +02:00
arthur.c [ARM] arm/kernel/arthur.c: add MODULE_LICENSE 2008-05-17 22:55:16 +01:00
asm-offsets.c arm: use kbuild.h instead of macros in asm-offsets.c 2008-04-29 08:06:29 -07:00
atags.c clean up atags exporting code 2008-05-30 10:33:49 +02:00
atags.h [ARM] 4736/1: Export atags to userspace and allow kexec to use customised atags 2008-02-04 13:21:03 +00:00
bios32.c [ARM] 4577/1: ITE 8152 PCI bridge support 2007-10-15 18:53:59 +01:00
calls.S Merge branch 'omap2-upstream' into devel 2008-04-19 17:17:29 +01:00
compat.c
compat.h
crunch-bits.S [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
crunch.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
debug.S [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
dma-isa.c [ARM] ARRAY_SIZE() cleanup 2008-01-26 14:49:57 +00:00
dma.c
ecard.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
ecard.h [ARM] rpc: ecard: remove deprecated ecard_address() and relatives 2008-07-03 14:25:58 +01:00
entry-armv.S [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
entry-common.S [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
entry-header.S
fiq.c
ftrace.c ftrace: store mcount address in rec->ip 2008-06-23 22:10:56 +02:00
head-common.S [ARM] move include/asm-arm to arch/arm/include/asm 2008-08-02 21:32:35 +01:00
head-nommu.S [ARM] Eliminate useless includes of asm/mach-types.h 2008-08-07 09:40:04 +01:00
head.S [ARM] 4849/1: move ATAGS asm definitions 2008-03-06 12:18:18 +00:00
init_task.c [PATCH] take init_files to fs/file.c 2008-05-16 17:22:20 -04:00
io.c
irq.c [ARM] Fix circular include dependency with IRQ headers 2008-08-07 09:39:37 +01:00
isa.c
iwmmxt.S
kgdb.c kgdb: support for ARCH=arm 2008-07-23 11:30:15 -05:00
kprobes-decode.c kprobes/arm: fix decoding of arithmetic immediate instructions 2008-04-28 15:54:55 -04:00
kprobes.c kprobes: improve kretprobe scalability with hashed locking 2008-07-25 10:53:30 -07:00
machine_kexec.c [ARM] 4736/1: Export atags to userspace and allow kexec to use customised atags 2008-02-04 13:21:03 +00:00
Makefile kgdb: support for ARCH=arm 2008-07-23 11:30:15 -05:00
module.c PAGE_ALIGN(): correctly handle 64-bit values on 32-bit architectures 2008-07-24 10:47:21 -07:00
process.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
ptrace.c Use helpers to obtain task pid in printks (arch code) 2007-10-19 11:53:43 -07:00
ptrace.h
relocate_kernel.S [ARM] 4736/1: Export atags to userspace and allow kexec to use customised atags 2008-02-04 13:21:03 +00:00
setup.c kgdb: support for ARCH=arm 2008-07-23 11:30:15 -05:00
signal.c [ARM] 4870/1: fix signal return code when enable CONFIG_OABI_COMPAT 2008-03-20 15:59:31 +00:00
signal.h
smp.c [ARM] Fix SMP booting with non-zero PHYS_OFFSET 2008-08-07 22:36:59 +01:00
stacktrace.c Merge branch 'core/stacktrace' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2008-07-15 10:31:35 -07:00
stacktrace.h
sys_arm.c unified (weak) sys_pipe implementation 2008-05-03 13:50:33 -07:00
sys_oabi-compat.c [ARM] 4878/1: Add oabi shim for fstatat64 2008-03-28 15:00:46 +00:00
thumbee.c ARMv7: Add support for the ThumbEE state saving/restoring 2008-04-18 22:43:06 +01:00
time.c sysdev: Pass the attribute to the low level sysdev show/store function 2008-07-21 21:55:02 -07:00
traps.c kgdb: support for ARCH=arm 2008-07-23 11:30:15 -05:00
vmlinux.lds.S all archs: consolidate init and exit sections in vmlinux.lds.h 2008-01-28 23:21:17 +01:00
xscale-cp0.c