linux/arch/powerpc/mm
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
..
4xx_mmu.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
44x_mmu.c [POWERPC] Fix powerpc 44x_mmu build 2006-08-25 13:41:41 +10:00
Makefile [POWERPC] ps3: multiplatform build fixes 2006-12-04 20:41:16 +11:00
fault.c [PATCH] Do a single one-line printk in bad_page_fault() 2006-11-13 14:48:56 +11:00
fsl_booke_mmu.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
hash_low_32.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
hash_low_64.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
hash_native_64.c [POWERPC] Make pSeries_lpar_hpte_insert static 2006-10-16 16:33:04 +10:00
hash_utils_64.c [POWERPC] Fix cputable.h for combined build 2006-12-04 20:41:59 +11:00
hugetlbpage.c [POWERPC] TLB insertion cleanup 2007-01-24 21:13:59 +11:00
imalloc.c [PATCH] getting rid of all casts of k[cmz]alloc() calls 2006-12-13 09:05:58 -08:00
init_32.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
init_64.c [PATCH] slab: remove kmem_cache_t 2006-12-07 08:39:25 -08:00
lmb.c [POWERPC] Allow duplicate lmb_reserve() calls 2007-03-08 15:43:28 +11:00
mem.c [POWERPC] Fix vDSO page count calculation 2007-02-13 15:35:52 +11:00
mmap.c [PATCH] powerpc: trivial: modify comments to refer to new location of files 2006-02-10 16:53:51 +11:00
mmu_context_32.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
mmu_context_64.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
mmu_decl.h [PATCH] powerpc: Remove imalloc.h 2005-11-19 14:46:02 +11:00
numa.c Fix typos concerning hierarchy 2007-02-17 19:23:03 +01:00
pgtable_32.c [POWERPC] Fix is_power_of_4(x) compile error 2007-02-09 09:30:05 -06:00
pgtable_64.c [POWERPC] Fix bug with early ioremap and 64k pages 2007-02-16 14:00:20 +11:00
ppc_mmu_32.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
slb.c [POWERPC] iSeries: fix slb.c for combined build 2006-12-04 20:39:19 +11:00
slb_low.S [POWERPC] implement BEGIN/END_FW_FTR_SECTION 2006-10-03 16:50:21 +10:00
stab.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
tlb_32.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
tlb_64.c [POWERPC] Fix a compiler warning in mm/tlb_64.c 2006-07-13 18:43:25 +10:00