)]}'
{
  "commit": "47575997be9e0cae44a4fcaecbd172fec3746c96",
  "tree": "4f5e143e0be83f4102e34da512d3727bcaa22be7",
  "parents": [
    "0b2effd744471adea1cc82966df8a54fd6afa200"
  ],
  "author": {
    "name": "Jincheng Miao",
    "email": "jmiao@redhat.com",
    "time": "Fri Aug 08 11:56:54 2014 +0800"
  },
  "committer": {
    "name": "Riku Voipio",
    "email": "riku.voipio@linaro.org",
    "time": "Fri Aug 22 15:06:33 2014 +0300"
  },
  "message": "linux-user: Fix syscall instruction usermode emulation on X86_64\n\nCurrently syscall instruction is buggy on user mode X86_64,\nthe EIP is updated after do_syscall(), that is too late for\nclone(). Because clone() will create a thread at the env-\u003eEIP\n(the address of syscall insn), and then child thread enters\ndo_syscall() again, that is not expected. Sometimes it is tragic.\n\nUser mode syscall insn emulation is not used MSR, so the\naction should be same to INT 0x80. INT 0x80 will update EIP in\ndo_interrupt(), ditto for syscall() for consistency.\n\nSigned-off-by: Jincheng Miao \u003cjmiao@redhat.com\u003e\nReviewed-by: Richard Henderson \u003crth@twiddle.net\u003e\nSigned-off-by: Riku Voipio \u003criku.voipio@linaro.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b453a39853e1701101d4384ce1a418038432657e",
      "old_mode": 33188,
      "old_path": "linux-user/main.c",
      "new_id": "472a16d2db9a9ca42ee2c729f01bfc6a8ab2d653",
      "new_mode": 33188,
      "new_path": "linux-user/main.c"
    },
    {
      "type": "modify",
      "old_id": "2d970d0cb9c3f8a6f9eb33a4e813cc5c4974a5cb",
      "old_mode": 33188,
      "old_path": "target-i386/seg_helper.c",
      "new_id": "13eefbac3b6ca7a46772813264207076e3bf5f77",
      "new_mode": 33188,
      "new_path": "target-i386/seg_helper.c"
    }
  ]
}
