)]}'
{
  "log": [
    {
      "commit": "181eb39425f2b9275afcb015eaa547d11f71a02f",
      "tree": "0ce0f09b5a86931e580a0a6b88e546831c7318ed",
      "parents": [
        "4e2f07750d9a94e8f23e86408df5ab95be88bf11"
      ],
      "author": {
        "name": "Gavin Shan",
        "email": "shangw@linux.vnet.ibm.com",
        "time": "Tue May 29 15:06:50 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:24 2012 -0700"
      },
      "message": "mm/memblock: fix memory leak on extending regions\n\nThe overall memblock has been organized into the memory regions and\nreserved regions.  Initially, the memory regions and reserved regions are\nstored in the predetermined arrays of \"struct memblock _region\".  It\u0027s\npossible for the arrays to be enlarged when we have newly added regions,\nbut no free space left there.  The policy here is to create double-sized\narray either by slab allocator or memblock allocator.  Unfortunately, we\ndidn\u0027t free the old array, which might be allocated through slab allocator\nbefore.  That would cause memory leak.\n\nThe patch introduces 2 variables to trace where (slab or memblock) the\nmemory and reserved regions come from.  The memory for the memory or\nreserved regions will be deallocated by kfree() if that was allocated by\nslab allocator.  Thus to fix the memory leak issue.\n\nSigned-off-by: Gavin Shan \u003cshangw@linux.vnet.ibm.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4e2f07750d9a94e8f23e86408df5ab95be88bf11",
      "tree": "8d2d1b24619817b9a553361a9dc967b3c39a2585",
      "parents": [
        "5bf5f03c271907978489868a4c72aeb42b5127d2"
      ],
      "author": {
        "name": "Gavin Shan",
        "email": "shangw@linux.vnet.ibm.com",
        "time": "Tue May 29 15:06:50 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:24 2012 -0700"
      },
      "message": "mm/memblock: cleanup on duplicate VA/PA conversion\n\nThe overall memblock has been organized into the memory regions and\nreserved regions.  Initially, the memory regions and reserved regions are\nstored in the predetermined arrays of \"struct memblock _region\".  It\u0027s\npossible for the arrays to be enlarged when we have newly added regions\nfor them, but no enough space there.  Under the situation, We will created\ndouble-sized array to meet the requirement.  However, the original\nimplementation converted the VA (Virtual Address) of the newly allocated\narray of regions to PA (Physical Address), then translate back when we\nallocates the new array from slab.  That\u0027s actually unnecessary.\n\nThe patch removes the duplicate VA/PA conversion.\n\nSigned-off-by: Gavin Shan \u003cshangw@linux.vnet.ibm.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b3dc627cabb33fc95f93da78457770c1b2a364d2",
      "tree": "e37cae7a574b808b6da48e4c93e81f170efce078",
      "parents": [
        "310eb776501af8412c570c4bcddc9ab5cecf3d7a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Apr 20 08:31:34 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 20 11:18:46 2012 -0700"
      },
      "message": "memblock: memblock should be able to handle zero length operations\n\nCommit 24aa07882b (\"memblock, x86: Replace memblock_x86_reserve/\nfree_range() with generic ones\") replaced x86 specific memblock\noperations with the generic ones; unfortunately, it lost zero length\noperation handling in the process making the kernel panic if somebody\ntries to reserve zero length area.\n\nThere isn\u0027t much to be gained by being cranky to zero length operations\nand panicking is almost the worst response.  Drop the BUG_ON() in\nmemblock_reserve() and update memblock_add_region/isolate_range() so\nthat all zero length operations are handled as noops.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: stable@vger.kernel.org\nReported-by: Valere Monseur \u003cvalere.monseur@ymail.com\u003e\nBisected-by: Joseph Freeman \u003cjfree143dev@gmail.com\u003e\nTested-by: Joseph Freeman \u003cjfree143dev@gmail.com\u003e\nBugzilla: https://bugzilla.kernel.org/show_bug.cgi?id\u003d43098\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "847854f5988a04fe7e02d2fdd4fa0df9f96360fe",
      "tree": "c1c1e4de2f0221b63d359961e54d2977d90b9536",
      "parents": [
        "88ebdda6159ffc15699f204c33feb3e431bf9bdc"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 29 05:56:21 2012 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 01 10:53:18 2012 +0100"
      },
      "message": "memblock: Fix size aligning of memblock_alloc_base_nid()\n\nmemblock allocator aligns @size to @align to reduce the amount\nof fragmentation.  Commit:\n\n 7bd0b0f0da (\"memblock: Reimplement memblock allocation using reverse free area iterator\")\n\nBroke it by incorrectly relocating @size aligning to\nmemblock_find_in_range_node().  As the aligned size is not\npropagated back to memblock_alloc_base_nid(), the actually\nreserved size isn\u0027t aligned.\n\nWhile this increases memory use for memblock reserved array,\nthis shouldn\u0027t cause any critical failure; however, it seems\nthat the size aligning was hiding a use-beyond-allocation bug in\nsparc64 and losing the aligning causes boot failure.\n\nThe underlying problem is currently being debugged but this is a\nproper fix in itself, it\u0027s already pretty late in -rc cycle for\nboot failures and reverting the change for debugging isn\u0027t\ndifficult. Restore the size aligning moving it to\nmemblock_alloc_base_nid().\n\nReported-by: Meelis Roos \u003cmroos@linux.ee\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nCc: Rob Herring \u003crob.herring@calxeda.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/20120228205621.GC3252@dhcp-172-17-108-109.mtv.corp.google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nLKML-Reference: \u003calpine.SOC.1.00.1202130942030.1488@math.ut.ee\u003e\n"
    },
    {
      "commit": "5d53cb27d849c899136c048ec84c940ac449494b",
      "tree": "66c78c014a06641245fa3cd219afabdc7afdf427",
      "parents": [
        "edf7c8148ec40c0fd27c0ef3f688defcc65e3913"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Jan 13 10:14:12 2012 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jan 16 08:38:06 2012 +0100"
      },
      "message": "memblock: Fix alloc failure due to dumb underflow protection in memblock_find_in_range_node()\n\n7bd0b0f0da (\"memblock: Reimplement memblock allocation using\nreverse free area iterator\") implemented a simple top-down\nallocator using a reverse memblock iterator.  To avoid underflow\nin the allocator loop, it simply raised the lower boundary to\nthe requested size under the assumption that requested size\nwould be far smaller than available memblocks.\n\nThis causes early page table allocation failure under certain\nconfigurations in Xen.  Fix it by checking for underflow directly\ninstead of bumping up lower bound.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nCc: rjw@sisk.pl\nCc: xen-devel@lists.xensource.com\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/20120113181412.GA11112@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7bd0b0f0da3b1ec11cbcc798eb0ef747a1184077",
      "tree": "ef285a020ffc04250b7327f0e9876a5988aa600e",
      "parents": [
        "0ee332c1451869963626bf9cac88f165a90990e1"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 08 10:22:09 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 08 10:22:09 2011 -0800"
      },
      "message": "memblock: Reimplement memblock allocation using reverse free area iterator\n\nNow that all early memory information is in memblock when enabled, we\ncan implement reverse free area iterator and use it to implement NUMA\naware allocator which is then wrapped for simpler variants instead of\nthe confusing and inefficient mending of information in separate NUMA\naware allocator.\n\nImplement for_each_free_mem_range_reverse(), use it to reimplement\nmemblock_find_in_range_node() which in turn is used by all allocators.\n\nThe visible allocator interface is inconsistent and can probably use\nsome cleanup too.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\n"
    },
    {
      "commit": "0ee332c1451869963626bf9cac88f165a90990e1",
      "tree": "a40e6c9c6cfe39ecbca37a08019be3c9e56a4a9b",
      "parents": [
        "a2bf79e7dcc97b4e9654f273453f9264f49e41ff"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 08 10:22:09 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 08 10:22:09 2011 -0800"
      },
      "message": "memblock: Kill early_node_map[]\n\nNow all ARCH_POPULATES_NODE_MAP archs select HAVE_MEBLOCK_NODE_MAP -\nthere\u0027s no user of early_node_map[] left.  Kill early_node_map[] and\nreplace ARCH_POPULATES_NODE_MAP with HAVE_MEMBLOCK_NODE_MAP.  Also,\nrelocate for_each_mem_pfn_range() and helper from mm.h to memblock.h\nas page_alloc.c would no longer host an alternative implementation.\n\nThis change is ultimately one to one mapping and shouldn\u0027t cause any\nobservable difference; however, after the recent changes, there are\nsome functions which now would fit memblock.c better than page_alloc.c\nand dependency on HAVE_MEMBLOCK_NODE_MAP instead of HAVE_MEMBLOCK\ndoesn\u0027t make much sense on some of them.  Further cleanups for\nfunctions inside HAVE_MEMBLOCK_NODE_MAP in mm.h would be nice.\n\n-v2: Fix compile bug introduced by mis-spelling\n CONFIG_HAVE_MEMBLOCK_NODE_MAP to CONFIG_MEMBLOCK_HAVE_NODE_MAP in\n mmzone.h.  Reported by Stephen Rothwell.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Chen Liqin \u003cliqin.chen@sunplusct.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "7fb0bc3f06fdc3a35e41bcea7a15e53d2515362f",
      "tree": "76da7b578a655915276c28047ec11fd678634d99",
      "parents": [
        "1aadc0560f46530f8a0f11055285b876a8a31770"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 08 10:22:08 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 08 10:22:08 2011 -0800"
      },
      "message": "memblock: Implement memblock_add_node()\n\nImplement memblock_add_node() which can add a new memblock memory\nregion with specific node ID.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\n"
    },
    {
      "commit": "1aadc0560f46530f8a0f11055285b876a8a31770",
      "tree": "9d57dbe134894d4f8d20cfd246ac9457af65b271",
      "parents": [
        "1440c4e2c918532f39131c3330fe2226e16be7b6"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 08 10:22:08 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 08 10:22:08 2011 -0800"
      },
      "message": "memblock: s/memblock_analyze()/memblock_allow_resize()/ and update users\n\nThe only function of memblock_analyze() is now allowing resize of\nmemblock region arrays.  Rename it to memblock_allow_resize() and\nupdate its users.\n\n* The following users remain the same other than renaming.\n\n  arm/mm/init.c::arm_memblock_init()\n  microblaze/kernel/prom.c::early_init_devtree()\n  powerpc/kernel/prom.c::early_init_devtree()\n  openrisc/kernel/prom.c::early_init_devtree()\n  sh/mm/init.c::paging_init()\n  sparc/mm/init_64.c::paging_init()\n  unicore32/mm/init.c::uc32_memblock_init()\n\n* In the following users, analyze was used to update total size which\n  is no longer necessary.\n\n  powerpc/kernel/machine_kexec.c::reserve_crashkernel()\n  powerpc/kernel/prom.c::early_init_devtree()\n  powerpc/mm/init_32.c::MMU_init()\n  powerpc/mm/tlb_nohash.c::__early_init_mmu()  \n  powerpc/platforms/ps3/mm.c::ps3_mm_add_memory()\n  powerpc/platforms/embedded6xx/wii.c::wii_memory_fixups()\n  sh/kernel/machine_kexec.c::reserve_crashkernel()\n\n* x86/kernel/e820.c::memblock_x86_fill() was directly setting\n  memblock_can_resize before populating memblock and calling analyze\n  afterwards.  Call memblock_allow_resize() before start populating.\n\nmemblock_can_resize is now static inside memblock.c.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Michal Simek \u003cmonstr@monstr.eu\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Guan Xuetao \u003cgxt@mprc.pku.edu.cn\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "1440c4e2c918532f39131c3330fe2226e16be7b6",
      "tree": "316b945da272f43bdb88d295c48926e471e47fad",
      "parents": [
        "6fbef13c4feaf0c5576e2315f4d2999c4b670c88"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 08 10:22:08 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 08 10:22:08 2011 -0800"
      },
      "message": "memblock: Track total size of regions automatically\n\nTotal size of memory regions was calculated by memblock_analyze()\nrequiring explicitly calling the function between operations which can\nchange memory regions and possible users of total size, which is\ncumbersome and fragile.\n\nThis patch makes each memblock_type track total size automatically\nwith minor modifications to memblock manipulation functions and remove\nrequirements on calling memblock_analyze().  [__]memblock_dump_all()\nnow also dumps the total size of reserved regions.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\n"
    },
    {
      "commit": "c0ce8fef55896a2813a3d94e1b2d0e6d7fab6228",
      "tree": "616396e0b08f0a41eafd7d4a10bd3b2fee5726c8",
      "parents": [
        "eb18f1b5bfb99b1d7d2f5d792e6ee5c9b7d89330"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 08 10:22:07 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 08 10:22:07 2011 -0800"
      },
      "message": "memblock: Reimplement memblock_enforce_memory_limit() using __memblock_remove()\n\nWith recent updates, the basic memblock operations are robust enough\nthat there\u0027s no reason for memblock_enfore_memory_limit() to directly\nmanipulate memblock region arrays.  Reimplement it using\n__memblock_remove().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\n"
    },
    {
      "commit": "eb18f1b5bfb99b1d7d2f5d792e6ee5c9b7d89330",
      "tree": "6f2a6865b929358c1c46a61f7f3ac5563cc03f02",
      "parents": [
        "719361809fde9dbe9ccc4cf71f9fa9add5fa8bf9"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 08 10:22:07 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 08 10:22:07 2011 -0800"
      },
      "message": "memblock: Make memblock functions handle overflowing range @size\n\nAllow memblock users to specify range where @base + @size overflows\nand automatically cap it at maximum.  This makes the interface more\nrobust and specifying till-the-end-of-memory easier.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\n"
    },
    {
      "commit": "719361809fde9dbe9ccc4cf71f9fa9add5fa8bf9",
      "tree": "e99a719d9605f12a7b00220e704736e54b4ee122",
      "parents": [
        "6a9ceb31c06f1e8d50be79259756fda73234868d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 08 10:22:07 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 08 10:22:07 2011 -0800"
      },
      "message": "memblock: Reimplement __memblock_remove() using memblock_isolate_range()\n\n__memblock_remove()\u0027s open coded region manipulation can be trivially\nreplaced with memblock_islate_range().  This increases code sharing\nand eases improving region tracking.\n\nThis pulls memblock_isolate_range() out of HAVE_MEMBLOCK_NODE_MAP.\nMake it use memblock_get_region_node() instead of assuming rgn-\u003enid is\navailable.\n\n-v2: Fixed build failure on !HAVE_MEMBLOCK_NODE_MAP caused by direct\n     rgn-\u003enid access.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\n"
    },
    {
      "commit": "6a9ceb31c06f1e8d50be79259756fda73234868d",
      "tree": "836da104d38d03b6464ddf626781e8c5b5c89933",
      "parents": [
        "fe091c208a40299fba40e62292a610fb91e44b4e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 08 10:22:07 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 08 10:22:07 2011 -0800"
      },
      "message": "memblock: Separate out memblock_isolate_range() from memblock_set_node()\n\nmemblock_set_node() operates in three steps - break regions crossing\nboundaries, set nid and merge back regions.  This patch separates the\nfirst part into a separate function - memblock_isolate_range(), which\nbreaks regions crossing range boundaries and returns range index range\nfor regions properly contained in the specified memory range.\n\nThis doesn\u0027t introduce any behavior change and will be used to further\nunify region handling.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\n"
    },
    {
      "commit": "fe091c208a40299fba40e62292a610fb91e44b4e",
      "tree": "72bf673f05a736cbf3555a4dcf428b95840fc9f7",
      "parents": [
        "c5a1cb284b791fcc3c70962331a682452afaf6cd"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 08 10:22:07 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 08 10:22:07 2011 -0800"
      },
      "message": "memblock: Kill memblock_init()\n\nmemblock_init() initializes arrays for regions and memblock itself;\nhowever, all these can be done with struct initializers and\nmemblock_init() can be removed.  This patch kills memblock_init() and\ninitializes memblock with struct initializer.\n\nThe only difference is that the first dummy entries don\u0027t have .nid\nset to MAX_NUMNODES initially.  This doesn\u0027t cause any behavior\ndifference.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Michal Simek \u003cmonstr@monstr.eu\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Guan Xuetao \u003cgxt@mprc.pku.edu.cn\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "c5a1cb284b791fcc3c70962331a682452afaf6cd",
      "tree": "5d619ff74588c55393bd9842f2aae55c181a721e",
      "parents": [
        "4ff7b82f1e5fc65a7c9512b231b4ea533f28541a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 08 10:22:07 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 08 10:22:07 2011 -0800"
      },
      "message": "memblock: Kill sentinel entries at the end of static region arrays\n\nmemblock no longer depends on having one more entry at the end during\naddition making the sentinel entries at the end of region arrays not\ntoo useful.  Remove the sentinels.  This eases further updates.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\n"
    },
    {
      "commit": "4ff7b82f1e5fc65a7c9512b231b4ea533f28541a",
      "tree": "7251ce5a178add8bacd072d34d232c23c07dd389",
      "parents": [
        "9c8c27e2b89b020fd33dd3f2b18405d3f027e6ac"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 08 10:22:06 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 08 10:22:06 2011 -0800"
      },
      "message": "memblock: Add __memblock_dump_all()\n\nAdd __memblock_dump_all() which dumps memblock configuration whether\nmemblock_debug is enabled or not.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\n"
    },
    {
      "commit": "9c8c27e2b89b020fd33dd3f2b18405d3f027e6ac",
      "tree": "a537ca38c9b699cb477cc2c093b0c5a9b2286b09",
      "parents": [
        "581adcbe121872429de76ff9884762de71a76200"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 08 10:22:06 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 08 10:22:06 2011 -0800"
      },
      "message": "memblock: Use memblock_reserve() in memblock internal functions\n\nMake memblock_double_array(), __memblock_alloc_base() and\nmemblock_alloc_nid() use memblock_reserve() instead of calling\nmemblock_add_region() with reserved array directly.  This eases\ndebugging and updates to memblock_add_region().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\n"
    },
    {
      "commit": "581adcbe121872429de76ff9884762de71a76200",
      "tree": "6c7f0faf7ee8812630197e7c23fc32bb4cc978c2",
      "parents": [
        "1c16d242aa441c11ccaeaa63b49712555b8bfaeb"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 08 10:22:06 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 08 10:22:06 2011 -0800"
      },
      "message": "memblock: Make memblock_{add|remove|free|reserve}() return int and update prototypes\n\nmemblock_{add|remove|free|reserve}() return either 0 or -errno but had\nlong as return type.  Chage it to int.  Also, drop \u0027extern\u0027 from all\nprototypes in memblock.h - they are unnecessary and used\ninconsistently (especially if mm.h is included in the picture).\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\n"
    },
    {
      "commit": "d4bbf7e7759afc172e2bfbc5c416324590049cdd",
      "tree": "7eab5ee5481cd3dcf1162329fec827177640018a",
      "parents": [
        "a150439c4a97db379f0ed6faa46fbbb6e7bf3cb2",
        "401d0069cb344f401bc9d264c31db55876ff78c0"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 28 09:46:22 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 28 09:46:22 2011 -0800"
      },
      "message": "Merge branch \u0027master\u0027 into x86/memblock\n\nConflicts \u0026 resolutions:\n\n* arch/x86/xen/setup.c\n\n\tdc91c728fd \"xen: allow extra memory to be in multiple regions\"\n\t24aa07882b \"memblock, x86: Replace memblock_x86_reserve/free...\"\n\n\tconflicted on xen_add_extra_mem() updates.  The resolution is\n\ttrivial as the latter just want to replace\n\tmemblock_x86_reserve_range() with memblock_reserve().\n\n* drivers/pci/intel-iommu.c\n\n\t166e9278a3f \"x86/ia64: intel-iommu: move to drivers/iommu/\"\n\t5dfe8660a3d \"bootmem: Replace work_with_active_regions() with...\"\n\n\tconflicted as the former moved the file under drivers/iommu/.\n\tResolved by applying the chnages from the latter on the moved\n\tfile.\n\n* mm/Kconfig\n\n\t6661672053a \"memblock: add NO_BOOTMEM config symbol\"\n\tc378ddd53f9 \"memblock, x86: Make ARCH_DISCARD_MEMBLOCK a config option\"\n\n\tconflicted trivially.  Both added config options.  Just\n\tletting both add their own options resolves the conflict.\n\n* mm/memblock.c\n\n\td1f0ece6cdc \"mm/memblock.c: small function definition fixes\"\n\ted7b56a799c \"memblock: Remove memblock_memory_can_coalesce()\"\n\n\tconfliected.  The former updates function removed by the\n\tlatter.  Resolution is trivial.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "2d7d3eb2bad116e0d1b3b3930a923c55f6d0f70e",
      "tree": "ace773565549cc0b97657654983701b6ea5f9f55",
      "parents": [
        "264e56d8247ef6e31ed4386926cae86c61ddcb18"
      ],
      "author": {
        "name": "H Hartley Sweeten",
        "email": "hartleys@visionengravers.com",
        "time": "Mon Oct 31 17:09:15 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:50 2011 -0700"
      },
      "message": "mm/memblock.c: quiet sparse noise\n\nQuiet the following sparse noise in this file:\n\nwarning: symbol \u0027memblock_overlaps_region\u0027 was not declared. Should it be static?\n\nSigned-off-by: H Hartley Sweeten \u003chsweeten@visionengravers,com\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: \"H. Peter Anvin\" \u003chpa@linux.intel.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Tomi Valkeinen \u003ctomi.valkeinen@nokia.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d1f0ece6cdca973c01a46dff0eb062baafe78a85",
      "tree": "570aabe98bb19454723c122cee74fa42cbfa49c9",
      "parents": [
        "d2ebd0f6b89567eb93ead4e2ca0cbe03021f344b"
      ],
      "author": {
        "name": "Jonghwan Choi",
        "email": "jhbird.choi@samsung.com",
        "time": "Mon Oct 31 17:08:42 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:48 2011 -0700"
      },
      "message": "mm/memblock.c: small function definition fixes\n\nwarning: function \u0027memblock_memory_can_coalesce\u0027\nwith external linkage has definition.\n\nSigned-off-by: Jonghwan Choi \u003cjhbird.choi@samsung.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0a93ebef698b08ed04af0d7d913bab8aedfdc253",
      "tree": "dcdb4bba9355647dd060d9150422537ad126442a",
      "parents": [
        "f5252e009d5b87071a919221e4f6624184005368"
      ],
      "author": {
        "name": "Sam Ravnborg",
        "email": "sam@ravnborg.org",
        "time": "Mon Oct 31 17:08:16 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:47 2011 -0700"
      },
      "message": "memblock: add memblock_start_of_DRAM()\n\nSPARC32 require access to the start address.  Add a new helper\nmemblock_start_of_DRAM() to give access to the address of the first\nmemblock - which contains the lowest address.\n\nThe awkward name was chosen to match the already present\nmemblock_end_of_DRAM().\n\nSigned-off-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c9d8c3d0896bfa5b57531ecc41a85ffbc6d87dbe",
      "tree": "0de7519c20e066c820d37ff32be319745e7a2f8e",
      "parents": [
        "be8f684d73d8d916847e996bf69cef14352872c6"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Mon Jul 25 17:12:18 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 25 20:57:09 2011 -0700"
      },
      "message": "mm/memblock.c: avoid abuse of RED_INACTIVE\n\nRED_INACTIVE is a slab thing, and reusing it for memblock was\ninappropriate, because memblock is dealing with phys_addr_t\u0027s which have a\nKconfigurable sizeof().\n\nCreate a new poison type for this application.  Fixes the sparse warning\n\n    warning: cast truncates bits from constant value (9f911029d74e35b becomes 9d74e35b)\n\nReported-by: H Hartley Sweeten \u003chartleys@visionengravers.com\u003e\nTested-by: H Hartley Sweeten \u003chartleys@visionengravers.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a150439c4a97db379f0ed6faa46fbbb6e7bf3cb2",
      "tree": "71b9ae09af66970080a59d246231ed333c1f5b97",
      "parents": [
        "24aa07882b672fff2da2f5c955759f0bd13d32d5"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Thu Jul 14 11:57:10 2011 -0700"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Thu Jul 14 11:57:10 2011 -0700"
      },
      "message": "memblock: Cast phys_addr_t to unsigned long long for printf use\n\nphys_addr_t is not necessarily the same thing as unsigned long long.\nIt is, however, easier to cast it to unsigned long long for printf\npurposes than it is to deal with differnent printf formats.\n\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/4E1F4D2C.3000507@zytor.com\n"
    },
    {
      "commit": "24aa07882b672fff2da2f5c955759f0bd13d32d5",
      "tree": "e6dad38048ede1dbb9ad3c7fffcc4b37e72274a8",
      "parents": [
        "c378ddd53f9b8832a46fd4fec050a97fc2269858"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jul 12 11:16:06 2011 +0200"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Thu Jul 14 11:47:53 2011 -0700"
      },
      "message": "memblock, x86: Replace memblock_x86_reserve/free_range() with generic ones\n\nOther than sanity check and debug message, the x86 specific version of\nmemblock reserve/free functions are simple wrappers around the generic\nversions - memblock_reserve/free().\n\nThis patch adds debug messages with caller identification to the\ngeneric versions and replaces x86 specific ones and kills them.\narch/x86/include/asm/memblock.h and arch/x86/mm/memblock.c are empty\nafter this change and removed.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1310462166-31469-14-git-send-email-tj@kernel.org\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "c378ddd53f9b8832a46fd4fec050a97fc2269858",
      "tree": "ef90f814ce569ef1cd3b6e64ea403d909f9d2c53",
      "parents": [
        "474b881bf4ee86aba55d46a4fdf293de32cba91b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jul 14 11:46:03 2011 +0200"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Thu Jul 14 11:47:52 2011 -0700"
      },
      "message": "memblock, x86: Make ARCH_DISCARD_MEMBLOCK a config option\n\nFrom 6839454ae63f1eb21e515c10229ca95c22955fec Mon Sep 17 00:00:00 2001\nFrom: Tejun Heo \u003ctj@kernel.org\u003e\nDate: Thu, 14 Jul 2011 11:22:17 +0200\n\nMake ARCH_DISCARD_MEMBLOCK a config option so that it can be handled\ntogether with other MEMBLOCK options.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/20110714094603.GH3455@htj.dyndns.org\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "35fd0808d7d8d001cd72f112e3bca84664b596a3",
      "tree": "d4e21e003e182bc4824a74fd850ac3869380b53b",
      "parents": [
        "ab5d140b9eafae402aa3e673a63c5ef6164a9dd2"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jul 12 11:15:59 2011 +0200"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Thu Jul 14 11:47:47 2011 -0700"
      },
      "message": "memblock: Implement for_each_free_mem_range()\n\nImplement for_each_free_mem_range() which iterates over free memory\nareas according to memblock (memory \u0026\u0026 !reserved).  This will be used\nto simplify memblock users.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1310462166-31469-7-git-send-email-tj@kernel.org\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "7c0caeb866b0f648d91bb75b8bc6f86af95bb033",
      "tree": "042804fe716310a4de4effbbaa4461237e2b5d4a",
      "parents": [
        "67e24bcb725cabd15ef577bf301275d03d6086d7"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jul 14 11:43:42 2011 +0200"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Thu Jul 14 11:47:43 2011 -0700"
      },
      "message": "memblock: Add optional region-\u003enid\n\nFrom 83103b92f3234ec830852bbc5c45911bd6cbdb20 Mon Sep 17 00:00:00 2001\nFrom: Tejun Heo \u003ctj@kernel.org\u003e\nDate: Thu, 14 Jul 2011 11:22:16 +0200\n\nAdd optional region-\u003enid which can be enabled by arch using\nCONFIG_HAVE_MEMBLOCK_NODE_MAP.  When enabled, memblock also carries\nNUMA node information and replaces early_node_map[].\n\nNewly added memblocks have MAX_NUMNODES as nid.  Arch can then call\nmemblock_set_node() to set node information.  memblock takes care of\nmerging and node affine allocations w.r.t. node information.\n\nWhen MEMBLOCK_NODE_MAP is enabled, early_node_map[], related data\nstructures and functions to manipulate and iterate it are disabled.\nmemblock version of __next_mem_pfn_range() is provided such that\nfor_each_mem_pfn_range() behaves the same and its users don\u0027t have to\nbe updated.\n\n-v2: Yinghai spotted section mismatch caused by missing\n     __init_memblock in memblock_set_node().  Fixed.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/20110714094342.GF3455@htj.dyndns.org\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "784656f9c680d334e7b4cdb6951c5c913e5a26bf",
      "tree": "e70487038744f31ebab8ff16e14991f4a6b74222",
      "parents": [
        "ed7b56a799cade11f458cd83e1150af54a66b7e8"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jul 12 11:15:55 2011 +0200"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Thu Jul 14 11:47:41 2011 -0700"
      },
      "message": "memblock: Reimplement memblock_add_region()\n\nmemblock_add_region() carefully checked for merge and overlap\nconditions while adding a new region, which is complicated and makes\nit difficult to allow arbitrary overlaps or add more merge conditions\n(e.g. node ID).\n\nThis re-implements memblock_add_region() such that insertion is done\nin two steps - all non-overlapping portions of new area are inserted\nas separate regions first and then memblock_merge_regions() scan and\nmerge all neighbouring compatible regions.\n\nThis makes addition logic simpler and more versatile and enables\nadding node information to memblock.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1310462166-31469-3-git-send-email-tj@kernel.org\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "ed7b56a799cade11f458cd83e1150af54a66b7e8",
      "tree": "f61cd8c07445d6a61e4cbf323c797038904db4c3",
      "parents": [
        "eb40c4c27f1722f058e4713ccfedebac577d5190"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jul 12 11:15:54 2011 +0200"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Thu Jul 14 11:47:40 2011 -0700"
      },
      "message": "memblock: Remove memblock_memory_can_coalesce()\n\nArch could implement memblock_memor_can_coalesce() to veto merging of\nadjacent or overlapping memblock regions; however, no arch did and any\nvetoing would trigger WARN_ON().  Memblock regions are supposed to\ndeal with proper memory anyway.  Remove the unused hook.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1310462166-31469-2-git-send-email-tj@kernel.org\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "e64980405cc6aa74ef178d8d9aa4018c867ceed1",
      "tree": "a405d3de9c244ed2fb7899bdb66b1e1569aeae97",
      "parents": [
        "34e1845548418e5cecee0568ba721e1f089c092c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jul 12 10:46:34 2011 +0200"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Thu Jul 14 11:45:35 2011 -0700"
      },
      "message": "memblock: Separate out memblock_find_in_range_node()\n\nNode affine memblock allocation logic is currently implemented across\nmemblock_alloc_nid() and memblock_alloc_nid_region().  This\nreorganizes it such that it resembles that of non-NUMA allocation API.\n\nArea finding is collected and moved into new exported function\nmemblock_find_in_range_node() which is symmetrical to non-NUMA\ncounterpart - it handles @start/@end and understands ANYWHERE and\nACCESSIBLE.  memblock_alloc_nid() now simply calls\nmemblock_find_in_range_node() and reserves the returned area.\n\nThis makes memblock_alloc[_try]_nid() observe ACCESSIBLE limit on node\naffine allocations too (again, this doesn\u0027t make any difference for\nthe current sole user - sparc64).\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1310460395-30913-8-git-send-email-tj@kernel.org\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "34e1845548418e5cecee0568ba721e1f089c092c",
      "tree": "85e9cafe7a9184fc0f5efd77964f1df04239c89f",
      "parents": [
        "f9b18db3b1cedc75e5d002a4d7097891c3399736"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jul 12 10:46:33 2011 +0200"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Thu Jul 14 11:45:34 2011 -0700"
      },
      "message": "memblock: Make memblock_alloc_[try_]nid() top-down\n\nNUMA aware memblock alloc functions - memblock_alloc_[try_]nid() -\nweren\u0027t properly top-down because memblock_nid_range() scanned\nforward.  This patch reverses memblock_nid_range(), renames it to\nmemblock_nid_range_rev() and updates related functions to implement\nproper top-down allocation.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1310460395-30913-7-git-send-email-tj@kernel.org\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "f9b18db3b1cedc75e5d002a4d7097891c3399736",
      "tree": "a8840cf9d668f107315f4c2f05824cafbbfa3e35",
      "parents": [
        "b2fea988f4f3b38ff4edfc1556a843c91932804c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jul 12 10:46:32 2011 +0200"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Thu Jul 14 11:45:33 2011 -0700"
      },
      "message": "memblock: Don\u0027t allow archs to override memblock_nid_range()\n\nmemblock_nid_range() is used to implement memblock_[try_]alloc_nid().\nThe generic version determines the range by walking early_node_map\nwith for_each_mem_pfn_range().  The generic version is defined __weak\nto allow arch override.\n\nCurrently, only sparc overrides it; however, with the previous update\nto the generic implementation, there isn\u0027t much to be gained with arch\noverride.  Sparc would behave exactly the same with the generic\nimplementation.\n\nThis patch disallows arch override for memblock_nid_range() and make\nboth generic and sparc versions static.\n\nsparc is only compile tested.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1310460395-30913-6-git-send-email-tj@kernel.org\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "b2fea988f4f3b38ff4edfc1556a843c91932804c",
      "tree": "4ab1227ab0a607ea44ba554468bda547a4d51eb5",
      "parents": [
        "c13291a536b835b2ab278ab201f2cb1ce22f2785"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jul 12 10:46:31 2011 +0200"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Thu Jul 14 11:45:32 2011 -0700"
      },
      "message": "memblock: Improve generic memblock_nid_range() using for_each_mem_pfn_range()\n\nGiven an address range, memblock_nid_range() determines the node the\nstart of the range belongs to and upto where the range stays in the\nsame node.\n\nIt\u0027s implemented by calling get_pfn_range_for_nid(), which determines\nmin and max pfns for a given node, for each node and testing whether\nstart address falls in there.  This is not only inefficient but also\nincorrect when nodes interleave as min-max ranges for nodes overlap.\n\nThis patch reimplements memblock_nid_range() using\nfor_each_mem_pfn_range().  It\u0027s simpler, walks the mem ranges once and\ncan find the exact range the start address falls in.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1310460395-30913-5-git-send-email-tj@kernel.org\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "fc769a8e70a3348d5de49e5f69f6aff810157360",
      "tree": "1dc850a4092602ed5ed5d238bc293c7202b99f3a",
      "parents": [
        "1f5026a7e21e409c2b9dd54f6dfb9446511fb7c5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jul 12 09:58:10 2011 +0200"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Wed Jul 13 16:36:02 2011 -0700"
      },
      "message": "memblock: Replace memblock_find_base() with memblock_find_in_range()\n\nmemblock_find_base() is a static function with two callers in\nmemblock.c and memblock_find_in_range() is a wrapper around it which\njust changes the types and order of parameters.\n\nMake memblock_find_in_range() take phys_addr_t instead of u64 for\nconsistency and replace memblock_find_base() with it.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1310457490-3356-7-git-send-email-tj@kernel.org\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "1f5026a7e21e409c2b9dd54f6dfb9446511fb7c5",
      "tree": "bcf0529d5f05ea8b685d6c0fddcb3197c2fab49c",
      "parents": [
        "348968eb151e2569ad0ebe19b2f9c3c25b5c816a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jul 12 09:58:09 2011 +0200"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Wed Jul 13 16:36:01 2011 -0700"
      },
      "message": "memblock: Kill MEMBLOCK_ERROR\n\n25818f0f28 (memblock: Make MEMBLOCK_ERROR be 0) thankfully made\nMEMBLOCK_ERROR 0 and there already are codes which expect error return\nto be 0.  There\u0027s no point in keeping MEMBLOCK_ERROR around.  End its\nmisery.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1310457490-3356-6-git-send-email-tj@kernel.org\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "348968eb151e2569ad0ebe19b2f9c3c25b5c816a",
      "tree": "b184f5eebca9d40e94dd221d033abc409c600f8c",
      "parents": [
        "15fb09722df32b7685be1cbcac198bb556ddaffe"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jul 12 09:58:08 2011 +0200"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Wed Jul 13 16:35:59 2011 -0700"
      },
      "message": "memblock: Use round_up/down() instead of memblock_align_up/down()\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1310457490-3356-5-git-send-email-tj@kernel.org\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "15fb09722df32b7685be1cbcac198bb556ddaffe",
      "tree": "cb010e80d2ecbfee08a38cf9e65c6ff5b1fa32bb",
      "parents": [
        "53348f27168534561c0c814843bbf181314374f4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jul 12 09:58:07 2011 +0200"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Wed Jul 13 16:35:58 2011 -0700"
      },
      "message": "memblock: Use MEMBLOCK_ALLOC_ACCESSIBLE instead of ANYWHERE in memblock_alloc_try_nid()\n\nAfter node affine allocation fails, memblock_alloc_try_nid() calls\nmemblock_alloc_base() with @max_addr set to MEMBLOCK_ALLOC_ANYWHERE.\nThis is inconsistent with memblock_alloc() and what the function\u0027s\nsole user - sparc/mm/init_64 - expects, although it doesn\u0027t make any\ndifference as sparc64 doesn\u0027t have highmem and ACCESSIBLE equals\nANYWHERE.\n\nThis patch makes memblock_alloc_try_nid() use ACCESSIBLE instead of\nANYWHERE.  This isn\u0027t complete as node affine allocation doesn\u0027t\nconsider memblock.current_limit.  It will be handled with future\nchanges.\n\nThis patch doesn\u0027t introduce any behavior difference.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1310457490-3356-4-git-send-email-tj@kernel.org\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "8f7a66051b7523108c5aefb08c6a637e54aedc47",
      "tree": "212611c9ac7c4d9f0918e431043b3fc3f9fd43b6",
      "parents": [
        "84be48d84a53044e13aa8816aab201ab5480815d"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Mar 22 16:33:43 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:09 2011 -0700"
      },
      "message": "mm/memblock: properly handle overlaps and fix error path\n\nCurrently memblock_reserve() or memblock_free() don\u0027t handle overlaps of\nany kind.  There is some special casing for coalescing exactly adjacent\nregions but that\u0027s about it.\n\nThis is annoying because typically memblock_reserve() is used to mark\nregions passed by the firmware as reserved and we all know how much we can\ntrust our firmwares...\n\nAlso, with the current code, if we do something it doesn\u0027t handle right\nsuch as trying to memblock_reserve() a large range spanning multiple\nexisting smaller reserved regions for example, or doing overlapping\nreservations, it can silently corrupt the internal region array, causing\nodd errors much later on, such as allocations returning reserved regions\netc...\n\nThis patch rewrites the underlying functions that add or remove a region\nto the arrays.  The new code is a lot more robust as it fully handles\noverlapping regions.  It\u0027s also, imho, simpler than the previous\nimplementation.\n\nIn addition, while doing so, I found a bug where if we fail to double the\narray while adding a region, we would remove the last region of the array\nrather than the region we just allocated.  This fixes it too.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nAcked-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e6d2e2b2b1e1455df16d68a78f4a3874c7b3ad20",
      "tree": "1e7ebb055743db7638269a55b890d41de2b799ae",
      "parents": [
        "de1f016f882e52facc3c8609599f827bcdd14af9"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Thu Feb 10 15:01:30 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 11 16:12:20 2011 -0800"
      },
      "message": "memblock: don\u0027t adjust size in memblock_find_base()\n\nWhile applying patch to use memblock to find aperture for 64bit x86.\nIngo found system with 1g + force_iommu\n\n\u003e No AGP bridge found\n\u003e Node 0: aperture @ 38000000 size 32 MB\n\u003e Aperture pointing to e820 RAM. Ignoring.\n\u003e Your BIOS doesn\u0027t leave a aperture memory hole\n\u003e Please enable the IOMMU option in the BIOS setup\n\u003e This costs you 64 MB of RAM\n\u003e Cannot allocate aperture memory hole (0,65536K)\n\nthe corresponding code:\n\n\taddr \u003d memblock_find_in_range(0, 1ULL\u003c\u003c32, aper_size, 512ULL\u003c\u003c20);\n\tif (addr \u003d\u003d MEMBLOCK_ERROR || addr + aper_size \u003e 0xffffffff) {\n\t\tprintk(KERN_ERR\n\t\t\t\"Cannot allocate aperture memory hole (%lx,%uK)\\n\",\n\t\t\t\taddr, aper_size\u003e\u003e10);\n\t\treturn 0;\n\t}\n\tmemblock_x86_reserve_range(addr, addr + aper_size, \"aperture64\")\n\nfails because memblock core code align the size with 512M.  That could\nmake size way too big.\n\nSo don\u0027t align the size in that case.\n\nactually __memblock_alloc_base, the another caller already align that\nbefore calling that function.\n\nBTW. x86 does not use __memblock_alloc_base...\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Dave Airlie \u003cairlied@linux.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "abb65272a190660790096628859e752172d822fd",
      "tree": "c600b517ec0446b0ae95430b6c65d864c7dd0efb",
      "parents": [
        "453c719261c0b4030b2676124adb6e81c5fb6833"
      ],
      "author": {
        "name": "Tomi Valkeinen",
        "email": "tomi.valkeinen@nokia.com",
        "time": "Thu Jan 20 14:44:20 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 20 17:02:05 2011 -0800"
      },
      "message": "memblock: fix memblock_is_region_memory()\n\nmemblock_is_region_memory() uses reserved memblocks to search for the\ngiven region, while it should use the memory memblocks.\n\nI encountered the problem with OMAP\u0027s framebuffer ram allocation.\nNormally the ram is allocated dynamically, and this function is not\ncalled.  However, if we want to pass the framebuffer from the bootloader\nto the kernel (to retain the boot image), this function is used to check\nthe validity of the kernel parameters for the framebuffer ram area.\n\nSigned-off-by: Tomi Valkeinen \u003ctomi.valkeinen@nokia.com\u003e\nAcked-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cd79481d27b9f90aad80c9b972292c42c25bbf8e",
      "tree": "36a04b373218c594d7ff8c3a246da79e0c6632c3",
      "parents": [
        "236260b90dd94516982ad67aa6f5449c4c37db7b"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Mon Oct 11 12:34:09 2010 -0700"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Mon Oct 11 16:00:52 2010 -0700"
      },
      "message": "memblock: Annotate memblock functions with __init_memblock\n\nStephen found\n\nWARNING: mm/built-in.o(.text+0x25ab8): Section mismatch in reference from the function memblock_find_base() to the function .init.text:memblock_find_region()\nThe function memblock_find_base() references\nthe function __init memblock_find_region().\nThis is often because memblock_find_base lacks a __init\nannotation or the annotation of memblock_find_region is wrong.\n\nSo let memblock_find_region() to use __init_memblock instead of __init\ndirectly.\n\nAlso fix one function that did not have __init* to be __init_memblock.\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nLKML-Reference: \u003c4CB366B1.40405@kernel.org\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "236260b90dd94516982ad67aa6f5449c4c37db7b",
      "tree": "45fc2bc1053e41630f88a1a4c4757bba817f34e8",
      "parents": [
        "153db80f8cf74e8700cac96305b6c0b92918f17c"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed Oct 06 15:52:29 2010 -0700"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Mon Oct 11 15:59:01 2010 -0700"
      },
      "message": "memblock: Allow memblock_init to be called early\n\nThe Xen setup code needs to call memblock_x86_reserve_range() very early,\nso allow it to initialize the memblock subsystem before doing so.  The\nsecond memblock_init() is ignored.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nLKML-Reference: \u003c4CACFDAD.3090900@goop.org\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "f1af98c7629a1b76fd7336decbc776acdeed2120",
      "tree": "4886c7d9469f147a5c3d0ece2c3aa5993ae77ae3",
      "parents": [
        "1d931264af0f10649b35afa8fbd2e169da51ac08"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Mon Oct 04 14:57:39 2010 -0700"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Tue Oct 05 21:45:35 2010 -0700"
      },
      "message": "memblock: Fix wraparound in find_region()\n\nWhen trying to find huge range for crashkernel, get\n\n[    0.000000] ------------[ cut here ]------------\n[    0.000000] WARNING: at arch/x86/mm/memblock.c:248 memblock_x86_reserve_range+0x40/0x7a()\n[    0.000000] Hardware name: Sun Fire x4800\n[    0.000000] memblock_x86_reserve_range: wrong range [0xffffffff37000000, 0x137000000)\n[    0.000000] Modules linked in:\n[    0.000000] Pid: 0, comm: swapper Not tainted 2.6.36-rc5-tip-yh-01876-g1cac214-dirty #59\n[    0.000000] Call Trace:\n[    0.000000]  [\u003cffffffff82816f7e\u003e] ? memblock_x86_reserve_range+0x40/0x7a\n[    0.000000]  [\u003cffffffff81078c2d\u003e] warn_slowpath_common+0x85/0x9e\n[    0.000000]  [\u003cffffffff81078d38\u003e] warn_slowpath_fmt+0x6e/0x70\n[    0.000000]  [\u003cffffffff8281e77c\u003e] ? memblock_find_region+0x40/0x78\n[    0.000000]  [\u003cffffffff8281eb1f\u003e] ? memblock_find_base+0x9a/0xb9\n[    0.000000]  [\u003cffffffff82816f7e\u003e] memblock_x86_reserve_range+0x40/0x7a\n[    0.000000]  [\u003cffffffff8280452c\u003e] setup_arch+0x99d/0xb2a\n[    0.000000]  [\u003cffffffff810a3e02\u003e] ? trace_hardirqs_off+0xd/0xf\n[    0.000000]  [\u003cffffffff81cec7d8\u003e] ? _raw_spin_unlock_irqrestore+0x3d/0x4c\n[    0.000000]  [\u003cffffffff827ffcec\u003e] start_kernel+0xde/0x3f1\n[    0.000000]  [\u003cffffffff827ff2d4\u003e] x86_64_start_reservations+0xa0/0xa4\n[    0.000000]  [\u003cffffffff827ff3de\u003e] x86_64_start_kernel+0x106/0x10d\n[    0.000000] ---[ end trace a7919e7f17c0a725 ]---\n[    0.000000] Reserving 8192MB of memory at 17592186041200MB for crashkernel (System RAM: 526336MB)\n\nThis is caused by a wraparound in the test due to size \u003e end;\nexplicitly check for this condition and fail.\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nLKML-Reference: \u003c4CAA4DD3.1080401@kernel.org\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "3661ca66a42e306aaf53246fb75aec1ea01be0f0",
      "tree": "7fb390d6d09f72f9e1608554709b607ba0763ca7",
      "parents": [
        "823108a056c52a83c32ca199a57566a36fad4d19"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Wed Sep 15 13:05:29 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 15 22:17:13 2010 +0200"
      },
      "message": "memblock: Fix section mismatch warnings\n\nStephen found a bunch of section mismatch warnings with the\nnew memblock changes.\n\nUse __init_memblock to replace __init in memblock.c and remove\n__init in memblock.h. We should not use __init in header files.\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nTested-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Yinghai Lu \u003cYinghai@kernel.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nLKML-Reference: \u003c4C912709.2090201@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7950c407c0288b223a200c1bba8198941599ca37",
      "tree": "4d7ad677fa918630cc29363c197d2593198727be",
      "parents": [
        "5303b68f57c227c27193a14e57dd12be27cd670f"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Wed Aug 25 13:39:14 2010 -0700"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Fri Aug 27 11:07:56 2010 -0700"
      },
      "message": "memblock: Add memblock_free/reserve_reserved_regions()\n\nSo we can avoid export memblock_reserved_init_regions()\nSuggested by Ben.\n\n-v2: use __init_memblock attribute\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "5303b68f57c227c27193a14e57dd12be27cd670f",
      "tree": "a7a217f9e3385b2f721cc2ec7ef3413577264e08",
      "parents": [
        "10d0643988e976360eb3497dcafb55b393b8e480"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Wed Jul 28 15:38:40 2010 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Aug 05 12:56:34 2010 +1000"
      },
      "message": "memblock: Add memblock_find_in_range()\n\nThis is a wrapper for memblock_find_base() using slightly different\narguments (start,end instead of start,size for example) in order to\nmake it easier to convert existing arch/x86 code.\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "10d0643988e976360eb3497dcafb55b393b8e480",
      "tree": "fa8f614dd7ab2ffc2f94700451e6c9e6d26c702e",
      "parents": [
        "f0b37fad9a63217c39997b2d2b31f44e3d8be727"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Wed Jul 28 15:43:02 2010 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Aug 05 12:56:33 2010 +1000"
      },
      "message": "memblock: Option for the architecture to put memblock into the .init section\n\nArch code can define ARCH_DISCARD_MEMBLOCK in asm/memblock.h,\nwhich in turns causes memblock code and data to go respectively\ninto the .init and .initdata sections. This will be used by the\nx86 architecture.\n\nIf ARCH_DISCARD_MEMBLOCK is defined, the debugfs files to inspect\nthe memblock arrays after boot are not created.\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "25818f0f288cd5333ba5a90ad6dde3def4c4ff58",
      "tree": "993384eff73bac874201d342c43a8e596dd1f485",
      "parents": [
        "37d8d4bf489e39eedc9537f8616fe87879b13cb0"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Jul 28 15:25:10 2010 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Aug 05 12:56:30 2010 +1000"
      },
      "message": "memblock: Make MEMBLOCK_ERROR be 0\n\nAnd ensure we don\u0027t hand out 0 as a valid allocation. We put the\nlow limit at PAGE_SIZE arbitrarily.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "37d8d4bf489e39eedc9537f8616fe87879b13cb0",
      "tree": "44987d75fa87aee2737bca59574e3b7459ad4797",
      "parents": [
        "ea9e4376bb545e400a325b3d76fecd02815303c0"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Wed Jul 28 15:20:58 2010 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Aug 05 12:56:29 2010 +1000"
      },
      "message": "memblock: Export MEMBLOCK_ERROR\n\nwill used by x86 memblock_x86_find_in_range_node and nobootmem replacement\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "ea9e4376bb545e400a325b3d76fecd02815303c0",
      "tree": "3e9838c3a20cdbd3a99df53fbd96e198d0f37861",
      "parents": [
        "5e63cf43af844ed30acc278b38b8c9bc51eba493"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Wed Jul 28 15:13:22 2010 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Aug 05 12:56:28 2010 +1000"
      },
      "message": "memblock: Improve debug output when resizing the reserve array\n\nPrint out the location info in addition to which array is being\nresized. Also use memblocK_dbg() to put that under control of\nthe memblock_debug flag.\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "5e63cf43af844ed30acc278b38b8c9bc51eba493",
      "tree": "02706d0ed24d45b94fdc7ac3a823eedd81a82d12",
      "parents": [
        "6d03b885f0926ab5b66e21307d505afcafa6dced"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Wed Jul 28 15:07:21 2010 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Aug 05 12:56:27 2010 +1000"
      },
      "message": "memblock: Expose some memblock bits for use by x86\n\nThis exposes memblock_debug and associated memblock_dbg() macro,\nalong with memblock_can_resize so that x86 can use these when\nported to use memblock\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "6d03b885f0926ab5b66e21307d505afcafa6dced",
      "tree": "bb2fb54ef0dae38b2abf176544839665bbe10ff3",
      "parents": [
        "918fe8d60331f679519ab8239a7232272126da9e"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Jul 06 15:39:19 2010 -0700"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Aug 05 12:56:26 2010 +1000"
      },
      "message": "memblock: Add debugfs files to dump the arrays content\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "918fe8d60331f679519ab8239a7232272126da9e",
      "tree": "e470c3ceba4a667b77465ac3a078ce3a3fdd1ab8",
      "parents": [
        "9d1e24928e6a0728d1c7c76818ccbd11b93e7ac9"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Jul 06 15:39:18 2010 -0700"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Aug 05 12:56:25 2010 +1000"
      },
      "message": "memblock: Make memblock_alloc_try_nid() fallback to MEMBLOCK_ALLOC_ANYWHERE\n\nmemblock_alloc_nid() used to fallback to allocating anywhere by using\nmemblock_alloc() as a fallback.\n\nHowever, some of my previous patches limit memblock_alloc() to the region\ncovered by MEMBLOCK_ALLOC_ACCESSIBLE which is not quite what we want\nfor memblock_alloc_try_nid().\n\nSo we fix it by explicitely using MEMBLOCK_ALLOC_ANYWHERE.\n\nNot that so far only sparc uses memblock_alloc_nid() and it hasn\u0027t been updated\nto clamp the accessible zone yet. Thus the temporary \"breakage\" should have\nno effect.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "9d1e24928e6a0728d1c7c76818ccbd11b93e7ac9",
      "tree": "f2c7173d47bf973d1a42ee249760b1c74d917009",
      "parents": [
        "c196f76fd5ece716ee3b7fa5dda3576961c0cecc"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Jul 06 15:39:17 2010 -0700"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Aug 05 12:56:24 2010 +1000"
      },
      "message": "memblock: Separate memblock_alloc_nid() and memblock_alloc_try_nid()\n\nThe former is now strict, it will fail if it cannot honor the allocation\nwithin the node, while the later implements the previous semantic which\nfalls back to allocating anywhere.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "c196f76fd5ece716ee3b7fa5dda3576961c0cecc",
      "tree": "7687dbae04327ed56bec60b21667eea66a9e52b4",
      "parents": [
        "fef501d49d31f997a3381b6c1efd5bca382b6b6f"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Jul 06 15:39:16 2010 -0700"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Aug 05 12:56:23 2010 +1000"
      },
      "message": "memblock: NUMA allocate can now use early_pfn_map\n\nWe now provide a default (weak) implementation of memblock_nid_range()\nwhich uses the early_pfn_map[] if CONFIG_ARCH_POPULATES_NODE_MAP\nis set. Sparc still needs to use its own method due to the way\nthe pages can be scattered between nodes.\n\nThis implementation is inefficient due to our main algorithm and\ncallback construct wanting to work on an ascending addresses bases\nwhile early_pfn_map[] would rather work with nid\u0027s (it\u0027s unsorted\nat that stage). But it should work and we can look into improving\nit subsequently, possibly using arch compile options to chose a\ndifferent algorithm alltogether.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "fef501d49d31f997a3381b6c1efd5bca382b6b6f",
      "tree": "d228dd686367dd3a49fc4152cef94d83b99dad29",
      "parents": [
        "d2cd563ba82c424083b78e0ce97d68bfb04d1242"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Mon Jul 12 15:00:34 2010 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Aug 05 12:56:22 2010 +1000"
      },
      "message": "memblock: Add \"start\" argument to memblock_find_base()\n\nTo constraint the search of a region between two boundaries,\nwhich will be used by the new NUMA aware allocator among others.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "d2cd563ba82c424083b78e0ce97d68bfb04d1242",
      "tree": "ff4ab6de8b6906a6c955aa51c4ee53868dfafc0a",
      "parents": [
        "142b45a72e221537c1bb1995497fef7cdc439e26"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Jul 06 15:39:14 2010 -0700"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Aug 05 12:56:21 2010 +1000"
      },
      "message": "memblock: Add arch function to control coalescing of memblock memory regions\n\nSome archs such as ARM want to avoid coalescing accross things such\nas the lowmem/highmem boundary or similar. This provides the option\nto control it via an arch callback for which a weak default is provided\nwhich always allows coalescing.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "142b45a72e221537c1bb1995497fef7cdc439e26",
      "tree": "478f95f05f923e63a845d6f8272647cf40765c4c",
      "parents": [
        "6ed311b282210d23d1a2cb2665aa899979993628"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Jul 06 15:39:13 2010 -0700"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Aug 05 12:56:20 2010 +1000"
      },
      "message": "memblock: Add array resizing support\n\nWhen one of the array gets full, we resize it. After much thinking and\na few iterations of that code, I went back to on-demand resizing using\nthe (new) internal memblock_find_base() function, which is pretty much what\nYinghai initially proposed, though there some differences in the details.\n\nTo work this relies on the default alloc limit being set sensibly by\nthe architecture.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "6ed311b282210d23d1a2cb2665aa899979993628",
      "tree": "a1e77961b0a067af26d0bbae52e64e258bbc3136",
      "parents": [
        "7f219c736f9439acb1c50d264fbee93c353773ca"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Mon Jul 12 14:36:48 2010 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Aug 05 12:56:19 2010 +1000"
      },
      "message": "memblock: Move functions around into a more sensible order\n\nSome shuffling is needed for doing array resize so we may as well\nput some sense into the ordering of the functions in the whole memblock.c\nfile. No code change. Added some comments.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "7f219c736f9439acb1c50d264fbee93c353773ca",
      "tree": "24e4aa4f3135f639954243fcd015b44786a9a11d",
      "parents": [
        "7590abe891c85fbc65dc906516d0bf89e070c19a"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Mon Jul 12 14:24:57 2010 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Aug 05 12:56:18 2010 +1000"
      },
      "message": "memblock: split memblock_find_base() out of __memblock_alloc_base()\n\nThis will be used by the array resize code and might prove useful\nto some arch code as well at which point it can be made non-static.\n\nAlso add comment as to why aligning size is important\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n---\n\nv2. Fix loss of size alignment\nv3. Fix result code\n"
    },
    {
      "commit": "7590abe891c85fbc65dc906516d0bf89e070c19a",
      "tree": "4c522633ca9fb4ba1527bc20d049199a30922b44",
      "parents": [
        "4d629f9a02e32f8fe035a11018472ea8ff9647eb"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Jul 06 15:39:10 2010 -0700"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Aug 05 12:56:17 2010 +1000"
      },
      "message": "memblock: Move memblock_init() to the bottom of the file\n\nIt\u0027s a real PITA to have to search for it in the middle\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "4d629f9a02e32f8fe035a11018472ea8ff9647eb",
      "tree": "87a30467b77330d947cd570c2e6851348c4ee91c",
      "parents": [
        "3a9c2c81eb2024c136cc534df534f93682d516d0"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Jul 06 15:39:09 2010 -0700"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Aug 05 12:56:16 2010 +1000"
      },
      "message": "memblock: Define MEMBLOCK_ERROR internally instead of using ~(phys_addr_t)0\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "3a9c2c81eb2024c136cc534df534f93682d516d0",
      "tree": "376f3e894d82b8944e43cbbff038e379136d57ff",
      "parents": [
        "449e8df39d3f94a69deae8341f157f6ef5999015"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Mon Jul 12 13:28:15 2010 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Aug 05 12:56:14 2010 +1000"
      },
      "message": "memblock: Make memblock_find_region() out of memblock_alloc_region()\n\nThis function will be used to locate a free area to put the new memblock\narrays when attempting to resize them. memblock_alloc_region() is gone,\nthe two callsites now call memblock_add_region().\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n---\nv2. Fix membase_alloc_nid_region() conversion\n"
    },
    {
      "commit": "449e8df39d3f94a69deae8341f157f6ef5999015",
      "tree": "75d797caf68e11d7577218e007bdf6f79326c134",
      "parents": [
        "bf23c51f1f49d3960f3cd8e3d2e7f943d9c41042"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Jul 06 15:39:07 2010 -0700"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Aug 05 12:56:13 2010 +1000"
      },
      "message": "memblock: Add debug markers at the end of the array\n\nSince we allocate one more than needed, why not do a bit of sanity checking\nhere to ensure we don\u0027t walk past the end of the array ?\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "bf23c51f1f49d3960f3cd8e3d2e7f943d9c41042",
      "tree": "6150486aaeb3bc8601fdf61ebfe5b441af1e3fb7",
      "parents": [
        "4734b594c6ca1be796d30c82d93fdf5160f45124"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Jul 06 15:39:06 2010 -0700"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Aug 05 12:56:12 2010 +1000"
      },
      "message": "memblock: Move memblock arrays to static storage in memblock.c and make their size a variable\n\nThis is in preparation for having resizable arrays.\n\nNote that we still allocate one more than needed, this is unchanged from\nthe previous implementation.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "4734b594c6ca1be796d30c82d93fdf5160f45124",
      "tree": "72443c76c7d4c0cade456cc21997f383417747de",
      "parents": [
        "9d3c30f5a17ec35894eadb7171f724643dce19c3"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Jul 28 14:31:29 2010 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Aug 05 12:56:11 2010 +1000"
      },
      "message": "memblock: Remove memblock_type.size and add memblock.memory_size instead\n\nRight now, both the \"memory\" and \"reserved\" memblock_type structures have\na \"size\" member. It represents the calculated memory size in the former\ncase and is unused in the latter.\n\nThis moves it out to the main memblock structure instead\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "2898cc4cdf208f15246b7a1c6951d2b126a70fd6",
      "tree": "9ab5e803751ee7b8288248796339a0f17617ca29",
      "parents": [
        "cd3db0c4ca3d237e7ad20f7107216e575705d2b0"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Aug 04 13:34:42 2010 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Aug 05 12:56:09 2010 +1000"
      },
      "message": "memblock: Change u64 to phys_addr_t\n\nLet\u0027s not waste space and cycles on archs that don\u0027t support \u003e32-bit\nphysical address space.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "cd3db0c4ca3d237e7ad20f7107216e575705d2b0",
      "tree": "03be7c14bd68a568a6e2f6df2db9fbbdf11c1483",
      "parents": [
        "e63075a3c9377536d085bc013cd3fe6323162449"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Jul 06 15:39:02 2010 -0700"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Aug 05 12:56:08 2010 +1000"
      },
      "message": "memblock: Remove rmo_size, burry it in arch/powerpc where it belongs\n\nThe RMA (RMO is a misnomer) is a concept specific to ppc64 (in fact\nserver ppc64 though I hijack it on embedded ppc64 for similar purposes)\nand represents the area of memory that can be accessed in real mode\n(aka with MMU off), or on embedded, from the exception vectors (which\nis bolted in the TLB) which pretty much boils down to the same thing.\n\nWe take that out of the generic MEMBLOCK data structure and move it into\narch/powerpc where it belongs, renaming it to \"RMA\" while at it.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "e63075a3c9377536d085bc013cd3fe6323162449",
      "tree": "28fde124dde6df867947882fc686d228502846df",
      "parents": [
        "27f574c223d2c09610058b3ec7a29582d63a3e06"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Jul 06 15:39:01 2010 -0700"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Aug 05 12:56:07 2010 +1000"
      },
      "message": "memblock: Introduce default allocation limit and use it to replace explicit ones\n\nThis introduce memblock.current_limit which is used to limit allocations\nfrom memblock_alloc() or memblock_alloc_base(..., MEMBLOCK_ALLOC_ACCESSIBLE).\n\nThe old MEMBLOCK_ALLOC_ANYWHERE changes value from 0 to ~(u64)0 and can still\nbe used with memblock_alloc_base() to allocate really anywhere.\n\nIt is -no-longer- cropped to MEMBLOCK_REAL_LIMIT which disappears.\n\nNote to archs: I\u0027m leaving the default limit to MEMBLOCK_ALLOC_ANYWHERE. I\nstrongly recommend that you ensure that you set an appropriate limit\nduring boot in order to guarantee that an memblock_alloc() at any time\nresults in something that is accessible with a simple __va().\n\nThe reason is that a subsequent patch will introduce the ability for\nthe array to resize itself by reallocating itself. The MEMBLOCK core will\nhonor the current limit when performing those allocations.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "27f574c223d2c09610058b3ec7a29582d63a3e06",
      "tree": "2689c93200504ff0d8734be50a8ca329607d8807",
      "parents": [
        "c3f72b5706716ada7923def513486ab7bb3a5301"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Jul 06 15:39:00 2010 -0700"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Aug 05 12:56:06 2010 +1000"
      },
      "message": "memblock: Expose MEMBLOCK_ALLOC_ANYWHERE\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "c3f72b5706716ada7923def513486ab7bb3a5301",
      "tree": "24a7a4939164f2183bdc68212232d0a3e94274d3",
      "parents": [
        "35a1f0bd07015dde66501b47cfb6ddc72ebe7346"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Jul 06 15:38:59 2010 -0700"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Aug 05 12:56:05 2010 +1000"
      },
      "message": "memblock: Factor the lowest level alloc function\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "35a1f0bd07015dde66501b47cfb6ddc72ebe7346",
      "tree": "9bfa42fd86d8fc6a6971a3b6ffcd703cc056f944",
      "parents": [
        "b693fffb189fbfe7e1e8317ce5838808be8666a0"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Jul 06 15:38:58 2010 -0700"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Aug 05 12:56:04 2010 +1000"
      },
      "message": "memblock: Remove nid_range argument, arch provides memblock_nid_range() instead\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "b693fffb189fbfe7e1e8317ce5838808be8666a0",
      "tree": "432d1caa8c4a4ba9f0c76c1502af0a232bd8f62b",
      "parents": [
        "1e2b904026e9debf95f500b8980a00c43ac0f31c"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Aug 04 13:52:55 2010 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Aug 05 12:56:03 2010 +1000"
      },
      "message": "memblock: Remove memblock_find()\n\nNobody uses it anymore. It\u0027s semantics were ... weird\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "72d4b0b4e0e7fa858767e03972771a9f7c02b689",
      "tree": "5cdf39edb6edbaa7f75da27ad1d9ce7864bb9448",
      "parents": [
        "411a25a80da328f5ae6b6c037872ffe867fcc130"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Aug 04 14:38:47 2010 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Aug 04 14:38:47 2010 +1000"
      },
      "message": "memblock: Implement memblock_is_memory and memblock_is_region_memory\n\nTo make it fast, we steal ARM\u0027s binary search for memblock_is_memory()\nand we use that to also the replace existing implementation of\nmemblock_is_reserved().\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "e3239ff92a17976ac5d26fa0fe40ef3a9daf2523",
      "tree": "da3c493196811ccae1b79c3c94234f5d481c8221",
      "parents": [
        "f1c2c19c498e27de48bf0dc4221e6e31b1823169"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Aug 04 14:06:41 2010 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Aug 04 14:21:49 2010 +1000"
      },
      "message": "memblock: Rename memblock_region to memblock_type and memblock_property to memblock_region\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "f1c2c19c498e27de48bf0dc4221e6e31b1823169",
      "tree": "61c1b8b9ab32cd76128e33186148597a8b8b39b1",
      "parents": [
        "3a09b1be53d23df780a0cd0e4087a05e2ca4a00c"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Aug 04 14:17:17 2010 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Aug 04 14:17:17 2010 +1000"
      },
      "message": "memblock: Fix memblock_is_region_reserved() to return a boolean\n\nAll callers expect a boolean result which is true if the region\noverlaps a reserved region. However, the implementation actually\nreturns -1 if there is no overlap, and a region index (0 based)\nif there is.\n\nMake it behave as callers (and common sense) expect.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "95f72d1ed41a66f1c1c29c24d479de81a0bea36f",
      "tree": "bd92b3804ff0bea083d69af0ede52f99ab34c0af",
      "parents": [
        "1c5474a65bf15a4cb162dfff86d6d0b5a08a740c"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Mon Jul 12 14:36:09 2010 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Jul 14 17:14:00 2010 +1000"
      },
      "message": "lmb: rename to memblock\n\nvia following scripts\n\n      FILES\u003d$(find * -type f | grep -vE \u0027oprofile|[^K]config\u0027)\n\n      sed -i \\\n        -e \u0027s/lmb/memblock/g\u0027 \\\n        -e \u0027s/LMB/MEMBLOCK/g\u0027 \\\n        $FILES\n\n      for N in $(find . -name lmb.[ch]); do\n        M\u003d$(echo $N | sed \u0027s/lmb/memblock/g\u0027)\n        mv $N $M\n      done\n\nand remove some wrong change like lmbench and dlmb etc.\n\nalso move memblock.c from lib/ to mm/\n\nSuggested-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nAcked-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    }
  ]
}
