kernel-ark/arch/powerpc/kernel
David Gibson eb6de28637 [POWERPC] Allow duplicate lmb_reserve() calls
At present calling lmb_reserve() (and hence lmb_add_region()) twice
for exactly the same memory region will cause strange behaviour.

This makes life difficult when booting from a flat device tree with
memory reserve map.  Which regions are automatically reserved by the
kernel has changed over time, so it's quite possible a newer kernel
could attempt to auto-reserve a region which is also explicitly listed
in the device tree's reserve map, leading to trouble.

This patch avoids the problem by making lmb_reserve() ignore a call to
reserve a previously reserved region.  It also removes a now redundant
test designed to avoid one specific case of the problem noted above.

At present, this patch deals only with duplicate reservations of an
identical region.  Attempting to reserve two different, but
overlapping regions will still cause problems.  I might post another
patch later dealing with this case, but I'm avoiding it now since it
is substantially more complicated to deal with, less likely to occur
and more likely to indicate a genuine bug elsewhere if it does occur.

Signed-off-by: David Gibson <dwg@au1.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2007-03-08 15:43:28 +11:00
..
vdso32
vdso64
align.c
asm-offsets.c [POWERPC] Fix manual assembly WARN_ON() in enter_rtas(). 2007-01-09 17:03:02 +11:00
audit.c
binfmt_elf32.c
btext.c [POWERPC] Use udbg_early_init() on ppc32 2007-02-14 11:55:16 +11:00
compat_audit.c
cpu_setup_6xx.S
cpu_setup_pa6t.S [POWERPC] pasemi: Idle loops 2007-02-07 14:03:22 +11:00
cpu_setup_ppc970.S
cputable.c [POWERPC] No DEEPNAP on 970MP 1.0 2007-03-08 04:09:32 +11:00
crash_dump.c
crash.c
dma_64.c
entry_32.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
entry_64.S [POWERPC] Clear RI bit in MSR before restoring r13 when returning to userspace 2007-02-07 14:03:23 +11:00
firmware.c
fpu.S
head_4xx.S
head_8xx.S
head_32.S [POWERPC] Remove the broken Gemini support 2007-01-24 21:13:58 +11:00
head_44x.S [POWERPC] Remove ibm4{xx,4x}.h from arch/powerpc 2007-02-13 14:59:52 +11:00
head_64.S [POWERPC] Fix performance monitor exception 2007-02-07 14:03:23 +11:00
head_booke.h
head_fsl_booke.S [POWERPC] 85xx: Drop use of SYNC macro in head_fsl_booke.S 2007-02-13 16:13:27 -06:00
ibmebus.c
idle_6xx.S
idle_power4.S
idle.c [PATCH] sysctl: remove insert_at_head from register_sysctl 2007-02-14 08:09:59 -08:00
init_task.c
io.c
iomap.c [POWERPC] Remove fastcall function attribute 2007-01-26 01:52:27 -06:00
iommu.c
irq.c [PATCH] msi: sanely support hardware level msi disabling 2007-03-05 07:57:50 -08:00
kprobes.c [POWERPC] Added kprobes support to ppc32 2007-02-06 22:55:19 -06:00
l2cr_6xx.S
legacy_serial.c [POWERPC] Open Firmware serial port driver 2007-02-14 11:50:04 +11:00
lparcfg.c [PATCH] mark struct file_operations const 2 2007-02-12 09:48:44 -08:00
lparmap.c
machine_kexec_32.c
machine_kexec_64.c
machine_kexec.c
Makefile [POWERPC] pasemi: Idle loops 2007-02-07 14:03:22 +11:00
misc_32.S
misc_64.S [POWERPC] pasemi: UART udbg support 2007-02-07 14:03:22 +11:00
misc.S [POWERPC] convert string i/o operations to C 2006-09-20 14:06:18 +10:00
module_32.c [POWERPC] Add support for R_PPC_ADDR16_HI relocations 2007-01-24 21:13:58 +11:00
module_64.c
nvram_64.c [PATCH] mark struct file_operations const 2 2007-02-12 09:48:44 -08:00
of_device.c
of_platform.c
paca.c
pci_32.c [POWERPC] Do not write virq back to PCI config space 2007-01-24 21:13:57 +11:00
pci_64.c Merge master.kernel.org:/pub/scm/linux/kernel/git/paulus/powerpc 2007-02-08 10:04:20 -08:00
pci_dn.c
pmc.c [POWERPC] PA6T PMC support 2007-02-07 14:03:19 +11:00
ppc32.h
ppc_ksyms.c [POWERPC] Compile fixes for arch/powerpc dcr code 2007-02-07 14:03:23 +11:00
proc_ppc64.c [PATCH] mark struct file_operations const 2 2007-02-12 09:48:44 -08:00
process.c [POWERPC] Harden validate_sp against stack corruption 2007-03-08 15:31:43 +11:00
prom_init.c [POWERPC] Add device tree fixups for the EFIKA 2007-02-13 15:35:53 +11:00
prom_parse.c [POWERPC] Fix warning in prom_parse.c of_irq_map_oldworld() 2007-03-08 04:09:33 +11:00
prom.c [POWERPC] Allow duplicate lmb_reserve() calls 2007-03-08 15:43:28 +11:00
ptrace32.c
ptrace-common.h
ptrace.c [POWERPC] Mask 32-bit system call arguments to 32 bits on PPC64 in audit code 2007-01-24 21:13:58 +11:00
rtas_flash.c [PATCH] mark struct file_operations const 2 2007-02-12 09:48:44 -08:00
rtas_pci.c
rtas-proc.c [PATCH] mark struct file_operations const 2 2007-02-12 09:48:44 -08:00
rtas-rtc.c
rtas.c Storage class should be before const qualifier 2007-02-17 20:11:19 +01:00
semaphore.c
setup_32.c [POWERPC] Use udbg_early_init() on ppc32 2007-02-14 11:55:16 +11:00
setup_64.c
setup-common.c
setup.h
signal_32.c [POWERPC] Fix register save area alignment for swapcontext syscall 2006-12-20 16:37:49 +11:00
signal_64.c
smp-tbsync.c
smp.c [POWERPC] Move MPIC smp routines into mpic.c 2007-02-14 11:50:04 +11:00
swsusp_32.S
sys_ppc32.c [PATCH] Common compat_sys_sysinfo 2007-02-11 10:51:32 -08:00
syscalls.c
sysfs.c [POWERPC] PA6T PMC support 2007-02-07 14:03:19 +11:00
systbl.S
tau_6xx.c
time.c
traps.c backlight: Separate backlight properties from backlight ops pointers 2007-02-20 09:26:53 +00:00
udbg_16550.c [POWERPC] pasemi: UART udbg support 2007-02-07 14:03:22 +11:00
udbg.c [POWERPC] Use udbg_early_init() on ppc32 2007-02-14 11:55:16 +11:00
vdso.c [POWERPC] Fix vDSO page count calculation 2007-02-13 15:35:52 +11:00
vecemu.c
vector.S
vio.c [POWERPC] arch/powerpc/kernel/vio.c of_node_put cleanup 2007-01-24 21:13:57 +11:00
vmlinux.lds.S [PATCH] disable init/initramfs.c: architectures 2007-02-11 10:51:25 -08:00