)]}'
{
  "commit": "4829b906cc063cb7cd1b7f34fa05de6db75ec8bb",
  "tree": "6ff55df09bb788ae2c66a5f9570bcacf70d6e3bb",
  "parents": [
    "c6ea21e35bf3691cad59647c771e6606067f627d"
  ],
  "author": {
    "name": "Hugh Dickins",
    "email": "hughd@google.com",
    "time": "Sat Oct 02 17:46:06 2010 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Mon Oct 04 11:09:53 2010 -0700"
  },
  "message": "ksm: fix page_address_in_vma anon_vma oops\n\n2.6.36-rc1 commit 21d0d443cdc1658a8c1484fdcece4803f0f96d0e \"rmap:\nresurrect page_address_in_vma anon_vma check\" was right to resurrect\nthat check; but now that it\u0027s comparing anon_vma-\u003eroots instead of\njust anon_vmas, there\u0027s a danger of oopsing on a NULL anon_vma.\n\nIn most cases no NULL anon_vma ever gets here; but it turns out that\noccasionally KSM, when enabled on a forked or forking process, will\nitself call page_address_in_vma() on a \"half-KSM\" page left over from\nan earlier failed attempt to merge - whose page_anon_vma() is NULL.\n\nIt\u0027s my bug that those should be getting here at all: I thought they\nwere already dealt with, this oops proves me wrong, I\u0027ll fix it in\nthe next release - such pages are effectively pinned until their\nprocess exits, since rmap cannot find their ptes (though swapoff can).\n\nFor now just work around it by making page_address_in_vma() safe (and\nadd a comment on why that check is wanted anyway).  A similar check\nin __page_check_anon_rmap() is safe because do_page_add_anon_rmap()\nalready excluded KSM pages.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9d2ba01bd4f91d3db707524cc9bafd5e81f623b4",
      "old_mode": 33188,
      "old_path": "mm/rmap.c",
      "new_id": "92e6757f196ed4e3b3598c1f8b7214616a4cbe39",
      "new_mode": 33188,
      "new_path": "mm/rmap.c"
    }
  ]
}
