)]}'
{
  "log": [
    {
      "commit": "5a7b46b369419493bab4de67b1526e9f76b22a7f",
      "tree": "c6c25e52dfd063db53db93d756da77ab67550ec6",
      "parents": [
        "52824b6b5fa0533e2b2adc9df396d0e9ff6fb02a"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Apr 20 06:41:39 2006 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Apr 19 16:27:18 2006 -0700"
      },
      "message": "[PATCH] Add more prevent_tail_call()\n\nThose also break userland regs like following.\n\n   00000000 \u003csys_chown16\u003e:\n      0:\t0f b7 44 24 0c       \tmovzwl 0xc(%esp),%eax\n      5:\t83 ca ff             \tor     $0xffffffff,%edx\n      8:\t0f b7 4c 24 08       \tmovzwl 0x8(%esp),%ecx\n      d:\t66 83 f8 ff          \tcmp    $0xffffffff,%ax\n     11:\t0f 44 c2             \tcmove  %edx,%eax\n     14:\t66 83 f9 ff          \tcmp    $0xffffffff,%cx\n     18:\t0f 45 d1             \tcmovne %ecx,%edx\n     1b:\t89 44 24 0c          \tmov    %eax,0xc(%esp)\n     1f:\t89 54 24 08          \tmov    %edx,0x8(%esp)\n     23:\te9 fc ff ff ff       \tjmp    24 \u003csys_chown16+0x24\u003e\n\nwhere the tailcall at the end overwrites the incoming stack-frame.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\n[ I would _really_ like to have a way to tell gcc about calling\n  conventions. The \"prevent_tail_call()\" macro is pretty ugly ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c59ede7b78db329949d9cdcd7064e22d357560ef",
      "tree": "f9dc9d464fdad5bfd464d983e77c1af031389dda",
      "parents": [
        "e16885c5ad624a6efe1b1bf764e075d75f65a788"
      ],
      "author": {
        "name": "Randy.Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Wed Jan 11 12:17:46 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 11 18:42:13 2006 -0800"
      },
      "message": "[PATCH] move capable() to capability.h\n\n- Move capable() from sched.h to capability.h;\n\n- Use \u003clinux/capability.h\u003e where capable() is used\n\t(in include/, block/, ipc/, kernel/, a few drivers/,\n\tmm/, security/, \u0026 sound/;\n\tmany more drivers/ to go)\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
