)]}'
{
  "commit": "5c0e3066474b57c56ff0d88ca31d95bd14232fee",
  "tree": "90c963c62891db4a9039e84e615c01408b09c845",
  "parents": [
    "46dafbca2bba811665b01d8cedf911204820623c"
  ],
  "author": {
    "name": "Mel Gorman",
    "email": "mel@csn.ul.ie",
    "time": "Tue Oct 16 01:25:56 2007 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@woody.linux-foundation.org",
    "time": "Tue Oct 16 09:43:00 2007 -0700"
  },
  "message": "Fix corruption of memmap on IA64 SPARSEMEM when mem_section is not a power of 2\n\nThere are problems in the use of SPARSEMEM and pageblock flags that causes\nproblems on ia64.\n\nThe first part of the problem is that units are incorrect in\nSECTION_BLOCKFLAGS_BITS computation.  This results in a map_section\u0027s\nsection_mem_map being treated as part of a bitmap which isn\u0027t good.  This\nwas evident with an invalid virtual address when mem_init attempted to free\nbootmem pages while relinquishing control from the bootmem allocator.\n\nThe second part of the problem occurs because the pageblock flags bitmap is\nbe located with the mem_section.  The SECTIONS_PER_ROOT computation using\nsizeof (mem_section) may not be a power of 2 depending on the size of the\nbitmap.  This renders masks and other such things not power of 2 base.\nThis issue was seen with SPARSEMEM_EXTREME on ia64.  This patch moves the\nbitmap outside of mem_section and uses a pointer instead in the\nmem_section.  The bitmaps are allocated when the section is being\ninitialised.\n\nNote that sparse_early_usemap_alloc() does not use alloc_remap() like\nsparse_early_mem_map_alloc().  The allocation required for the bitmap on\nx86, the only architecture that uses alloc_remap is typically smaller than\na cache line.  alloc_remap() pads out allocations to the cache size which\nwould be a needless waste.\n\nCredit to Bob Picco for identifying the original problem and effecting a\nfix for the SECTION_BLOCKFLAGS_BITS calculation.  Credit to Andy Whitcroft\nfor devising the best way of allocating the bitmaps only when required for\nthe section.\n\n[wli@holomorphy.com: warning fix]\nSigned-off-by: Bob Picco \u003cbob.picco@hp.com\u003e\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nSigned-off-by: William Irwin \u003cbill.irwin@oracle.com\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": "a8140a9a65e8231df40bb8707ee73b972981921b",
      "old_mode": 33188,
      "old_path": "include/linux/mmzone.h",
      "new_id": "9a5d5590bd393e0856d5a046d838246935b43383",
      "new_mode": 33188,
      "new_path": "include/linux/mmzone.h"
    },
    {
      "type": "modify",
      "old_id": "52843a76feede7b7f46b15874b7ff68dc32ca9a2",
      "old_mode": 33188,
      "old_path": "mm/sparse.c",
      "new_id": "1f4dbb867b8af7a04040cb3c8c4195d2bab7e4ed",
      "new_mode": 33188,
      "new_path": "mm/sparse.c"
    }
  ]
}
