aboutsummaryrefslogtreecommitdiffstats
path: root/lib/lmb.c
diff options
context:
space:
mode:
authorKumar Gala <galak@kernel.crashing.org>2008-02-13 19:58:11 -0500
committerDavid S. Miller <davem@davemloft.net>2008-02-13 19:58:11 -0500
commit27e6672bb9912d3e3a41cf88e6142d3ae5e534b3 (patch)
treef2c84845f8e2c43b0871322acc96295def395d51 /lib/lmb.c
parenteea89e13a9c61d3928223d2f9bf2295e22e0efb6 (diff)
[LMB]: Fix initial lmb add region with a non-zero base
If we add to an empty lmb region with a non-zero base we will not coalesce the number of regions down to one. This causes problems on ppc32 for the memory region as its assumed to only have one region. We can fix this be easily specially casing the initial add to just replace the dummy region. Signed-off-by: Kumar Gala <galak@kernel.crashing.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'lib/lmb.c')
-rw-r--r--lib/lmb.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/lmb.c b/lib/lmb.c
index 6390d63a2a0e..e34a9e586c42 100644
--- a/lib/lmb.c
+++ b/lib/lmb.c
@@ -134,6 +134,12 @@ static long __init lmb_add_region(struct lmb_region *rgn, unsigned long base,
134 unsigned long coalesced = 0; 134 unsigned long coalesced = 0;
135 long adjacent, i; 135 long adjacent, i;
136 136
137 if ((rgn->cnt == 1) && (rgn->region[0].size == 0)) {
138 rgn->region[0].base = base;
139 rgn->region[0].size = size;
140 return 0;
141 }
142
137 /* First try and coalesce this LMB with another. */ 143 /* First try and coalesce this LMB with another. */
138 for (i=0; i < rgn->cnt; i++) { 144 for (i=0; i < rgn->cnt; i++) {
139 unsigned long rgnbase = rgn->region[i].base; 145 unsigned long rgnbase = rgn->region[i].base;