)]}'
{
  "commit": "b7f50cfa3630b6e079929ffccfd442d65064ee1f",
  "tree": "b6f28ed350055bb864cbe317284eb56fca29cfc3",
  "parents": [
    "a75d377686037982cbec320bb770b19fe7be6a5d"
  ],
  "author": {
    "name": "Mel Gorman",
    "email": "mel@csn.ul.ie",
    "time": "Tue Oct 26 14:21:11 2010 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Tue Oct 26 16:52:03 2010 -0700"
  },
  "message": "mm, page-allocator: do not check the state of a non-existant buddy during free\n\nThere is a bug in commit 6dda9d55 (\"page allocator: reduce fragmentation\nin buddy allocator by adding buddies that are merging to the tail of the\nfree lists\") that means a buddy at order MAX_ORDER is checked for merging.\n A page of this order never exists so at times, an effectively random\npiece of memory is being checked.\n\nAlan Curry has reported that this is causing memory corruption in\nuserspace data on a PPC32 platform (http://lkml.org/lkml/2010/10/9/32).\nIt is not clear why this is happening.  It could be a cache coherency\nproblem where pages mapped in both user and kernel space are getting\ndifferent cache lines due to the bad read from kernel space\n(http://lkml.org/lkml/2010/10/13/179).  It could also be that there are\nsome special registers being io-remapped at the end of the memmap array\nand that a read has special meaning on them.  Compiler bugs have been\nruled out because the assembly before and after the patch looks relatively\nharmless.\n\nThis patch fixes the problem by ensuring we are not reading a possibly\ninvalid location of memory.  It\u0027s not clear why the read causes corruption\nbut one way or the other it is a buggy read.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Corrado Zoccolo \u003cczoccolo@gmail.com\u003e\nReported-by: Alan Curry \u003cpacman@kosh.dhis.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: \u003cstable@kernel.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": "2a362c52fdf482144eac24111059f56b5147bd42",
      "old_mode": 33188,
      "old_path": "mm/page_alloc.c",
      "new_id": "5faf876cfc3a1f58b7a392f89cf008b263148371",
      "new_mode": 33188,
      "new_path": "mm/page_alloc.c"
    }
  ]
}
