)]}'
{
  "log": [
    {
      "commit": "b17b0421d70f5b85a791afe145a16d5ca5f849aa",
      "tree": "0aca6753added9c76681d6eb63294a1943597dd9",
      "parents": [
        "ba260e23efbabcff975f60401475c2bdd693f872"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Sun Nov 13 16:07:14 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Nov 13 18:14:15 2005 -0800"
      },
      "message": "[PATCH] signal handling: revert sigkill priority fix\n\nThis patch reverts commit c33880aaddbbab1ccf36f4457ed1090621f2e39a since\nit\u0027s not needed anymore. As pointed out by Roland McGrath the real fix\nis to deliver all signals before returning to user space.\nSee http://www.ussg.iu.edu/hypermail/linux/kernel/0509.2/0683.html\nA fix for s390 has been merged.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Linus Torvalds \u003ctorvalds@osdl.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7ed0175a462c4c30f6df6fac1cccac058f997739",
      "tree": "30e894294260f8595565b620a7bb0b9cf8d1d69c",
      "parents": [
        "759979ab17512a061c3a3e870f091af27ccdcbfb"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Thu Nov 10 17:22:18 2005 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Nov 10 09:57:19 2005 -0800"
      },
      "message": "[PATCH] Don\u0027t auto-reap traced children\n\nIf a task is being traced we never auto-reap it even if it might look\nlike its parent doesn\u0027t care. The tracer obviously _does_ care.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b0423a0d9cc836b2c3d796623cd19236bfedfe63",
      "tree": "21c6ebdc052b4e085aacb295b55c168bc60bcae2",
      "parents": [
        "ae6866c377943de73e2c95398ff0120516f167ce"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@us.ibm.com",
        "time": "Sun Oct 30 15:03:46 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:32 2005 -0800"
      },
      "message": "[PATCH] Remove duplicate code in signal.c\n\nCombine a bit of redundant code between force_sig_info() and\nforce_sig_specific().\n\nSigned-off-by: paulmck@us.ibm.com\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ae6866c377943de73e2c95398ff0120516f167ce",
      "tree": "cd1e6a08f830de244696c5ff60f8309571cf090d",
      "parents": [
        "621d31219d9a788bda924a0613048053f3f5f211"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun Oct 30 15:03:46 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:32 2005 -0800"
      },
      "message": "[PATCH] remove unneeded SI_TIMER checks\n\nThis patch removes checks for -\u003esi_code \u003d\u003d SI_TIMER from send_signal,\nspecific_send_sig_info, __group_send_sig_info.\n\nI think posix-timers.c used these functions some time ago, now it sends\nsignals via send_{,group_}sigqueue, so these hooks are unneeded.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "621d31219d9a788bda924a0613048053f3f5f211",
      "tree": "9fb9846fdd999ba04c436aa84c7da0d8233ac545",
      "parents": [
        "b67a1b9e4bf878aa5d4b6b44cb5a251a2f425f0d"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun Oct 30 15:03:45 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:31 2005 -0800"
      },
      "message": "[PATCH] cleanup the usage of SEND_SIG_xxx constants\n\nThis patch simplifies some checks for magic siginfo values.  It should not\nchange the behaviour in any way.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b67a1b9e4bf878aa5d4b6b44cb5a251a2f425f0d",
      "tree": "8fa921440476083be42f21ce6d0c4091a3757742",
      "parents": [
        "3e6716e748609a3a899e8d670e42832921bd45bc"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun Oct 30 15:03:44 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:31 2005 -0800"
      },
      "message": "[PATCH] remove hardcoded SEND_SIG_xxx constants\n\nThis patch replaces hardcoded SEND_SIG_xxx constants with\ntheir symbolic names.\n\nNo changes in affected .o files.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "30e0fca6c1d7d26f3f2daa4dd2b12c51dadc778a",
      "tree": "945004584995e3af816125245bbb2436cc8ebc9e",
      "parents": [
        "68860ec10bcc07ab4f89f9d940e3b77ae5ca13b3"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "andrea@suse.de",
        "time": "Sun Oct 30 15:02:38 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:22 2005 -0800"
      },
      "message": "[PATCH] ptrace/coredump/exit_group deadlock\n\nI could seldom reproduce a deadlock with a task not killable in T state\n(TASK_STOPPED, not TASK_TRACED) by attaching a NPTL threaded program to\ngdb, by segfaulting the task and triggering a core dump while some other\ntask is executing exit_group and while one task is in ptrace_attached\nTASK_STOPPED state (not TASK_TRACED yet).  This originated from a gdb\nbugreport (the fact gdb was segfaulting the task wasn\u0027t a kernel bug), but\nI just incidentally noticed the gdb bug triggered a real kernel bug as\nwell.\n\nMost threads hangs in exit_mm because the core_dumping is still going, the\ncore dumping hangs because the stopped task doesn\u0027t exit, the stopped task\ncan\u0027t wakeup because it has SIGNAL_GROUP_EXIT set, hence the deadlock.\n\nTo me it seems that the problem is that the force_sig_specific(SIGKILL) in\nzap_threads is a noop if the task has PF_PTRACED set (like in this case\nbecause gdb is attached).  The __ptrace_unlink does nothing because the\nsignal-\u003eflags is set to SIGNAL_GROUP_EXIT|SIGNAL_STOP_DEQUEUED (verified).\n\nThe above info also shows that the stopped task hit a race and got the stop\nsignal (presumably by the ptrace_attach, only the attach, state is still\nTASK_STOPPED and gdb hangs waiting the core before it can set it to\nTASK_TRACED) after one of the thread invoked the core dump (it\u0027s the core\ndump that sets signal-\u003eflags to SIGNAL_GROUP_EXIT).\n\nSo beside the fact nobody would wakeup the task in __ptrace_unlink (the\nstate is _not_ TASK_TRACED), there\u0027s a secondary problem in the signal\nhandling code, where a task should ignore the ptrace-sigstops as long as\nSIGNAL_GROUP_EXIT is set (or the wakeup in __ptrace_unlink path wouldn\u0027t be\nenough).\n\nSo I attempted to make this patch that seems to fix the problem.  There\nwere various ways to fix it, perhaps you prefer a different one, I just\nopted to the one that looked safer to me.\n\nI also removed the clearing of the stopped bits from the zap_other_threads\n(zap_other_threads was safe unlike zap_threads).  I don\u0027t like useless\ncode, this whole NPTL signal/ptrace thing is already unreadable enough and\nfull of corner cases without confusing useless code into it to make it even\nless readable.  And if this code is really needed, then you may want to\nexplain why it\u0027s not being done in the other paths that sets\nSIGNAL_GROUP_EXIT at least.\n\nEven after this patch I still wonder who serializes the read of\np-\u003eptrace in zap_threads.\n\nPatch is called ptrace-core_dump-exit_group-deadlock-1.\n\nThis was the trace I\u0027ve got:\n\ntest          T ffff81003e8118c0     0 14305      1         14311 14309 (NOTLB)\nffff810058ccdde8 0000000000000082 000001f4000037e1 ffff810000000013\n       00000000000000f8 ffff81003e811b00 ffff81003e8118c0 ffff810011362100\n       0000000000000012 ffff810017ca4180\nCall Trace:\u003cffffffff801317ed\u003e{try_to_wake_up+893} \u003cffffffff80141677\u003e{finish_stop+87}\n       \u003cffffffff8014367f\u003e{get_signal_to_deliver+1359} \u003cffffffff8010d3ad\u003e{do_signal+157}\n       \u003cffffffff8013deee\u003e{ptrace_check_attach+222} \u003cffffffff80111575\u003e{sys_ptrace+2293}\n       \u003cffffffff80131810\u003e{default_wake_function+0} \u003cffffffff80196399\u003e{sys_ioctl+73}\n       \u003cffffffff8010dd27\u003e{sysret_signal+28} \u003cffffffff8010e00f\u003e{ptregscall_common+103}\n\ntest          D ffff810011362100     0 14309      1         14305 14312 (NOTLB)\nffff810053c81cf8 0000000000000082 0000000000000286 0000000000000001\n       0000000000000195 ffff810011362340 ffff810011362100 ffff81002e338040\n       ffff810001e0ca80 0000000000000001\nCall Trace:\u003cffffffff801317ed\u003e{try_to_wake_up+893} \u003cffffffff8044677d\u003e{wait_for_completion+173}\n       \u003cffffffff80131810\u003e{default_wake_function+0} \u003cffffffff80137435\u003e{exit_mm+149}\n       \u003cffffffff801381af\u003e{do_exit+479} \u003cffffffff80138d0c\u003e{do_group_exit+252}\n       \u003cffffffff801436db\u003e{get_signal_to_deliver+1451} \u003cffffffff8010d3ad\u003e{do_signal+157}\n       \u003cffffffff8013deee\u003e{ptrace_check_attach+222} \u003cffffffff80140850\u003e{specific_send_sig_info+2\n\n       \u003cffffffff8014208a\u003e{force_sig_info+186} \u003cffffffff804479a0\u003e{do_int3+112}\n       \u003cffffffff8010e308\u003e{retint_signal+61}\ntest          D ffff81002e338040     0 14311      1         14716 14305 (NOTLB)\nffff81005ca8dcf8 0000000000000082 0000000000000286 0000000000000001\n       0000000000000120 ffff81002e338280 ffff81002e338040 ffff8100481cb740\n       ffff810001e0ca80 0000000000000001\nCall Trace:\u003cffffffff801317ed\u003e{try_to_wake_up+893} \u003cffffffff8044677d\u003e{wait_for_completion+173}\n       \u003cffffffff80131810\u003e{default_wake_function+0} \u003cffffffff80137435\u003e{exit_mm+149}\n       \u003cffffffff801381af\u003e{do_exit+479} \u003cffffffff80142d0e\u003e{__dequeue_signal+558}\n       \u003cffffffff80138d0c\u003e{do_group_exit+252} \u003cffffffff801436db\u003e{get_signal_to_deliver+1451}\n       \u003cffffffff8010d3ad\u003e{do_signal+157} \u003cffffffff8013deee\u003e{ptrace_check_attach+222}\n       \u003cffffffff80140850\u003e{specific_send_sig_info+208} \u003cffffffff8014208a\u003e{force_sig_info+186}\n       \u003cffffffff804479a0\u003e{do_int3+112} \u003cffffffff8010e308\u003e{retint_signal+61}\n\ntest          D ffff810017ca4180     0 14312      1         14309 13882 (NOTLB)\nffff81005d15fcb8 0000000000000082 ffff81005d15fc58 ffffffff80130816\n       0000000000000897 ffff810017ca43c0 ffff810017ca4180 ffff81003e8118c0\n       0000000000000082 ffffffff801317ed\nCall Trace:\u003cffffffff80130816\u003e{activate_task+150} \u003cffffffff801317ed\u003e{try_to_wake_up+893}\n       \u003cffffffff8044677d\u003e{wait_for_completion+173} \u003cffffffff80131810\u003e{default_wake_function+0}\n       \u003cffffffff8018cdc3\u003e{do_coredump+819} \u003cffffffff80445f52\u003e{thread_return+82}\n       \u003cffffffff801436d4\u003e{get_signal_to_deliver+1444} \u003cffffffff8010d3ad\u003e{do_signal+157}\n       \u003cffffffff8013deee\u003e{ptrace_check_attach+222} \u003cffffffff80140850\u003e{specific_send_sig_info+2\n\n       \u003cffffffff804472e5\u003e{_spin_unlock_irqrestore+5} \u003cffffffff8014208a\u003e{force_sig_info+186}\n       \u003cffffffff804476ff\u003e{do_general_protection+159} \u003cffffffff8010e308\u003e{retint_signal+61}\n\nSigned-off-by: Andrea Arcangeli \u003candrea@suse.de\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Linus Torvalds \u003ctorvalds@osdl.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6dd69f1061bfdeca230509b173438e0731bff767",
      "tree": "66094a2fdf02fd808b0661cc2a26c6ff64d1c590",
      "parents": [
        "19a4fcb531659f2f7d18b5d04cee039176e9540d"
      ],
      "author": {
        "name": "Vadim Lobanov",
        "email": "vlobanov@speakeasy.net",
        "time": "Sun Oct 30 15:02:18 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:19 2005 -0800"
      },
      "message": "[PATCH] Unify sys_tkill() and sys_tgkill()\n\nThe majority of the sys_tkill() and sys_tgkill() function code is\nduplicated between the two of them.  This patch pulls the duplication out\ninto a separate function -- do_tkill() -- and lets sys_tkill() and\nsys_tgkill() be simple wrappers around it.  This should make it easier to\nmaintain in light of future changes.\n\nSigned-off-by: Vadim Lobanov \u003cvlobanov@speakeasy.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "19a4fcb531659f2f7d18b5d04cee039176e9540d",
      "tree": "30e0636d6163a5c0c3a4ad41c2d5f49cd858b457",
      "parents": [
        "932aeafbe8521a9a9d790152d66020e0fef2029b"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun Oct 30 15:02:17 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:19 2005 -0800"
      },
      "message": "[PATCH] kill sigqueue-\u003elock\n\nThis lock is used in sigqueue_free(), but it is always equal to\ncurrent-\u003esighand-\u003esiglock, so we don\u0027t need to keep it in the struct\nsigqueue.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8d027de54c77d38eedc9b331c7a2a39807d34691",
      "tree": "cfa290c7ca6b63f33b2b4624695596f38bcda2fd",
      "parents": [
        "47e627ce83b6df9f4bb8e4b0a4dde1c5d7a4c929"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sat Oct 29 19:37:40 2005 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 10:28:13 2005 -0700"
      },
      "message": "[PATCH] fix -\u003esignal-\u003elive leak in copy_process()\n\nexit_signal() (called from copy_process\u0027s error path) should decrement\n-\u003esignal-\u003elive, otherwise forking process will miss \u0027group_dead\u0027 in\ndo_exit().\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "25f407f0b668f5e4ebd5d13e1fb4306ba6427ead",
      "tree": "10d8661419da9e0d6be6d22ef319582d052c4a26",
      "parents": [
        "9465bee863bc4c6cf1566c12d6f92a8133e3da5c"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Oct 21 15:03:29 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 21 15:38:08 2005 -0700"
      },
      "message": "[PATCH] Call exit_itimers from do_exit, not __exit_signal\n\nWhen I originally moved exit_itimers into __exit_signal, that was the only\nplace where we could reliably know it was the last thread in the group\ndying, without races.  Since then we\u0027ve gotten the signal_struct.live\ncounter, and do_exit can reliably do group-wide cleanup work.\n\nThis patch moves the call to do_exit, where it\u0027s made without locks.  This\navoids the deadlock issues that the old __exit_signal code\u0027s comment talks\nabout, and the one that Oleg found recently with process CPU timers.\n\n[ This replaces e03d13e985d48ac4885382c9e3b1510c78bd047f, which is why\n  it was just reverted. ]\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "46113830a18847cff8da73005e57bc49c2f95a56",
      "tree": "93946fc290d9481e7055217ff497583647d1e4d4",
      "parents": [
        "094804c5a132f04c12dd4902ee15c64362e5c1af"
      ],
      "author": {
        "name": "Harald Welte",
        "email": "laforge@gnumonks.org",
        "time": "Mon Oct 10 19:44:29 2005 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 10 16:16:33 2005 -0700"
      },
      "message": "[PATCH] Fix signal sending in usbdevio on async URB completion\n\nIf a process issues an URB from userspace and (starts to) terminate\nbefore the URB comes back, we run into the issue described above.  This\nis because the urb saves a pointer to \"current\" when it is posted to the\ndevice, but there\u0027s no guarantee that this pointer is still valid\nafterwards.\n\nIn fact, there are three separate issues:\n\n1) the pointer to \"current\" can become invalid, since the task could be\n   completely gone when the URB completion comes back from the device.\n\n2) Even if the saved task pointer is still pointing to a valid task_struct,\n   task_struct-\u003esighand could have gone meanwhile.\n\n3) Even if the process is perfectly fine, permissions may have changed,\n   and we can no longer send it a signal.\n\nSo what we do instead, is to save the PID and uid\u0027s of the process, and\nintroduce a new kill_proc_info_as_uid() function.\n\nSigned-off-by: Harald Welte \u003claforge@gnumonks.org\u003e\n[ Fixed up types and added symbol exports ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dd0fc66fb33cd610bc1a5db8a5e232d34879b4d7",
      "tree": "51f96a9db96293b352e358f66032e1f4ff79fafb",
      "parents": [
        "3b0e77bd144203a507eb191f7117d2c5004ea1de"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Fri Oct 07 07:46:04 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 08 15:00:57 2005 -0700"
      },
      "message": "[PATCH] gfp flags annotations - part 1\n\n - added typedef unsigned int __nocast gfp_t;\n\n - replaced __nocast uses for gfp flags with gfp_t - it gives exactly\n   the same warnings as far as sparse is concerned, doesn\u0027t change\n   generated code (from gcc point of view we replaced unsigned int with\n   typedef) and documents what\u0027s going on far better.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "788e05a67c343fa22f2ae1d3ca264e7f15c25eaf",
      "tree": "4fa2f7e11cc757160ae5f492fdbe0da72d30cf26",
      "parents": [
        "829841146878e082613a49581ae252c071057c23"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Oct 07 17:46:19 2005 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 08 14:53:31 2005 -0700"
      },
      "message": "[PATCH] fix do_coredump() vs SIGSTOP race\n\nLet\u0027s suppose we have 2 threads in thread group:\n\tA - does coredump\n\tB - has pending SIGSTOP\n\nthread A\t\t\t\t\t\tthread B\n\ndo_coredump:\t\t\t\t\t\tget_signal_to_deliver:\n\n  lock(-\u003esighand)\n  -\u003esignal-\u003eflags \u003d SIGNAL_GROUP_EXIT\n  unlock(-\u003esighand)\n\n\t\t\t\t\t\t\tlock(-\u003esighand)\n\t\t\t\t\t\t\tsignr \u003d dequeue_signal()\n\t\t\t\t\t\t\t\t-\u003esignal-\u003eflags |\u003d SIGNAL_STOP_DEQUEUED\n\t\t\t\t\t\t\t\treturn SIGSTOP;\n\n\t\t\t\t\t\t\tdo_signal_stop:\n\t\t\t\t\t\t\t    unlock(-\u003esighand)\n\n  coredump_wait:\n\n      zap_threads:\n          lock(tasklist_lock)\n          send SIGKILL to B\n              // signal_wake_up() does nothing\n          unlock(tasklist_lock)\n\n\t\t\t\t\t\t\t    lock(tasklist_lock)\n\t\t\t\t\t\t\t    lock(-\u003esighand)\n\t\t\t\t\t\t\t    re-check sig-\u003eflags \u0026 SIGNAL_STOP_DEQUEUED, yes\n\t\t\t\t\t\t\t    set_current_state(TASK_STOPPED);\n\t\t\t\t\t\t\t    finish_stop:\n\t\t\t\t\t\t\t        schedule();\n\t\t\t\t\t\t\t            // -\u003estate \u003d\u003d TASK_STOPPED\n\n      wait_for_completion(\u0026startup_done)\n         // waits for complete() from B,\n         // -\u003estate \u003d\u003d TASK_UNINTERRUPTIBLE\n\nWe can\u0027t wake up \u0027B\u0027 in any way:\n\n\tSIGCONT will be ignored because handle_stop_signal() sees\n\t-\u003esignal-\u003eflags \u0026 SIGNAL_GROUP_EXIT.\n\n\tsys_kill(SIGKILL)-\u003e__group_complete_signal() will choose\n\tuninterruptible \u0027A\u0027, so it can\u0027t help.\n\n\tsys_tkill(B, SIGKILL) will be ignored by specific_send_sig_info()\n\tbecause B already has pending SIGKILL.\n\nThis scenario is not possbile if \u0027A\u0027 does do_group_exit(), because\nit sets sig-\u003eflags \u003d SIGNAL_GROUP_EXIT and delivers SIGKILL to\nsubthreads atomically, holding both tasklist_lock and sighand-\u003elock.\nThat means that do_signal_stop() will notice !SIGNAL_STOP_DEQUEUED\nafter re-locking -\u003esighand. And it is not possible to any other\nthread to re-add SIGNAL_STOP_DEQUEUED later, because dequeue_signal()\ncan only return SIGKILL.\n\nI think it is better to change do_coredump() to do sigaddset(SIGKILL)\nand signal_wake_up() under sighand-\u003elock, but this patch is much\nsimpler.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5acbc5cb507e6c381b70093b1081854708e82b16",
      "tree": "504bf5b1a1079fedd424d130589a336745f803e9",
      "parents": [
        "4a8342d233a39ee582e9f7260e12d2f5fd194a05"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Thu Sep 29 14:54:42 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Sep 29 15:20:47 2005 -0700"
      },
      "message": "[PATCH] Fix task state testing properly in do_signal_stop()\n\nAny tests using \u003c TASK_STOPPED or the like are left over from the time\nwhen the TASK_ZOMBIE and TASK_DEAD bits were in the same word, and it\nserved to check for \"stopped or dead\".  I think this one in\ndo_signal_stop is the only such case.  It has been buggy ever since\nexit_state was separated, and isn\u0027t testing the exit_state value.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "188a1eafa03aaa5e5fe6f53e637e704cd2c31c7c",
      "tree": "33d9480c792724c10e4e6fb681fc69c477cf1ff0",
      "parents": [
        "ede1327ea4ca8019ec6df24b3e837def091c26b8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 23 13:22:21 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 23 13:22:21 2005 -0700"
      },
      "message": "Make sure SIGKILL gets proper respect\n\nBhavesh P. Davda \u003cbhavesh@avaya.com\u003e noticed that SIGKILL wouldn\u0027t\nproperly kill a process under just the right cicumstances: a stopped\ntask that already had another signal queued would get the SIGKILL\nqueued onto the shared queue, and there it would remain until SIGCONT.\n\nThis simplifies the signal acceptance logic, and fixes the bug in the\nprocess.\n\nLosely based on an earlier patch by Bhavesh.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "75bcc8c5e1de78616b04ef9f317a293a7c1c163c",
      "tree": "fabdfd7fbc46baae5638b41648444d805e14eb3c",
      "parents": [
        "041e0e3b1970c508dc9a95b7dd9dc86271a7d7ac"
      ],
      "author": {
        "name": "Nishanth Aravamudan",
        "email": "nacc@us.ibm.com",
        "time": "Sat Sep 10 00:27:24 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:37 2005 -0700"
      },
      "message": "[PATCH] kernel: fix-up schedule_timeout() usage\n\nUse schedule_timeout_{,un}interruptible() instead of\nset_current_state()/schedule_timeout() to reduce kernel size.\n\nSigned-off-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e752dd6cc66a3e6a11396928998baf390cc00420",
      "tree": "b24b388d80acec6527e66b07f0d308d48319c476",
      "parents": [
        "a97c9bf33f4612e2aed6f000f6b1d268b6814f3c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Sep 06 15:17:42 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:33 2005 -0700"
      },
      "message": "[PATCH] fix send_sigqueue() vs thread exit race\n\nposix_timer_event() first checks that the thread (SIGEV_THREAD_ID case)\ndoes not have PF_EXITING flag, then it calls send_sigqueue() which locks\ntask list.  But if the thread exits in between the kernel will oops\n(-\u003esighand \u003d\u003d NULL after __exit_sighand).\n\nThis patch moves the PF_EXITING check into the send_sigqueue(), it must be\ndone atomically under tasklist_lock.  When send_sigqueue() detects exiting\nthread it returns -1.  In that case posix_timer_event will send the signal\nto thread group.\n\nAlso, this patch fixes task_struct use-after-free in posix_timer_event.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bc505a478d3fffcfb269b72f64df4510305cfe81",
      "tree": "e8a788fb93bc18a10be134ab6218365f53d2d1dc",
      "parents": [
        "2d237c63659c098a662b1b09d43460f04c498436"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Sep 06 15:17:32 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:31 2005 -0700"
      },
      "message": "[PATCH] do_notify_parent_cldstop() cleanup\n\nThis patch simplifies the usage of do_notify_parent_cldstop(), it lessens\nthe source and .text size slightly, and makes the code (in my opinion) a\nbit more readable.\n\nI am sending this patch now because I\u0027m afraid Paul will touch\ndo_notify_parent_cldstop() really soon, It\u0027s better to cleanup first.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dd12f48d4e8774415b528d3991ae47c28f26e1ac",
      "tree": "d8083c3415d540adb7983bd23a80fb8420fa8414",
      "parents": [
        "ade6648b3b11a5d81f6f28135193ab6d85d621db"
      ],
      "author": {
        "name": "Bhavesh P. Davda",
        "email": "bhavesh@avaya.com",
        "time": "Wed Aug 17 12:26:33 2005 -0600"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Aug 17 12:52:04 2005 -0700"
      },
      "message": "[PATCH] NPTL signal delivery deadlock fix\n\nThis bug is quite subtle and only happens in a very interesting\nsituation where a real-time threaded process is in the middle of a\ncoredump when someone whacks it with a SIGKILL.  However, this deadlock\nleaves the system pretty hosed and you have to reboot to recover.\n\nNot good for real-time priority-preemption applications like our\ntelephony application, with 90+ real-time (SCHED_FIFO and SCHED_RR)\nprocesses, many of them multi-threaded, interacting with each other for\nhigh volume call processing.\n\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3e1d1d28d99dabe63c64f7f40f1ca1d646de1f73",
      "tree": "d1e7c1e2e8902072042aefc3a7976b271cf76021",
      "parents": [
        "b3e112bcc19abd8e9657dca34a87316786e096f3"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "christoph@lameter.com",
        "time": "Fri Jun 24 23:13:50 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Jun 25 17:10:13 2005 -0700"
      },
      "message": "[PATCH] Cleanup patch for process freezing\n\n1. Establish a simple API for process freezing defined in linux/include/sched.h:\n\n   frozen(process)\t\tCheck for frozen process\n   freezing(process)\t\tCheck if a process is being frozen\n   freeze(process)\t\tTell a process to freeze (go to refrigerator)\n   thaw_process(process)\tRestart process\n   frozen_process(process)\tProcess is frozen now\n\n2. Remove all references to PF_FREEZE and PF_FROZEN from all\n   kernel sources except sched.h\n\n3. Fix numerous locations where try_to_freeze is manually done by a driver\n\n4. Remove the argument that is no longer necessary from two function calls.\n\n5. Some whitespace cleanup\n\n6. Clear potential race in refrigerator (provides an open window of PF_FREEZE\n   cleared before setting PF_FROZEN, recalc_sigpending does not check\n   PF_FROZEN).\n\nThis patch does not address the problem of freeze_processes() violating the rule\nthat a task may only modify its own flags by setting PF_FREEZE. This is not clean\nin an SMP environment. freeze(process) is therefore not SMP safe!\n\nSigned-off-by: Christoph Lameter \u003cchristoph@lameter.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4fea2838aa00b9e59efde974dcdb455608192811",
      "tree": "f5de626cd00b232c8d3183bfcf3a1a669c1ff738",
      "parents": [
        "af4d2ecbf007b7df3db7a41eedccdc05b8006d0b"
      ],
      "author": {
        "name": "Kirill Korotaev",
        "email": "dev@sw.ru",
        "time": "Thu Jun 23 00:09:51 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:27 2005 -0700"
      },
      "message": "[PATCH] Software suspend and recalc sigpending bug fix\n\nThis patch fixes recalc_sigpending() to work correctly with tasks which are\nbeing freezed.\n\nThe problem is that freeze_processes() sets PF_FREEZE and TIF_SIGPENDING\nflags on tasks, but recalc_sigpending() called from e.g.\nsys_rt_sigtimedwait or any other kernel place will clear TIF_SIGPENDING due\nto no pending signals queued and the tasks won\u0027t be freezed until it\nrecieves a real signal or freezed_processes() fail due to timeout.\n\nSigned-Off-By: Kirill Korotaev \u003cdev@sw.ru\u003e\nSigned-Off-By: Alexey Kuznetsov \u003ckuznet@ms2.inr.ac.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1c3f45ab2f7f879ea482501c83899505c31f7539",
      "tree": "672465b3b9b3e2e26a8caf74ed64aa6885c52c13",
      "parents": [
        "4bcff1b37e7c3aed914d1ce5b45994adc7dbf455",
        "e0d6d71440a3a35c6fc2dde09f8e8d4d7bd44dda"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@shinybook.infradead.org",
        "time": "Thu Jun 02 16:39:11 2005 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@shinybook.infradead.org",
        "time": "Thu Jun 02 16:39:11 2005 +0100"
      },
      "message": "Merge with master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6.git\n\n"
    },
    {
      "commit": "c33880aaddbbab1ccf36f4457ed1090621f2e39a",
      "tree": "2bcaa297c0688c3ce997ede15bf224c39fee6e23",
      "parents": [
        "6431e6a28e8df423e1ebcda065e9ff086198d2c6"
      ],
      "author": {
        "name": "Kirill Korotaev",
        "email": "dev@sw.ru",
        "time": "Tue May 24 19:29:47 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue May 24 20:08:13 2005 -0700"
      },
      "message": "[PATCH] sigkill priority fix\n\nIf SIGKILL does not have priority, we cannot instantly kill task before it\nmakes some unexpected job.  It can be critical, but we were unable to\nreproduce this easily until Heiko Carstens \u003cHeiko.Carstens@de.ibm.com\u003e\nreported this problem on LKML.\n\nSigned-Off-By: Kirill Korotaev \u003cdev@sw.ru\u003e\nSigned-Off-By: Alexey Kuznetsov \u003ckuznet@ms2.inr.ac.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c2f0c7c356dc9ae15419f00c725a2fcc58eeff58",
      "tree": "2b765b791115e0e85b45bc98800fd2650b23155b",
      "parents": [
        "2512809255d018744fe6c2f5e996c83769846c07"
      ],
      "author": {
        "name": "Steve Grubb",
        "email": "sgrubb@redhat.com",
        "time": "Fri May 06 12:38:39 2005 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@shinybook.infradead.org",
        "time": "Fri May 06 12:38:39 2005 +0100"
      },
      "message": "The attached patch addresses the problem with getting the audit daemon \nshutdown credential information. It creates a new message type \nAUDIT_TERM_INFO, which is used by the audit daemon to query who issued the \nshutdown. \n\nIt requires the placement of a hook function that gathers the information. The \nhook is after the DAC \u0026 MAC checks and before the function returns. Racing \nthreads could overwrite the uid \u0026 pid - but they would have to be root and \nhave policy that allows signalling the audit daemon. That should be a \nmanageable risk.\n\nThe userspace component will be released later in audit 0.7.2. When it \nreceives the TERM signal, it queries the kernel for shutdown information. \nWhen it receives it, it writes the message and exits. The message looks \nlike this:\n\ntype\u003dDAEMON msg\u003dauditd(1114551182.000) auditd normal halt, sending pid\u003d2650 \nuid\u003d525, auditd pid\u003d1685\n\nSigned-off-by: Steve Grubb \u003csgrubb@redhat.com\u003e\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "7ed20e1ad521b5f5df61bf6559ae60738e393741",
      "tree": "90931724e45eaedb3445314e8b94e78253642395",
      "parents": [
        "e5bdd883a189243541e7a132385580703b049102"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "juhl-lkml@dif.dk",
        "time": "Sun May 01 08:59:14 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:59:14 2005 -0700"
      },
      "message": "[PATCH] convert that currently tests _NSIG directly to use valid_signal()\n\nConvert most of the current code that uses _NSIG directly to instead use\nvalid_signal().  This avoids gcc -W warnings and off-by-one errors.\n\nSigned-off-by: Jesper Juhl \u003cjuhl-lkml@dif.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6cae60feb6709dea4cb94da93d4d2ea039aee59d",
      "tree": "5aaf9fa7b025784924d66bd29fb4d5b4239a67e4",
      "parents": [
        "e821d94d34af23a31a16ead78e8b685b750c8c3d"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sat Apr 16 15:25:47 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:25:47 2005 -0700"
      },
      "message": "[PATCH] kill #ifndef HAVE_ARCH_GET_SIGNAL_TO_DELIVER in signal.c\n\nNow that no architectures defines HAVE_ARCH_GET_SIGNAL_TO_DELIVER anymore\nthis can go away.  It was a transitional hack only.\n\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"
    }
  ]
}
