)]}'
{
  "commit": "3de463c7d9d58f8cf3395268230cb20a4c15bffa",
  "tree": "20ba1584eefb7ed75f6f8536f40e55966294cf4f",
  "parents": [
    "108150ea78003044e41150c75259447b2c0953b6"
  ],
  "author": {
    "name": "Oleg Nesterov",
    "email": "oleg@tv-sign.ru",
    "time": "Mon Oct 24 14:34:03 2005 +0400"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@g5.osdl.org",
    "time": "Mon Oct 24 08:12:35 2005 -0700"
  },
  "message": "[PATCH] posix-timers: remove false BUG_ON() from run_posix_cpu_timers()\n\ndo_exit() clears -\u003eit_##clock##_expires, but nothing prevents\nanother cpu to attach the timer to exiting process after that.\n\nAfter exit_notify() does \u0027write_unlock_irq(\u0026tasklist_lock)\u0027 and\nbefore do_exit() calls \u0027schedule() local timer interrupt can find\ntsk-\u003eexit_state !\u003d 0. If that state was EXIT_DEAD (or another cpu\ndoes sys_wait4) interrupted task has -\u003esignal \u003d\u003d NULL.\n\nAt this moment exiting task has no pending cpu timers, they were cleaned\nup in __exit_signal()-\u003eposix_cpu_timers_exit{,_group}(), so we can just\nreturn from irq.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3b25b182d2be35cfe8ddc69c53a908da96ce5aec",
      "old_mode": 33188,
      "old_path": "kernel/exit.c",
      "new_id": "4897977a1f4b950b98672782826fa80df34ba15a",
      "new_mode": 33188,
      "new_path": "kernel/exit.c"
    },
    {
      "type": "modify",
      "old_id": "30ab39a27736609d3662bd4c61820a6f99c347a0",
      "old_mode": 33188,
      "old_path": "kernel/posix-cpu-timers.c",
      "new_id": "ccb04683bf1860145651248003b4c1a256bf6288",
      "new_mode": 33188,
      "new_path": "kernel/posix-cpu-timers.c"
    }
  ]
}
