)]}'
{
  "commit": "8f860591ffb29738cf5539b6fbf27f50dcdeb380",
  "tree": "4265e45c4a79d86a16cd5175a836e8c531be8117",
  "parents": [
    "aed75ff3caafce404d9be7f0c088716375be5279"
  ],
  "author": {
    "name": "Zhang, Yanmin",
    "email": "yanmin_zhang@linux.intel.com",
    "time": "Wed Mar 22 00:08:50 2006 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@g5.osdl.org",
    "time": "Wed Mar 22 07:54:03 2006 -0800"
  },
  "message": "[PATCH] Enable mprotect on huge pages\n\n2.6.16-rc3 uses hugetlb on-demand paging, but it doesn_t support hugetlb\nmprotect.\n\nFrom: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\n\n  Remove a test from the mprotect() path which checks that the mprotect()ed\n  range on a hugepage VMA is hugepage aligned (yes, really, the sense of\n  is_aligned_hugepage_range() is the opposite of what you\u0027d guess :-/).\n\n  In fact, we don\u0027t need this test.  If the given addresses match the\n  beginning/end of a hugepage VMA they must already be suitably aligned.  If\n  they don\u0027t, then mprotect_fixup() will attempt to split the VMA.  The very\n  first test in split_vma() will check for a badly aligned address on a\n  hugepage VMA and return -EINVAL if necessary.\n\nFrom: \"Chen, Kenneth W\" \u003ckenneth.w.chen@intel.com\u003e\n\n  On i386 and x86-64, pte flag _PAGE_PSE collides with _PAGE_PROTNONE.  The\n  identify of hugetlb pte is lost when changing page protection via mprotect.\n  A page fault occurs later will trigger a bug check in huge_pte_alloc().\n\n  The fix is to always make new pte a hugetlb pte and also to clean up\n  legacy code where _PAGE_PRESENT is forced on in the pre-faulting day.\n\nSigned-off-by: Zhang Yanmin \u003cyanmin.zhang@intel.com\u003e\nCc: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nSigned-off-by: Ken Chen \u003ckenneth.w.chen@intel.com\u003e\nSigned-off-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "088a945bf26bdb5ef02f8b5a0397e32ee3955214",
      "old_mode": 33188,
      "old_path": "include/asm-i386/pgtable.h",
      "new_id": "ee056c41a9fb725e52137e151a525274512413ca",
      "new_mode": 33188,
      "new_path": "include/asm-i386/pgtable.h"
    },
    {
      "type": "modify",
      "old_id": "e2560c58384b04bfc8016b1034a65ffd806f657f",
      "old_mode": 33188,
      "old_path": "include/asm-ia64/pgtable.h",
      "new_id": "5890972a69bf00d88cb3e8aec04a72ace578be3b",
      "new_mode": 33188,
      "new_path": "include/asm-ia64/pgtable.h"
    },
    {
      "type": "modify",
      "old_id": "715fd94cf5771b2ceedcbc26a972acee7dad7269",
      "old_mode": 33188,
      "old_path": "include/asm-x86_64/pgtable.h",
      "new_id": "a617d364d08d8cf422a3d605231623e18f3db7c5",
      "new_mode": 33188,
      "new_path": "include/asm-x86_64/pgtable.h"
    },
    {
      "type": "modify",
      "old_id": "68d82ad6b17c29662d40e396fb618d737c63d4bc",
      "old_mode": 33188,
      "old_path": "include/linux/hugetlb.h",
      "new_id": "fa83836b63d2098e0404a69c74d30d15f8402e6c",
      "new_mode": 33188,
      "new_path": "include/linux/hugetlb.h"
    },
    {
      "type": "modify",
      "old_id": "20117a4b8ab6613bc34387c605c67929f4672462",
      "old_mode": 33188,
      "old_path": "mm/hugetlb.c",
      "new_id": "783098f6cf8e46ecb65527ad2f093878311a16ad",
      "new_mode": 33188,
      "new_path": "mm/hugetlb.c"
    },
    {
      "type": "modify",
      "old_id": "653b8571c1ed10e86c94ae727147b77ce0e09788",
      "old_mode": 33188,
      "old_path": "mm/mprotect.c",
      "new_id": "4c14d4289b61a69406140bfa9d0e1cf5919d99c7",
      "new_mode": 33188,
      "new_path": "mm/mprotect.c"
    }
  ]
}
