On Tue, 2010-03-30 at 19:16 -0700, Yinghai Lu wrote: > They will check if the region array is big enough. > > __check_and_double_region_array will try to double the region array if that > array spare slots is not big enough. Old array will be copied to new array. > > diff --git a/include/linux/lmb.h b/include/linux/lmb.h > index 4cf2f3b..598662f 100644 > --- a/include/linux/lmb.h > +++ b/include/linux/lmb.h > @@ -83,6 +84,9 @@ lmb_end_pfn(struct lmb_region *type, unsigned long region_nr) > lmb_size_pages(type, region_nr); > } > > +void lmb_reserve_area(u64 start, u64 end, char *name); > +void lmb_free_area(u64 start, u64 end); > +void lmb_add_memory(u64 start, u64 end); vs extern long lmb_reserve(u64 base, u64 size); extern long lmb_free(u64 base, u64 size); extern long lmb_add(u64 base, u64 size); Can you tell which ones handle dynamically expanding the region array? You're _still_ adding a new API, which I still think is stupid. cheers