Message ID | 1386037658-3161-3-git-send-email-santosh.shilimkar@ti.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Mon, Dec 02, 2013 at 09:27:17PM -0500, Santosh Shilimkar wrote: ... > Cc: Yinghai Lu <yinghai@kernel.org> > Cc: Tejun Heo <tj@kernel.org> > Cc: Andrew Morton <akpm@linux-foundation.org> > Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com> > Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Reviewed-by: Tejun Heo <tj@kernel.org> > + /* > + * Don't allow Nobootmem allocator to free reserved memory regions Extreme nitpick: why the capitalization of "Nobootmem"? Thanks.
On Tuesday 03 December 2013 05:52 PM, Tejun Heo wrote: > On Mon, Dec 02, 2013 at 09:27:17PM -0500, Santosh Shilimkar wrote: > ... >> Cc: Yinghai Lu <yinghai@kernel.org> >> Cc: Tejun Heo <tj@kernel.org> >> Cc: Andrew Morton <akpm@linux-foundation.org> >> Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com> >> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com> > > Reviewed-by: Tejun Heo <tj@kernel.org> > >> + /* >> + * Don't allow Nobootmem allocator to free reserved memory regions > > Extreme nitpick: why the capitalization of "Nobootmem"? > Will fix that
diff --git a/mm/memblock.c b/mm/memblock.c index aab5669..53da534 100644 --- a/mm/memblock.c +++ b/mm/memblock.c @@ -265,6 +265,19 @@ phys_addr_t __init_memblock get_allocated_memblock_reserved_regions_info( if (memblock.reserved.regions == memblock_reserved_init_regions) return 0; + /* + * Don't allow Nobootmem allocator to free reserved memory regions + * array if + * - CONFIG_DEBUG_FS is enabled; + * - CONFIG_ARCH_DISCARD_MEMBLOCK is not enabled; + * - reserved memory regions array have been resized during boot. + * Otherwise debug_fs entry "sys/kernel/debug/memblock/reserved" + * will show garbage instead of state of memory reservations. + */ + if (IS_ENABLED(CONFIG_DEBUG_FS) && + !IS_ENABLED(CONFIG_ARCH_DISCARD_MEMBLOCK)) + return 0; + *addr = __pa(memblock.reserved.regions); return PAGE_ALIGN(sizeof(struct memblock_region) *