From c644b67233fef058310b62412d105a1ab7728766 Mon Sep 17 00:00:00 2001 From: Michael Ellerman Date: Tue, 12 Jan 2010 21:25:24 +0000 Subject: [PATCH] --- yaml --- r: 181880 b: refs/heads/master c: 24551f64d47af9539a7f324343bffeea09d9dcfa h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/include/linux/lmb.h | 1 + trunk/lib/lmb.c | 13 +++++++++++-- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index a070e5a36eeb..d18e2d901231 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 859aefc5afc6c00dae630680e5470f7a2c27c4a0 +refs/heads/master: 24551f64d47af9539a7f324343bffeea09d9dcfa diff --git a/trunk/include/linux/lmb.h b/trunk/include/linux/lmb.h index ef82b8fcbddb..f3d14333ebed 100644 --- a/trunk/include/linux/lmb.h +++ b/trunk/include/linux/lmb.h @@ -42,6 +42,7 @@ extern void __init lmb_init(void); extern void __init lmb_analyze(void); extern long lmb_add(u64 base, u64 size); extern long lmb_remove(u64 base, u64 size); +extern long __init lmb_free(u64 base, u64 size); extern long __init lmb_reserve(u64 base, u64 size); extern u64 __init lmb_alloc_nid(u64 size, u64 align, int nid, u64 (*nid_range)(u64, u64, int *)); diff --git a/trunk/lib/lmb.c b/trunk/lib/lmb.c index 9cee17142b2c..b1fc52606524 100644 --- a/trunk/lib/lmb.c +++ b/trunk/lib/lmb.c @@ -205,9 +205,8 @@ long lmb_add(u64 base, u64 size) } -long lmb_remove(u64 base, u64 size) +static long __lmb_remove(struct lmb_region *rgn, u64 base, u64 size) { - struct lmb_region *rgn = &(lmb.memory); u64 rgnbegin, rgnend; u64 end = base + size; int i; @@ -254,6 +253,16 @@ long lmb_remove(u64 base, u64 size) return lmb_add_region(rgn, end, rgnend - end); } +long lmb_remove(u64 base, u64 size) +{ + return __lmb_remove(&lmb.memory, base, size); +} + +long __init lmb_free(u64 base, u64 size) +{ + return __lmb_remove(&lmb.reserved, base, size); +} + long __init lmb_reserve(u64 base, u64 size) { struct lmb_region *_rgn = &lmb.reserved;