OSDN Git Service

[LMB]: Fix lmb allocation regression.
authorDavid S. Miller <davem@davemloft.net>
Thu, 24 Apr 2008 06:30:59 +0000 (23:30 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 24 Apr 2008 06:30:59 +0000 (23:30 -0700)
Changeset d9024df02ffe74d723d97d552f86de3b34beb8cc ("[LMB] Restructure
allocation loops to avoid unsigned underflow") removed the alignment
of the 'size' argument to call lmb_add_region() done by __lmb_alloc_base().

In doing so it reintroduced the bug fixed by changeset
eea89e13a9c61d3928223d2f9bf2295e22e0efb6 ("[LMB]: Fix bug in
__lmb_alloc_base().").

This puts it back.

Signed-off-by: David S. Miller <davem@davemloft.net>
lib/lmb.c

index 896e283..207147a 100644 (file)
--- a/lib/lmb.c
+++ b/lib/lmb.c
@@ -346,7 +346,7 @@ u64 __init __lmb_alloc_base(u64 size, u64 align, u64 max_addr)
                        if (j < 0) {
                                /* this area isn't reserved, take it */
                                if (lmb_add_region(&lmb.reserved, base,
-                                                  size) < 0)
+                                                  lmb_align_up(size, align)) < 0)
                                        return 0;
                                return base;
                        }