From 3dd31299646c8dd3af6b282614296ebec3c730f7 Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Wed, 13 Feb 2008 16:57:09 -0800 Subject: [PATCH] --- yaml --- r: 91417 b: refs/heads/master c: eea89e13a9c61d3928223d2f9bf2295e22e0efb6 h: refs/heads/master i: 91415: 79ea3e5707b0c8dd48cc3d56a24bab1a16ca93e2 v: v3 --- [refs] | 2 +- trunk/lib/lmb.c | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index a3236ac9ad91..a2a13c0bbbfd 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d9b2b2a277219d4812311d995054ce4f95067725 +refs/heads/master: eea89e13a9c61d3928223d2f9bf2295e22e0efb6 diff --git a/trunk/lib/lmb.c b/trunk/lib/lmb.c index 98078b4ec20e..6390d63a2a0e 100644 --- a/trunk/lib/lmb.c +++ b/trunk/lib/lmb.c @@ -245,6 +245,11 @@ static unsigned long lmb_align_down(unsigned long addr, unsigned long size) return addr & ~(size - 1); } +static unsigned long lmb_align_up(unsigned long addr, unsigned long size) +{ + return (addr + (size - 1)) & ~(size - 1); +} + unsigned long __init __lmb_alloc_base(unsigned long size, unsigned long align, unsigned long max_addr) { @@ -281,7 +286,8 @@ unsigned long __init __lmb_alloc_base(unsigned long size, unsigned long align, if (i < 0) return 0; - lmb_add_region(&lmb.reserved, base, size); + if (lmb_add_region(&lmb.reserved, base, lmb_align_up(size, align)) < 0) + return 0; return base; }