)]}'
{
  "commit": "d6dd61c831226f9cd7750885da04d360d6455101",
  "tree": "30f84a429821d207f7de5dd6225d3d9515042c0a",
  "parents": [
    "5311ab62cdc7788784971ed816ce85e926f3e994"
  ],
  "author": {
    "name": "Jeremy Fitzhardinge",
    "email": "jeremy@goop.org",
    "time": "Wed May 02 19:27:14 2007 +0200"
  },
  "committer": {
    "name": "Andi Kleen",
    "email": "andi@basil.nowhere.org",
    "time": "Wed May 02 19:27:14 2007 +0200"
  },
  "message": "[PATCH] x86: PARAVIRT: add hooks to intercept mm creation and destruction\n\nAdd hooks to allow a paravirt implementation to track the lifetime of\nan mm.  Paravirtualization requires three hooks, but only two are\nneeded in common code.  They are:\n\narch_dup_mmap, which is called when a new mmap is created at fork\n\narch_exit_mmap, which is called when the last process reference to an\n  mm is dropped, which typically happens on exit and exec.\n\nThe third hook is activate_mm, which is called from the arch-specific\nactivate_mm() macro/function, and so doesn\u0027t need stub versions for\nother architectures.  It\u0027s called when an mm is first used.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: linux-arch@vger.kernel.org\nCc: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2040a831d5b3b23a2c0c81fbcc3b963356e7787e",
      "old_mode": 33188,
      "old_path": "arch/i386/kernel/paravirt.c",
      "new_id": "54cc14d997404652add938ce81299583ec500b8d",
      "new_mode": 33188,
      "new_path": "arch/i386/kernel/paravirt.c"
    },
    {
      "type": "modify",
      "old_id": "fe249e9d3360041a31f4399358f9d2c13253b9d5",
      "old_mode": 33188,
      "old_path": "include/asm-alpha/mmu_context.h",
      "new_id": "0bd7bd2ccb9022e91281668055e5c9e7b91785b2",
      "new_mode": 33188,
      "new_path": "include/asm-alpha/mmu_context.h"
    },
    {
      "type": "modify",
      "old_id": "d1a65b1edcaab236f0a65706380f60e85d26fc04",
      "old_mode": 33188,
      "old_path": "include/asm-arm/mmu_context.h",
      "new_id": "f8755c818b5462549e39ed8bd0102ae3b02ed0a0",
      "new_mode": 33188,
      "new_path": "include/asm-arm/mmu_context.h"
    },
    {
      "type": "modify",
      "old_id": "1a929bfe5c3ace600c9a6071e661157aa30b1324",
      "old_mode": 33188,
      "old_path": "include/asm-arm26/mmu_context.h",
      "new_id": "16c821f81b8ddb664549640458e102d4b66f39bc",
      "new_mode": 33188,
      "new_path": "include/asm-arm26/mmu_context.h"
    },
    {
      "type": "modify",
      "old_id": "31add1ae8089c6776c9651c8f54d968bd37a2df3",
      "old_mode": 33188,
      "old_path": "include/asm-avr32/mmu_context.h",
      "new_id": "c37c391faef6b0f67d50cbe1bfed504dbdc9d36f",
      "new_mode": 33188,
      "new_path": "include/asm-avr32/mmu_context.h"
    },
    {
      "type": "modify",
      "old_id": "e6e659dc757be7e0d3aa6e025c61b1f7913a352e",
      "old_mode": 33188,
      "old_path": "include/asm-cris/mmu_context.h",
      "new_id": "72ba08dcfd18c1336d19d2ef66893bd7658a8a4b",
      "new_mode": 33188,
      "new_path": "include/asm-cris/mmu_context.h"
    },
    {
      "type": "modify",
      "old_id": "72edcaaccd5de30d7b126520d218f360ef3696fb",
      "old_mode": 33188,
      "old_path": "include/asm-frv/mmu_context.h",
      "new_id": "c7daa395156a1b30a8a6b58269f94cca3dd3462d",
      "new_mode": 33188,
      "new_path": "include/asm-frv/mmu_context.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "67dea8123683d291a3b9b61060fdd4c08b02df23",
      "new_mode": 33188,
      "new_path": "include/asm-generic/mm_hooks.h"
    },
    {
      "type": "modify",
      "old_id": "5c165f7bee0edb4123bc015d4092ac71f4cf4071",
      "old_mode": 33188,
      "old_path": "include/asm-h8300/mmu_context.h",
      "new_id": "f44b730da54d3c229e3007556282a11a655269fa",
      "new_mode": 33188,
      "new_path": "include/asm-h8300/mmu_context.h"
    },
    {
      "type": "modify",
      "old_id": "e6aa30f8de5b6d47666894711d39492b2774eaed",
      "old_mode": 33188,
      "old_path": "include/asm-i386/mmu_context.h",
      "new_id": "8198d1cca1f31264dc6b0ee4da90cdd0c13cd323",
      "new_mode": 33188,
      "new_path": "include/asm-i386/mmu_context.h"
    },
    {
      "type": "modify",
      "old_id": "f93599dc7756d1b1237ccf35cd31f1339267acf2",
      "old_mode": 33188,
      "old_path": "include/asm-i386/paravirt.h",
      "new_id": "61c03f1e0c29b53065460564f05ecb961a2fa66e",
      "new_mode": 33188,
      "new_path": "include/asm-i386/paravirt.h"
    },
    {
      "type": "modify",
      "old_id": "b5c65081a3aab49bc051b7209c03d0ca54122160",
      "old_mode": 33188,
      "old_path": "include/asm-ia64/mmu_context.h",
      "new_id": "cef2400983fafe3fd1961895a4d355f11a14d34b",
      "new_mode": 33188,
      "new_path": "include/asm-ia64/mmu_context.h"
    },
    {
      "type": "modify",
      "old_id": "1f40d4a0acf1a4acd6d0a3764f5b9f09b9439a78",
      "old_mode": 33188,
      "old_path": "include/asm-m32r/mmu_context.h",
      "new_id": "91909e5dd9d0a300b5a32ddb4e930c7bbae21066",
      "new_mode": 33188,
      "new_path": "include/asm-m32r/mmu_context.h"
    },
    {
      "type": "modify",
      "old_id": "231d11bd8e320921d6d869eef47edba1c4d52118",
      "old_mode": 33188,
      "old_path": "include/asm-m68k/mmu_context.h",
      "new_id": "894dacbcee145df5c79b147393c7282a9edfef06",
      "new_mode": 33188,
      "new_path": "include/asm-m68k/mmu_context.h"
    },
    {
      "type": "modify",
      "old_id": "6c077d3a2572c32bb6eaab0319fe5e24ceedeaa5",
      "old_mode": 33188,
      "old_path": "include/asm-m68knommu/mmu_context.h",
      "new_id": "9ccee4278c977dd924aead4d6bead5e58b236d99",
      "new_mode": 33188,
      "new_path": "include/asm-m68knommu/mmu_context.h"
    },
    {
      "type": "modify",
      "old_id": "fe065d6070ca3885b4f4f3f9467a87de01fed0e8",
      "old_mode": 33188,
      "old_path": "include/asm-mips/mmu_context.h",
      "new_id": "65024ffd78799ada089bbbf3ca9de0993022c123",
      "new_mode": 33188,
      "new_path": "include/asm-mips/mmu_context.h"
    },
    {
      "type": "modify",
      "old_id": "9c05836239a2c97b1ccf52ed73059b36d598e3f6",
      "old_mode": 33188,
      "old_path": "include/asm-parisc/mmu_context.h",
      "new_id": "bad690298f0c01fe89a740d2829b8b33f5316f54",
      "new_mode": 33188,
      "new_path": "include/asm-parisc/mmu_context.h"
    },
    {
      "type": "modify",
      "old_id": "083ac917bd293b4be1640d50efdad07272260117",
      "old_mode": 33188,
      "old_path": "include/asm-powerpc/mmu_context.h",
      "new_id": "c0d7795e3d257d8eb3172b3d506a9d904ad6eee0",
      "new_mode": 33188,
      "new_path": "include/asm-powerpc/mmu_context.h"
    },
    {
      "type": "modify",
      "old_id": "2bc8589cc45130b9f223f0fb172dbb1b5a12894c",
      "old_mode": 33188,
      "old_path": "include/asm-ppc/mmu_context.h",
      "new_id": "a6441a063e5d7c20d1553e79aa898814052fe1d9",
      "new_mode": 33188,
      "new_path": "include/asm-ppc/mmu_context.h"
    },
    {
      "type": "modify",
      "old_id": "1d21da220d49b8779ad3e916d67c54dfc1f73547",
      "old_mode": 33188,
      "old_path": "include/asm-s390/mmu_context.h",
      "new_id": "501cb9b0631460b0e2694d43ce4d9c32c6518b0a",
      "new_mode": 33188,
      "new_path": "include/asm-s390/mmu_context.h"
    },
    {
      "type": "modify",
      "old_id": "342024425b7df7a484e32fadb8796f089dd111c9",
      "old_mode": 33188,
      "old_path": "include/asm-sh/mmu_context.h",
      "new_id": "01acaaae975182ed225aee6c2fa7f9e62952cf0c",
      "new_mode": 33188,
      "new_path": "include/asm-sh/mmu_context.h"
    },
    {
      "type": "modify",
      "old_id": "8c860dab2d0e6554b9b21329dc26c79f79da0249",
      "old_mode": 33188,
      "old_path": "include/asm-sh64/mmu_context.h",
      "new_id": "507bf72bb8e10b13f8bbf0dd82069fa297124f59",
      "new_mode": 33188,
      "new_path": "include/asm-sh64/mmu_context.h"
    },
    {
      "type": "modify",
      "old_id": "ed1e01d04d21d4bf62e63fb035543ddb407564f0",
      "old_mode": 33188,
      "old_path": "include/asm-sparc/mmu_context.h",
      "new_id": "671a997b9e6961d4f543347b46266773c5abf622",
      "new_mode": 33188,
      "new_path": "include/asm-sparc/mmu_context.h"
    },
    {
      "type": "modify",
      "old_id": "2337eb48771908ca86f94a1a5d4cba3d42c0e43d",
      "old_mode": 33188,
      "old_path": "include/asm-sparc64/mmu_context.h",
      "new_id": "8d129032013e9b3e8fcf35a040f5438dab02959a",
      "new_mode": 33188,
      "new_path": "include/asm-sparc64/mmu_context.h"
    },
    {
      "type": "modify",
      "old_id": "f709c784bf1296e21de0a33175e403e86a974df6",
      "old_mode": 33188,
      "old_path": "include/asm-um/mmu_context.h",
      "new_id": "9aa4b44e8cc1658653a0eb2f0f8383752f88313c",
      "new_mode": 33188,
      "new_path": "include/asm-um/mmu_context.h"
    },
    {
      "type": "modify",
      "old_id": "f521c8050d3cdc3ea2c325656d4478c299402c6f",
      "old_mode": 33188,
      "old_path": "include/asm-v850/mmu_context.h",
      "new_id": "01daacd5474efcc821b57a04ca3b9239e43be444",
      "new_mode": 33188,
      "new_path": "include/asm-v850/mmu_context.h"
    },
    {
      "type": "modify",
      "old_id": "af03b9f852d650eec292f0b8eced273a23bcaca8",
      "old_mode": 33188,
      "old_path": "include/asm-x86_64/mmu_context.h",
      "new_id": "0cce83a78378ec20a12a348c8b907d4b2386a6cf",
      "new_mode": 33188,
      "new_path": "include/asm-x86_64/mmu_context.h"
    },
    {
      "type": "modify",
      "old_id": "f14851f086c39db5cb6fe0e7892a7278f050772f",
      "old_mode": 33188,
      "old_path": "include/asm-xtensa/mmu_context.h",
      "new_id": "92f948392ebccede88123965b1d71bd91c1a48ca",
      "new_mode": 33188,
      "new_path": "include/asm-xtensa/mmu_context.h"
    },
    {
      "type": "modify",
      "old_id": "6af959c034d892a360f4196ed3b981a51890f92a",
      "old_mode": 33188,
      "old_path": "kernel/fork.c",
      "new_id": "ffccefb28b6a3d1680ba32e38130fd1b96b0007c",
      "new_mode": 33188,
      "new_path": "kernel/fork.c"
    },
    {
      "type": "modify",
      "old_id": "84f997da78d70e607578afac5a87b64362b12558",
      "old_mode": 33188,
      "old_path": "mm/mmap.c",
      "new_id": "88da687bde89fdc51b367c1728d330b3321568ab",
      "new_mode": 33188,
      "new_path": "mm/mmap.c"
    }
  ]
}
