)]}'
{
  "commit": "303cd1535f6257b9fd8214534ca87b1a1567a2c5",
  "tree": "ec84da24cbfaae444c204df93c9391661012d854",
  "parents": [
    "bad77057ed59892bd5c7807dcf0c2500e5ff1fe7"
  ],
  "author": {
    "name": "Mathieu Desnoyers",
    "email": "mathieu.desnoyers@polymtl.ca",
    "time": "Sun Mar 18 01:26:11 2007 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@woody.linux-foundation.org",
    "time": "Sun Mar 18 11:35:08 2007 -0700"
  },
  "message": "[PATCH] Fix atomicity of TIF update in flush_thread() for x86_64\n\nFix atomicity of TIF update in flush_thread() for x86_64\n\nRace :\n\nparent process executing :\nsys_ptrace()\n (lock_kernel())\n (ptrace_get_task_struct(pid))\n arch_ptrace()\n   ptrace_detach()\n     ptrace_disable(child);\n       clear_singlestep(child);\n         clear_tsk_thread_flag(child, TIF_SINGLESTEP);\n         (which clears the TIF_SINGLESTEP flag atomically from a different\n\t  process)\n (put_task_struct(child))\n (unlock_kernel())\n\nAnd at the same time, in the child process :\nsys_execve()\n do_execve()\n   search_binary_handler()\n     load_elf_binary()\n       flush_old_exec()\n         flush_thread()\n           doing a non-atomic thread flag update\n\nSigned-off-by: Rebecca Schultz \u003crschultz@google.com\u003e\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nAcked-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "cbbc6adc1a92004c902954f10777528f6b964178",
      "old_mode": 33188,
      "old_path": "arch/x86_64/kernel/process.c",
      "new_id": "d8d5ccc245c8977eaa1c616b9301df058661d386",
      "new_mode": 33188,
      "new_path": "arch/x86_64/kernel/process.c"
    }
  ]
}
