]> err.no Git - linux-2.6/blobdiff - arch/powerpc/mm/lmb.c
x86: printk kernel version in WARN_ON and other dump_stack users
[linux-2.6] / arch / powerpc / mm / lmb.c
index 716a2906a24da373a9e892e1486e24f1316d271e..8f4d2dc4cafb0e832039799c364d8bccfc67d51b 100644 (file)
@@ -138,14 +138,18 @@ void __init lmb_analyze(void)
 static long __init lmb_add_region(struct lmb_region *rgn, unsigned long base,
                                  unsigned long size)
 {
-       unsigned long i, coalesced = 0;
-       long adjacent;
+       unsigned long coalesced = 0;
+       long adjacent, i;
 
        /* First try and coalesce this LMB with another. */
        for (i=0; i < rgn->cnt; i++) {
                unsigned long rgnbase = rgn->region[i].base;
                unsigned long rgnsize = rgn->region[i].size;
 
+               if ((rgnbase == base) && (rgnsize == size))
+                       /* Already have this region, so we're done */
+                       return 0;
+
                adjacent = lmb_addrs_adjacent(base,size,rgnbase,rgnsize);
                if ( adjacent > 0 ) {
                        rgn->region[i].base -= size;