)]}'
{
  "commit": "07b4e2bc9c35ea88cbd36d806fcd5e3bcbf022be",
  "tree": "d9473236dace39c0117cb9107a5d72c07b556d7c",
  "parents": [
    "688bb4158f64f3af0fe1d13e7642f8c4c402453e"
  ],
  "author": {
    "name": "Yinghai Lu",
    "email": "yinghai@kernel.org",
    "time": "Wed Jul 11 14:02:51 2012 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Wed Jul 11 16:04:49 2012 -0700"
  },
  "message": "mm: sparse: fix section usemap placement calculation\n\nCommit 238305bb4d41 (\"mm: remove sparsemem allocation details from the\nbootmem allocator\") introduced a bug in the allocation goal calculation\nthat put section usemaps not in the same section as the node\ndescriptors, creating unnecessary hotplug dependencies between them:\n\n  node 0 must be removed before remove section 16399\n  node 1 must be removed before remove section 16399\n  node 2 must be removed before remove section 16399\n  node 3 must be removed before remove section 16399\n  node 4 must be removed before remove section 16399\n  node 5 must be removed before remove section 16399\n  node 6 must be removed before remove section 16399\n\nThe reason is that it applies PAGE_SECTION_MASK to the physical address\nof the node descriptor when finding a suitable place to put the usemap,\nwhen this mask is actually intended to be used with PFNs.  Because the\nPFN mask is wider, the target address will point beyond the wanted\nsection holding the node descriptor and the node must be offlined before\nthe section holding the usemap can go.\n\nFix this by extending the mask to address width before use.\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: 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",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6a4bf9160e855ae1e2d61fefb4922918f710bb24",
      "old_mode": 33188,
      "old_path": "mm/sparse.c",
      "new_id": "e861397016a9e89ad49732c1b8174e455e19ca0b",
      "new_mode": 33188,
      "new_path": "mm/sparse.c"
    }
  ]
}
