kernel_optimize_test/arch
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
..
alpha [PATCH] sanitize __user_walk_fd() et.al. 2008-07-26 20:53:34 -04:00
arm [ARM] Fix SMP booting with non-zero PHYS_OFFSET 2008-08-07 22:36:59 +01:00
avr32 avr32: Use <mach/foo.h> instead of <asm/arch/foo.h> 2008-08-05 14:36:57 +02:00
blackfin Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/blackfin-2.6 2008-07-26 13:23:17 -07:00
cris Merge branch 'linus' into core/generic-dma-coherent 2008-07-29 00:07:55 +02:00
frv FRV: Wire up new system calls 2008-08-01 13:03:49 -07:00
h8300 h8300: use generic show_mem() 2008-07-26 12:00:11 -07:00
ia64 [IA64] Move include/asm-ia64 to arch/ia64/include/asm 2008-08-01 10:21:21 -07:00
m32r m32r: use generic show_mem() 2008-07-26 12:00:11 -07:00
m68k remove unneeded #include <linux/ide.h>'s 2008-08-05 18:17:00 +02:00
m68knommu m68knommu: use generic show_mem() 2008-07-26 12:00:11 -07:00
mips remove unneeded #include <linux/ide.h>'s 2008-08-05 18:17:00 +02:00
mn10300 mn10300: Fix up __bug_table handling in module loader. 2008-08-04 17:22:17 -07:00
parisc [PATCH] sanitize __user_walk_fd() et.al. 2008-07-26 20:53:34 -04:00
powerpc powerpc: 86xx: mpc8610_hpcd: add watchdog node 2008-08-05 14:33:46 -07:00
s390 Merge branch 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6 2008-08-04 17:15:07 -07:00
sh remove unneeded #include <linux/ide.h>'s 2008-08-05 18:17:00 +02:00
sparc sparc: Add __KERNEL__ ifdef protection to pt_regs helpers. 2008-07-31 20:32:35 -07:00
sparc64 sparc64: Remove all cpumask_t local variables in xcall dispatch. 2008-08-04 16:56:15 -07:00
um uml: fix tty-related build error 2008-07-30 09:41:45 -07:00
x86 Merge branch 'kvm-updates-2.6.27' of git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm 2008-08-01 12:48:16 -07:00
xtensa remove unneeded #include <linux/ide.h>'s 2008-08-05 18:17:00 +02:00
.gitignore
Kconfig tracehook: CONFIG_HAVE_ARCH_TRACEHOOK 2008-07-26 12:00:09 -07:00